【发布时间】:2011-01-22 02:28:36
【问题描述】:
我有 JFrame 的 jButton1 私有成员,我想在单击按钮时关闭框架。
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
}
});
我想做super.close(),但找不到超级的关闭。有没有办法引用JFrame
【问题讨论】:
我有 JFrame 的 jButton1 私有成员,我想在单击按钮时关闭框架。
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
}
});
我想做super.close(),但找不到超级的关闭。有没有办法引用JFrame
【问题讨论】:
您需要对要关闭的特定框架的引用,但假设您有引用 dispose() 应该关闭该框架。
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
frameToClose.dispose();
}
});
【讨论】:
JButton b3 = new JButton("CLOSE");
b3.setBounds(50, 375, 250, 50);
b3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
【讨论】:
在我看来,您有两个问题。一个是JFrame没有close方法,其他答案中已经解决了。
另一个是您在引用 JFrame 时遇到问题。在actionPerformed 中,super 指的是 ActionListener。要在此处引用 JFrame 实例,请改用 MyExtendedJFrame.super(您也应该能够使用 MyExtendedJFrame.this,因为我认为您没有理由要覆盖 dispose 或 setVisible 的行为)。
【讨论】:
你可以使用 super.dispose() 方法,它更类似于关闭操作。
【讨论】:
你猫使用JFrame的setVisible ()方法(并将可见性设置为false)或dispose ()方法,它更类似于close操作。
【讨论】: