Переместить выбранную запись из одного list в другой - Java

Узнай цену своей работы

Формулировка задачи:

Добрый день! Буду признательна, если подскажете, как дописать код. нужно из одного списка переместить выбранную запись в другой список по нажатию соответствующей кнопки.
Листинг программы
  1. package interf61;
  2. import java.awt.BorderLayout;
  3. import java.awt.EventQueue;
  4. import javax.swing.JFrame;
  5. import javax.swing.JPanel;
  6. import javax.swing.border.EmptyBorder;
  7. import javax.swing.event.ListSelectionEvent;
  8. import javax.swing.event.ListSelectionListener;
  9. import javax.swing.JList;
  10. import javax.swing.JButton;
  11. import javax.swing.ListSelectionModel;
  12. import java.awt.event.ActionListener;
  13. import java.awt.event.ActionEvent;
  14. import javax.swing.JLabel;
  15. public class TwoLists extends JFrame {
  16. private JPanel contentPane;
  17.  
  18. public static void main(String[] args) {
  19. EventQueue.invokeLater(new Runnable() {
  20. public void run() {
  21. try {
  22. TwoLists frame = new TwoLists();
  23. frame.setVisible(true);
  24. } catch (Exception e) {
  25. e.printStackTrace();
  26. }
  27. }
  28. });
  29. }
  30.  
  31. public TwoLists() {
  32. super("Task 6.1");
  33. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  34. setBounds(100, 100, 300, 200);
  35. contentPane = new JPanel();
  36. contentPane.setBorder(new EmptyBorder(10, 10, 10, 10));
  37. setContentPane(contentPane);
  38. contentPane.setLayout(new BorderLayout(0, 0));
  39. String[] options = {"1111111","2222222","3333333333"};
  40. String[] options1 = {"aaaaaaa","bbbbbb","cccccccc","dddd"};
  41. JList list = new JList(options);
  42. contentPane.add(list, BorderLayout.WEST);
  43. list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  44. //list.setSelectedIndex(0);
  45. JList list1 = new JList(options1);
  46. contentPane.add(list1, BorderLayout.EAST);
  47. list1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  48. //list1.setSelectedIndex(0);
  49. JPanel panel = new JPanel();
  50. contentPane.add(panel, BorderLayout.CENTER);
  51. panel.setLayout(new BorderLayout(0, 0));
  52. JButton button = new JButton(">");
  53.  
  54. panel.add(button, BorderLayout.NORTH);
  55. JButton button1 = new JButton("<");
  56. panel.add(button1, BorderLayout.SOUTH);
  57. JLabel label = new JLabel("Выберите элемент");
  58. panel.add(label, BorderLayout.CENTER);
  59. list.addListSelectionListener(new ListSelectionListener(){
  60. public void valueChanged(ListSelectionEvent le){
  61. int index = list.getSelectedIndex();
  62. if (index != -1){
  63. label.setText("Вы выбрали " + options[index]);
  64. }
  65. else{
  66. label.setText("Выберите элемент");
  67. }
  68. }
  69. });
  70. list1.addListSelectionListener(new ListSelectionListener(){
  71. public void valueChanged(ListSelectionEvent le){
  72. int index1 = list1.getSelectedIndex();
  73. if (index1 != -1){
  74. label.setText("Вы выбрали " + options1[index1]);
  75. }
  76. else{
  77. label.setText("Выберите элемент");
  78. }
  79. }
  80. });
  81. button.addActionListener(new ActionListener(){
  82. public void actionPerformed(ActionEvent ae){
  83. int index = list.getSelectedIndex();
  84. if (index != -1){
  85.  
  86. }
  87. else{
  88. }
  89. }
  90. });
  91. button1.addActionListener(new ActionListener(){
  92. public void actionPerformed(ActionEvent ae){
  93. int index = list1.getSelectedIndex();
  94. if (index != -1){
  95. }
  96. else{
  97. }
  98. }
  99. });
  100. }
  101. }

Решение задачи: «Переместить выбранную запись из одного list в другой»

textual
Листинг программы
  1. package twolists;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;
  6. import javax.swing.*;
  7. import javax.swing.border.EmptyBorder;
  8. import javax.swing.event.ListSelectionEvent;
  9. import javax.swing.event.ListSelectionListener;
  10.  
  11. /**
  12.  *
  13.  * @author Nicholas White
  14.  */
  15. public class TwoLists extends JFrame {
  16.  
  17.     private JPanel contentPane;
  18.     private DefaultListModel listModel, listModel2;
  19.     private JList list, list2;
  20.     JButton button, button2;
  21.     JLabel label = new JLabel("Выберите элемент");
  22.  
  23.     public TwoLists() {
  24.          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  25.         setBounds(100, 100, 300, 200);
  26.         contentPane = new JPanel();
  27.         contentPane.setBorder(new EmptyBorder(10, 10, 10, 10));
  28.         setContentPane(contentPane);
  29.         contentPane.setLayout(new BorderLayout(0, 0));
  30.        
  31.         String[] options = {"1111111","2222222","3333333333"};
  32.         String[] options2 = {"aaaaaaa","bbbbbb","cccccccc","dddd"};
  33.        
  34.        
  35.         listModel = new DefaultListModel();
  36.         for(String option : options){
  37.             listModel.addElement(option);
  38.         }
  39.         list = new JList(listModel);
  40.         contentPane.add(list, BorderLayout.WEST);
  41.         list.addListSelectionListener(new ListSelectionListener() {
  42.              @Override
  43.              public void valueChanged(ListSelectionEvent e) {
  44.                  int index = list.getSelectedIndex();
  45.                  if(index == -1){
  46.                      button.setEnabled(false);
  47.                      label.setText("Выберите элемент");
  48.                  } else{
  49.                      button.setEnabled(true);
  50.                      label.setText("Вы выбрали " + listModel.get(index));
  51.                  }
  52.              }
  53.          });
  54.        
  55.         listModel2 = new DefaultListModel();
  56.         for(String option : options2){
  57.             listModel2.addElement(option);
  58.         }
  59.         list2 = new JList(listModel2);
  60.         contentPane.add(list2, BorderLayout.EAST);
  61.         list2.addListSelectionListener(new ListSelectionListener() {
  62.              @Override
  63.              public void valueChanged(ListSelectionEvent e) {
  64.                  int index = list2.getSelectedIndex();
  65.                  if(index == -1){
  66.                      button2.setEnabled(false);
  67.                      label.setText("Выберите элемент");
  68.                  } else{
  69.                      button2.setEnabled(true);
  70.                      label.setText("Вы выбрали " + listModel2.get(index));
  71.                  }
  72.              }
  73.          });
  74.        
  75.         JPanel panel = new JPanel(new BorderLayout(0, 0));
  76.         contentPane.add(panel, BorderLayout.CENTER);
  77.        
  78.         button = new JButton(">");
  79.         button.setEnabled(false);
  80.         panel.add(button, BorderLayout.NORTH);
  81.         button2 = new JButton("<");
  82.         button2.setEnabled(false);
  83.         panel.add(button2, BorderLayout.SOUTH);
  84.       //  label.setText("Выберите элемент");
  85.         panel.add(label, BorderLayout.CENTER);
  86.        
  87.         button.addActionListener(new ActionListener() {
  88.              @Override
  89.              public void actionPerformed(ActionEvent e) {
  90.                  int index = list.getSelectedIndex();
  91.                  String s = (String) listModel.get(index);
  92.                  listModel.remove(index);
  93.                  listModel2.addElement(s);
  94.              }
  95.          });
  96.        
  97.         button2.addActionListener(new ActionListener() {
  98.              @Override
  99.              public void actionPerformed(ActionEvent e) {
  100.                  int index = list2.getSelectedIndex();
  101.                  String s = (String) listModel2.get(index);
  102.                  listModel2.remove(index);
  103.                  listModel.addElement(s);
  104.              }
  105.          });
  106.     }
  107.    
  108.    
  109.     public static void main(String[] args) {
  110.         javax.swing.SwingUtilities.invokeLater(new Runnable() {
  111.             @Override
  112.             public void run() {
  113.                 new TwoLists().setVisible(true);
  114.             }
  115.         });
  116.     }
  117.    
  118. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут