JComboBox项更改时删除另一个JComponent

时间:2019-02-15 07:56:05

标签: java swing

从编程组合框labell10中的书本项目更改时,我想删除level和组合框-category。我已经做过类似的编码,并且它们正在工作。但是在这种情况下,表单仍然是l10level的下部。我只想显示JTextField agegroup,并将l8的文本更改为年龄组,这是在组合框类别中选择了美术作品时。同样,当类别是故事书时,l8必须是语言,slanguage组合框必须显示,文本字段agegroup必须删除。如果类别是编程框,还需要文本字段planguage和组合框级别添加。而且,当我们从一种类别更改为另一种类别时,必须删除以前显示的项目。

public static void add() {
        JFrame f1 = new JFrame();
        JLabel l1 = new JLabel("Add Book");
        l1.setBounds(10, 10, 400, 25);
        Font f = new Font("TimesRoman", Font.BOLD, 25);
        l1.setFont(f);
        f1.setSize(475, 700);
        f1.setVisible(true);
        f1.setLayout(null);
        f1.add(l1);
        JLabel l2 = new JLabel("Referance Number:");
        l2.setBounds(10, 45, 300, 25);
        f1.add(l2);
        JTextField RNo = new JTextField();
        RNo.setBounds(130, 45, 200, 25);
        f1.add(RNo);
        JLabel l3 = new JLabel("Title :");
        l3.setBounds(10, 80, 350, 25);
        f1.add(l3);
        JTextField Title = new JTextField();
        Title.setBounds(130, 80, 300, 25);
        f1.add(Title);
        JLabel l4 = new JLabel("Actual unit price:");
        l4.setBounds(10, 115, 100, 25);
        f1.add(l4);
        JTextField AUPrice = new JTextField();
        AUPrice.setBounds(130, 115, 60, 25);
        f1.add(AUPrice);
        JLabel l5 = new JLabel("QTY:");
        l5.setBounds(230, 115, 60, 25);
        f1.add(l5);
        JTextField QTY = new JTextField();
        QTY.setBounds(300, 115, 60, 25);
        f1.add(QTY);
        JLabel l6 = new JLabel("Description:");
        l6.setBounds(10, 150, 100, 25);
        f1.add(l6);
        JTextArea Des = new JTextArea();
        Des.setBounds(130, 185, 300, 200);
        f1.add(Des);
        JLabel l9 = new JLabel("Author:");
        l9.setBounds(10, 395, 100, 25);
        f1.add(l9);
        JTextField Author = new JTextField();
        Author.setBounds(130, 395, 300, 25);
        f1.add(Author);
        JLabel l7 = new JLabel("Category:");
        l7.setBounds(10, 430, 100, 25);
        f1.add(l7);
        JComboBox booktype = new JComboBox();
        booktype.setBounds(130, 430, 200, 25);
        booktype.addItem("Story Book");
        booktype.addItem("Programing Book");
        booktype.addItem("Art Book");
        f1.add(booktype);
        JLabel l8 = new JLabel("language:");
        l8.setBounds(10, 465, 200, 25);
        f1.add(l8);
        JTextField Agegroup = new JTextField();
        Agegroup.setBounds(130, 465, 200, 25);
        JComboBox slanguage = new JComboBox();
        slanguage.addItem("sinhala");
        slanguage.addItem("English");
        slanguage.addItem("Tamil");
        slanguage.setBounds(130, 465, 200, 25);
        f1.add(slanguage);
        JLabel l10 = new JLabel("Type:");
        l10.setBounds(10, 500, 200, 25);
        JComboBox level = new JComboBox();
        level.addItem("Advance");
        level.addItem("Medium");
        level.addItem("Entry");
        level.setBounds(130, 500, 200, 25);
        JTextField planguage = new JTextField();
        planguage.setBounds(130, 465, 200, 25);
        booktype.addItemListener((ItemEvent e) -> {
            if (e.getItem() == "Art Book") {
                f1.remove(slanguage);
                f1.remove(level);
                f1.remove(l10);
                f1.remove(planguage);
                l8.setText("Age group");
                f1.add(Agegroup);

            } else if (e.getItem() == "Programing Book") {
                l8.setText("language:");
                f1.remove(Agegroup);
                f1.remove(slanguage);
                f1.add(l10);
                f1.add(planguage);
                f1.add(level);
            } else {
                f1.remove(Agegroup);
                f1.remove(planguage);
                f1.remove(level);
                f1.remove(l10);
                f1.add(slanguage);
                l8.setText("language:");

            }
        });
    }

1 个答案:

答案 0 :(得分:-1)

Ans:-添加了repaint()方法

public static void add() {
        JFrame f1 = new JFrame();
        JLabel l1 = new JLabel("Add Book");
        l1.setBounds(10, 10, 400, 25);
        Font f = new Font("TimesRoman", Font.BOLD, 25);
        l1.setFont(f);
        f1.setSize(475, 700);

        f1.setLayout(null);
        f1.add(l1);
        JLabel l2 = new JLabel("Referance Number:");
        l2.setBounds(10, 45, 300, 25);
        f1.add(l2);
        JTextField RNo = new JTextField();
        RNo.setBounds(130, 45, 200, 25);
        f1.add(RNo);
        JLabel l3 = new JLabel("Title :");
        l3.setBounds(10, 80, 350, 25);
        f1.add(l3);
        JTextField Title = new JTextField();
        Title.setBounds(130, 80, 300, 25);
        f1.add(Title);
        JLabel l4 = new JLabel("Actual unit price:");
        l4.setBounds(10, 115, 100, 25);
        f1.add(l4);
        JTextField AUPrice = new JTextField();
        AUPrice.setBounds(130, 115, 60, 25);
        f1.add(AUPrice);
        JLabel l5 = new JLabel("QTY:");
        l5.setBounds(230, 115, 60, 25);
        f1.add(l5);
        JTextField QTY = new JTextField();
        QTY.setBounds(300, 115, 60, 25);
        f1.add(QTY);
        JLabel l6 = new JLabel("Description:");
        l6.setBounds(10, 150, 100, 25);
        f1.add(l6);
        JTextArea Des = new JTextArea();
        Des.setBounds(130, 185, 300, 200);
        f1.add(Des);
        JLabel l9 = new JLabel("Author:");
        l9.setBounds(10, 395, 100, 25);
        f1.add(l9);
        JTextField Author = new JTextField();
        Author.setBounds(130, 395, 300, 25);
        f1.add(Author);
        JLabel l7 = new JLabel("Category:");
        l7.setBounds(10, 430, 100, 25);
        f1.add(l7);
        JComboBox booktype = new JComboBox();
        booktype.setBounds(130, 430, 200, 25);
        booktype.addItem("Story Book");
        booktype.addItem("Programing Book");
        booktype.addItem("Art Book");
        f1.add(booktype);
        JLabel l8 = new JLabel("language:");
        l8.setBounds(10, 465, 200, 25);
        f1.add(l8);
        JTextField Agegroup = new JTextField();
        Agegroup.setBounds(130, 465, 200, 25);
        JComboBox slanguage = new JComboBox();
        slanguage.addItem("sinhala");
        slanguage.addItem("English");
        slanguage.addItem("Tamil");
        slanguage.setBounds(130, 465, 200, 25);
        f1.add(slanguage);
        JLabel l10 = new JLabel("Type:");
        l10.setBounds(10, 500, 200, 25);
        JComboBox level = new JComboBox();
        level.addItem("Advance");
        level.addItem("Medium");
        level.addItem("Entry");
        level.setBounds(130, 500, 200, 25);
        JTextField planguage = new JTextField();
        planguage.setBounds(130, 465, 200, 25);
        booktype.addItemListener((ItemEvent e) -> {
            if (e.getItem() == "Art Book") {
                f1.remove(slanguage);
                f1.remove(level);
                f1.remove(l10);
                f1.remove(planguage);
                l8.setText("Age group");
                f1.add(Agegroup);
                f1.repaint();
            } else if (e.getItem() == "Programing Book") {
                l8.setText("language:");
                f1.remove(Agegroup);
                f1.remove(slanguage);
                f1.add(l10);
                f1.add(planguage);
                f1.add(level);
                f1.repaint();
            } else {
                f1.remove(Agegroup);
                f1.remove(planguage);
                f1.remove(level);
                f1.remove(l10);
                f1.add(slanguage);
                l8.setText("language:");
                f1.repaint();

            }
        });
        f1.setVisible(true);
    }