Переместить выбранную запись из одного list в другой - Java
Формулировка задачи:
Добрый день!
Буду признательна, если подскажете, как дописать код. нужно из одного списка переместить выбранную запись в другой список по нажатию соответствующей кнопки.
package interf61; import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.JList; import javax.swing.JButton; import javax.swing.ListSelectionModel; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.JLabel; public class TwoLists extends JFrame { private JPanel contentPane; public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { TwoLists frame = new TwoLists(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } public TwoLists() { super("Task 6.1"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 300, 200); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(10, 10, 10, 10)); setContentPane(contentPane); contentPane.setLayout(new BorderLayout(0, 0)); String[] options = {"1111111","2222222","3333333333"}; String[] options1 = {"aaaaaaa","bbbbbb","cccccccc","dddd"}; JList list = new JList(options); contentPane.add(list, BorderLayout.WEST); list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); //list.setSelectedIndex(0); JList list1 = new JList(options1); contentPane.add(list1, BorderLayout.EAST); list1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); //list1.setSelectedIndex(0); JPanel panel = new JPanel(); contentPane.add(panel, BorderLayout.CENTER); panel.setLayout(new BorderLayout(0, 0)); JButton button = new JButton(">"); panel.add(button, BorderLayout.NORTH); JButton button1 = new JButton("<"); panel.add(button1, BorderLayout.SOUTH); JLabel label = new JLabel("Выберите элемент"); panel.add(label, BorderLayout.CENTER); list.addListSelectionListener(new ListSelectionListener(){ public void valueChanged(ListSelectionEvent le){ int index = list.getSelectedIndex(); if (index != -1){ label.setText("Вы выбрали " + options[index]); } else{ label.setText("Выберите элемент"); } } }); list1.addListSelectionListener(new ListSelectionListener(){ public void valueChanged(ListSelectionEvent le){ int index1 = list1.getSelectedIndex(); if (index1 != -1){ label.setText("Вы выбрали " + options1[index1]); } else{ label.setText("Выберите элемент"); } } }); button.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ int index = list.getSelectedIndex(); if (index != -1){ } else{ } } }); button1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ int index = list1.getSelectedIndex(); if (index != -1){ } else{ } } }); } }
Решение задачи: «Переместить выбранную запись из одного list в другой»
textual
Листинг программы
package twolists; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; import javax.swing.border.EmptyBorder; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; /** * * @author Nicholas White */ public class TwoLists extends JFrame { private JPanel contentPane; private DefaultListModel listModel, listModel2; private JList list, list2; JButton button, button2; JLabel label = new JLabel("Выберите элемент"); public TwoLists() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 300, 200); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(10, 10, 10, 10)); setContentPane(contentPane); contentPane.setLayout(new BorderLayout(0, 0)); String[] options = {"1111111","2222222","3333333333"}; String[] options2 = {"aaaaaaa","bbbbbb","cccccccc","dddd"}; listModel = new DefaultListModel(); for(String option : options){ listModel.addElement(option); } list = new JList(listModel); contentPane.add(list, BorderLayout.WEST); list.addListSelectionListener(new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { int index = list.getSelectedIndex(); if(index == -1){ button.setEnabled(false); label.setText("Выберите элемент"); } else{ button.setEnabled(true); label.setText("Вы выбрали " + listModel.get(index)); } } }); listModel2 = new DefaultListModel(); for(String option : options2){ listModel2.addElement(option); } list2 = new JList(listModel2); contentPane.add(list2, BorderLayout.EAST); list2.addListSelectionListener(new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { int index = list2.getSelectedIndex(); if(index == -1){ button2.setEnabled(false); label.setText("Выберите элемент"); } else{ button2.setEnabled(true); label.setText("Вы выбрали " + listModel2.get(index)); } } }); JPanel panel = new JPanel(new BorderLayout(0, 0)); contentPane.add(panel, BorderLayout.CENTER); button = new JButton(">"); button.setEnabled(false); panel.add(button, BorderLayout.NORTH); button2 = new JButton("<"); button2.setEnabled(false); panel.add(button2, BorderLayout.SOUTH); // label.setText("Выберите элемент"); panel.add(label, BorderLayout.CENTER); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { int index = list.getSelectedIndex(); String s = (String) listModel.get(index); listModel.remove(index); listModel2.addElement(s); } }); button2.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { int index = list2.getSelectedIndex(); String s = (String) listModel2.get(index); listModel2.remove(index); listModel.addElement(s); } }); } public static void main(String[] args) { javax.swing.SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new TwoLists().setVisible(true); } }); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д