Java 来自JPanel的不可见JFrame
我有两个类,其中一个扩展自JPanel,另一个扩展自JFrame 现在我添加了一个从JPanel扩展到另一个类的类,我想从JPanel类中设置JFrame false的可视性,我应该怎么做 public class test extends JPanel{ ... } public class test2 extends JFrame{ test t; public test2(){ t = new test(); } } 公共类测试扩展了JPanel{ ... } 公共类test2扩展了JFrame{ 试验t; 公共测试2(){ t=新测试(); } }Java 来自JPanel的不可见JFrame,java,swing,jpanel,jlabel,Java,Swing,Jpanel,Jlabel,我有两个类,其中一个扩展自JPanel,另一个扩展自JFrame 现在我添加了一个从JPanel扩展到另一个类的类,我想从JPanel类中设置JFrame false的可视性,我应该怎么做 public class test extends JPanel{ ... } public class test2 extends JFrame{ test t; public test2(){ t = new test(); } } 公共类测试扩展了JPanel{ ... } 公
我想从test看不可见test2,我应该怎么做呢?你必须通过
JFrame
对JPanel
的引用,这样它才能调用setVisible(false)代码>
尽管这听起来像是一个糟糕的设计,因为让每个类相互引用是紧密耦合的,不鼓励这样做。我建议使用第三个“Controller”类型的类来接收来自这两个项目的请求并对GUI进行更改。您必须通过对JFrame
的引用,才能调用setVisible(false)代码>
尽管这听起来像是一个糟糕的设计,因为让每个类相互引用是紧密耦合的,不鼓励这样做。我建议使用第三个“Controller”类型的类来接收来自这两个项目的请求并对GUI进行更改。主要方法在哪里?您是从JPanel类创建JFrame类的实例吗?我找到了方法,将test2 obj设置为test method,然后Inivisible ITClassName通常以大写字母开头:test,test2。main方法在哪里?您是否从JPanel类创建JFrame类的实例?我找到了方法,将test2 obj设置为test method,然后Inivisible ITClassName通常以大写字母开头:test,test2。您不需要将框架的引用传递给面板。您可以使用SwingUtilities获取面板添加到的窗口。您不需要将框架的引用传递给面板。您可以使用SwingUtilities获取面板添加到的窗口。