我在使用动作侦听器在同一个类中调用void时遇到问题。

例..
码:

public class Product extends JPanel {

    JButton add;
    JPanel pAdd;
    JLabel test;
    JFrame frame;

    public Product() {
        add = new JButton("Add Product");
        add.addActionListener(new ButtonListener());

        add(add);
    }

    public void panelAdd(){
        pAdd = new JPanel();
        pAdd.add(new JLabel("try"));
        add(pAdd);

    }

    private class ButtonListener implements ActionListener {
        public void actionPerformed(ActionEvent event) {
            panelAdd();
        }
    }
}


如何调用panelAdd void方法?

最佳答案

将组件添加到可见的JFrame / JPanel /其他组件时,添加后无需调用revalidate()repaint()方法。像下面一样更改您的panelAdd()

public void panelAdd(){
    pAdd = new JPanel();
    pAdd.add(new JLabel("try"));
    add(pAdd);
    revalidate();
    repaint();
}

10-06 14:43