如何从内部框架访问 JFrame 中的组件
How to access components in a JFrame from an Internal frame
我创建了 java Swing 应用程序,其中包含一个 jDesktoppane,我在其中 loading/calling 主框架 (JFrame) 中切换按钮的一些内部框架。我已经将 jButton 组用于所有切换按钮,因此按下按钮时只有一帧。
由于我使用了切换按钮,即使我配置了一个 JInternalFrame,相关的切换按钮也将处于按下模式(选中)。我尝试了很多方法,但无法将切换按钮的状态从选中更改为未选中。
首先,我在主 JFrame 中创建了一个方法。
public void buttongroup_off(){
buttonGroup 1.setSelected(null,false);
}
然后我在 JInternalFrame 的退出按钮内创建了一个对象,并通过它调用了 buttongroup_off() 方法。
private void jButton 7 ActionPerformed(java.awt.event.ActionEvent evt) {
Main m1= new Main();
m1.buttongroup_off();
this.dispose();
}
但它不起作用!!有人可以帮我解决这个问题吗?
我是编程新手。
private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {
Main m1= new Main();
m1.buttongroup_off();
this.dispose();
}
在此代码中,您将创建一个 new JFrame Main(创建后不可见)并禁用其按钮组。那不是你想要的。您必须使用对现有 Main 实例的引用来调用 buttongroup_off 方法。您可以通过扩展 JInternalFrame 的自定义 class 的自定义构造函数传递引用,或者您可以向 Main class 添加一个静态方法,该方法将 return 引用 Main 实例。像这样:
private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {
Main m1 = Main.getInstance();
m1.buttongroup_off();
this.dispose();
}
你也可以看看这个问题的答案:managing parent frame from child frame on java swing
您可以使用如下代码获取 JFrame:
Component source = (Component)event.getSource();
Main frame = (Main)SwingUtilities.windowForComponent( source );
现在您有了对框架的引用,您可以从自定义框架调用任何方法 class。
我创建了 java Swing 应用程序,其中包含一个 jDesktoppane,我在其中 loading/calling 主框架 (JFrame) 中切换按钮的一些内部框架。我已经将 jButton 组用于所有切换按钮,因此按下按钮时只有一帧。
由于我使用了切换按钮,即使我配置了一个 JInternalFrame,相关的切换按钮也将处于按下模式(选中)。我尝试了很多方法,但无法将切换按钮的状态从选中更改为未选中。
首先,我在主 JFrame 中创建了一个方法。
public void buttongroup_off(){
buttonGroup 1.setSelected(null,false);
}
然后我在 JInternalFrame 的退出按钮内创建了一个对象,并通过它调用了 buttongroup_off() 方法。
private void jButton 7 ActionPerformed(java.awt.event.ActionEvent evt) {
Main m1= new Main();
m1.buttongroup_off();
this.dispose();
}
但它不起作用!!有人可以帮我解决这个问题吗? 我是编程新手。
private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {
Main m1= new Main();
m1.buttongroup_off();
this.dispose();
}
在此代码中,您将创建一个 new JFrame Main(创建后不可见)并禁用其按钮组。那不是你想要的。您必须使用对现有 Main 实例的引用来调用 buttongroup_off 方法。您可以通过扩展 JInternalFrame 的自定义 class 的自定义构造函数传递引用,或者您可以向 Main class 添加一个静态方法,该方法将 return 引用 Main 实例。像这样:
private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {
Main m1 = Main.getInstance();
m1.buttongroup_off();
this.dispose();
}
你也可以看看这个问题的答案:managing parent frame from child frame on java swing
您可以使用如下代码获取 JFrame:
Component source = (Component)event.getSource();
Main frame = (Main)SwingUtilities.windowForComponent( source );
现在您有了对框架的引用,您可以从自定义框架调用任何方法 class。