Переместить выбранную запись из одного 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);
            }
        });
    }
    
}

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


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

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

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