我有一个JFrame
(名为FTask
),带有public void方法。示例代码:
public void clear() {
jTable1.clearSelection();
jButton1.setEnabled(false);
jButton3.setEnabled(false);
jButton2.setEnabled(false);
jTextArea1.setText(null);
}
然后,我有一个按钮JDialog
。我想当我点击按钮时,框架会清除'清除'框架的方法。
我试过了:
FTask ft = new FTask();
ft.clear();
但它没有用。
答案 0 :(得分:2)
我试过了:
FTask ft = new FTask();
ft.clear();
不,它不会。此代码正在创建未设置可见的框架的新(第2个实例)。您需要的是对 原始框架的引用。但它不起作用。
这可以通过多种方式修复,过于宽泛而无法进入,并且是在尝试编写GUI应用程序之前应该掌握的面向对象编程101。 - 这增加了他们自己的并发症。
答案 1 :(得分:1)
您必须使用actionlistener才能在单击按钮时运行代码。
JButton button = new JButton("Click me");
//Add action listener to button
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
//Execute when button is pressed
if(e.getSource() == button){
System.out.println("You clicked the button");
//In your case:
ft.clear();
}
}
});
答案 2 :(得分:0)
正如@Menno所说,你必须使用ActionListener
才能检测按钮点击次数
这是Java 8风格:
JButton button = new JButton("Click me");
//Add action listener to button
button.addActionListener(
ae -> ft.clear();
);
// Add button to frame
add(button);