public class MyClass extends JFrame implements ActionListener {
public MyClass() {
super("Frame Window");
setLayout(new FlowLayout());
setSize(700, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton setInv = new JButton("set invisible");
setInv.setVisible(true);
setInv.setPreferredSize(new Dimension(50, 50));
add(setInv);
}
public static void main(String[] args) {
MyClass obj = new MyClass();
obj.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand() == "set invisible") {
// I want an Accessor method for the parent JFrame and then I want to
// set it invisible here!
}
}
}
一个人建议getParent()
方法,但它不工作,因为我想要的! getParent()
回报在这种情况下,JFrame
我觉得有些容器..在java中有没有Accessor方法来获取在我的类的构造函数中初始化的当前JFrame对象?
我已经试过getParent().setInvisible(false);
但没有任何反应.. 我知道这是错误在我的逻辑或东西,但我应该怎么办?
Java很灵活,但在很多方面都有例外!
有一件事是,如果我不从JFrame扩展MyClass并创建一个公共实例JFrame
,然后setVisible(false);
可以通过其参考调用! 但我不想这样做......因为我已经做了很多课程的项目,我不想像这样改变我的代码... 任何帮助家伙!
的[获取在Java应用程序的任何/所有活动JFrames?(可能的复制https://stackoverflow.com/questions/7364535/get-any-all-active- jframes-in-java-application) – Berger
也看看这个:https://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java – Berger
没有用.. JFrame没有隐藏或任何! –