[英]Java: Using an actionlistener to call a function in another class on an object from that class
[英]use actionlistener to call void function in same class
我在使用动作侦听器在同一个类中调用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方法?
如果你把
System.out.println("hi");
至
public void panelAdd(){
System.out.println("hi");
pAdd = new JPanel();
pAdd.add(new JLabel("try"));
add(pAdd);
}
您会看到喜好打印到您的控制台,您的代码正在运行,但是Layout中存在问题。
将组件添加到可见的JFrame
/ JPanel
/其他组件时,添加后无需调用revalidate()
和repaint()
方法。 如下更改您的panelAdd()
:
public void panelAdd(){
pAdd = new JPanel();
pAdd.add(new JLabel("try"));
add(pAdd);
revalidate();
repaint();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.