Добавить функционал - Java

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

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

Вот есть у меня такая вот форма, задача - в выпадающем меню клацаю по цифре, и она добавляется в JLabel слева, одновременно если есть такая же цифра в другом JLabel то она оттуда удаляеться, нужно чтобы в полях были только разные цифры. Я такого накрутил, что аж показывать страшно, помогите сделать по уму. Желательно с применение MVC. Я не прошу готовый код( хотя был бы рад этому).
public class Main extends JFrame {
 
    private JPanel contentPane;
    private String[] string ={"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"};
    private JLabel lblNewLabel;
    private JLabel label;
    private String string1 = "4, 5, 6";
    private String string2 = "1, 2, 3";

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Main frame = new Main();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
 
    /**
     * Create the frame.
     */
    public Main() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 237);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);
        
        lblNewLabel = new JLabel(string1);
        lblNewLabel.setBounds(46, 28, 158, 35);
        contentPane.add(lblNewLabel);
        
        label = new JLabel(string2);
        label.setBounds(46, 74, 158, 35);
        contentPane.add(label);
        
        JComboBox comboBox = new JComboBox(string);
        comboBox.setBounds(340, 35, 62, 20);
        contentPane.add(comboBox);
        
        JComboBox comboBox_1 = new JComboBox(string);
        comboBox_1.setBounds(340, 81, 62, 20);
        contentPane.add(comboBox_1);
        
        JLabel lblNewLabel_1 = new JLabel("\u2116");
        lblNewLabel_1.setBounds(10, 32, 19, 27);
        contentPane.add(lblNewLabel_1);
        
        JLabel label_1 = new JLabel("\u2116");
        label_1.setBounds(10, 78, 19, 27);
        contentPane.add(label_1);

    }
}

Решение задачи: «Добавить функционал»

textual
Листинг программы
import java.awt.BorderLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;
 
public class Combos extends JFrame {
    private static final long serialVersionUID = 1L;
    JComboBox cbOne;
    JComboBox cbTwo;
 
    Combos() {
        setSize(400, 400);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        cbOne = new JComboBox(new String[] { "One" });
        cbTwo = new JComboBox(new String[] { "Two" });
        cbOne.setName("name");
        add(cbOne, BorderLayout.NORTH);
        add(cbTwo, BorderLayout.SOUTH);
        cbOne.addMouseListener(new MyMouseListener());
        cbTwo.addMouseListener(new MyMouseListener());
        setVisible(true);
    }
 
    public static void main(String[] args) {
        new Combos();
    }
 
    private class MyMouseListener implements MouseListener {
 
        @Override
        public void mouseClicked(MouseEvent evnt) {
        }
 
        @Override
        public void mouseEntered(MouseEvent evnt) {
            JComboBox combo = (JComboBox) evnt.getComponent();
            System.out.println(combo.getName());
            System.out.println(combo.getSelectedItem());
        }
 
        @Override
        public void mouseExited(MouseEvent evnt) {
        }
 
        @Override
        public void mousePressed(MouseEvent evnt) {
        }
 
        @Override
        public void mouseReleased(MouseEvent evnt) {
        }
 
    }
}

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


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

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

13   голосов , оценка 3.615 из 5