![](/img/trans.png)
[英]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.