Java 打开内部框架时管理大型机中的按钮状态
我只需要在启动按钮的actionperformed事件时禁用大型机中的一个按钮,然后在内部框架关闭后再次启用它,我尝试了几种方法,但都不起作用 我正在使用netbeans,这就是我要做的 大型机类Java 打开内部框架时管理大型机中的按钮状态,java,swing,jinternalframe,Java,Swing,Jinternalframe,我只需要在启动按钮的actionperformed事件时禁用大型机中的一个按钮,然后在内部框架关闭后再次启用它,我尝试了几种方法,但都不起作用 我正在使用netbeans,这就是我要做的 大型机类 package tt; public class Test extends javax.swing.JFrame { public Test() { initComponents(); } @SuppressWarnings("unchecked") // <editor-fol
package tt;
public class Test extends javax.swing.JFrame {
public Test() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jDesktopPane1 = new javax.swing.JDesktopPane();
jPanel1 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
javax.swing.GroupLayout jDesktopPane1Layout = new javax.swing.GroupLayout(
jDesktopPane1);
jDesktopPane1.setLayout(jDesktopPane1Layout);
jDesktopPane1Layout.setHorizontalGroup(jDesktopPane1Layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 578, Short.MAX_VALUE));
jDesktopPane1Layout.setVerticalGroup(jDesktopPane1Layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 367, Short.MAX_VALUE));
jButton1.setText("OPEN");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(
jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING).addGroup(
jPanel1Layout
.createSequentialGroup()
.addGap(136, 136, 136)
.addComponent(jButton1,
javax.swing.GroupLayout.PREFERRED_SIZE, 74,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)));
jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING).addComponent(
jButton1, javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE, 39, Short.MAX_VALUE));
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jDesktopPane1)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE));
layout.setVerticalGroup(layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
layout.createSequentialGroup()
.addComponent(jDesktopPane1)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)));
pack();
}// </editor-fold>
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
jButton1.setEnabled(false);
NewJInternalFrame nf = new NewJInternalFrame();
jDesktopPane1.add(nf);
nf.show();
}
public static void main(String args[]) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager
.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Test.class.getName()).log(
java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Test.class.getName()).log(
java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Test.class.getName()).log(
java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Test.class.getName()).log(
java.util.logging.Level.SEVERE, null, ex);
}
// </editor-fold>
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Test().setVisible(true);
}
});
}
// Variables declaration - do not modify
public javax.swing.JButton jButton1;
private javax.swing.JDesktopPane jDesktopPane1;
private javax.swing.JPanel jPanel1;
// End of variables declaration
tt包;
公共类测试扩展了javax.swing.JFrame{
公开考试(){
初始化组件();
}
@抑制警告(“未选中”)
//
私有组件(){
jDesktopPane1=newjavax.swing.JDesktopPane();
jPanel1=newjavax.swing.JPanel();
jButton1=newjavax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
javax.swing.GroupLayout jDesktopPane1Layout=新建javax.swing.GroupLayout(
jDesktopPane1);
设置布局(jDesktopPane1Layout);
setHorizontalGroup(jDesktopPane1Layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0,578,短的最大值);
设置垂直组(jDesktopPane1Layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0,367,短的最大值);
jButton1.setText(“打开”);
jButton1.addActionListener(新java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
jButton1ActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel1Layout=新建javax.swing.GroupLayout(
jPanel1);
setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING.addGroup(
JPanel1布局
.createSequentialGroup()
.addGap(136、136、136)
.addComponent(jButton1,
javax.swing.GroupLayout.PREFERRED_SIZE,74,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
简称“最大值”);
jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING.addComponent(
jButton1,javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE,39,Short.MAX_VALUE));
javax.swing.GroupLayout布局=新建javax.swing.GroupLayout(
getContentPane());
getContentPane().setLayout(布局);
布局。setHorizontalGroup(布局
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jDesktopPane1)
.addComponent(jPanel1、javax.swing.GroupLayout.DEFAULT_SIZE、,
javax.swing.GroupLayout.DEFAULT_SIZE,Short.MAX_VALUE));
布局。setVerticalGroup(布局
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
layout.createSequentialGroup()
.addComponent(jDesktopPane1)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT\u大小,
javax.swing.GroupLayout.PREFERRED_SIZE));
包装();
}//
私有void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
jButton1.setEnabled(false);
NewJInternalFrame nf=新的NewJInternalFrame();
jDesktopPane1.add(nf);
nf.show();
}
公共静态void main(字符串参数[]){
试一试{
对于(javax.swing.UIManager.LookAndFeelInfo:javax.swing.UIManager
.getInstalledLookAndFeels()){
if(“Nimbus”.equals(info.getName())){
setLookAndFeel(info.getClassName());
打破
}
}
}捕获(ClassNotFoundException ex){
java.util.logging.Logger.getLogger(Test.class.getName()).log(
java.util.logging.Level.SEVERE,null,ex);
}catch(实例化异常){
java.util.logging.Logger.getLogger(Test.class.getName()).log(
java.util.logging.Level.SEVERE,null,ex);
}捕获(非法访问例外){
java.util.logging.Logger.getLogger(Test.class.getName()).log(
java.util.logging.Level.SEVERE,null,ex);
}catch(javax.swing.UnsupportedLookAndFeelException ex){
java.util.logging.Logger.getLogger(Test.class.getName()).log(
java.util.logging.Level.SEVERE,null,ex);
}
//
invokeLater(new Runnable()){
公开募捐{
新测试().setVisible(真);
}
});
}
//变量声明-不修改
public javax.swing.JButton jButton1;
私有javax.swing.JDesktopPane jDesktopPane1;
私有javax.swing.JPanel jPanel1;
//变量结束声明
}
内部框架类
package tt;
public class NewJInternalFrame extends javax.swing.JInternalFrame {
public NewJInternalFrame() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setClosable(true);
setIconifiable(true);
setMaximizable(true);
setResizable(true);
addInternalFrameListener(new javax.swing.event.InternalFrameListener() {
public void internalFrameActivated(
javax.swing.event.InternalFrameEvent evt) {
}
public void internalFrameClosed(
javax.swing.event.InternalFrameEvent evt) {
formInternalFrameClosed(evt);
}
public void internalFrameClosing(
javax.swing.event.InternalFrameEvent evt) {
}
public void internalFrameDeactivated(
javax.swing.event.InternalFrameEvent evt) {
}
public void internalFrameDeiconified(
javax.swing.event.InternalFrameEvent evt) {
}
public void internalFrameIconified(
javax.swing.event.InternalFrameEvent evt) {
}
public void internalFrameOpened(
javax.swing.event.InternalFrameEvent evt) {
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 394,
Short.MAX_VALUE));
layout.setVerticalGroup(layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 274,
Short.MAX_VALUE));
pack();
}// </editor-fold>
private void formInternalFrameClosed(
javax.swing.event.InternalFrameEvent evt) {
Test njf = new Test();
njf.jButton1.setEnabled(true);
}
}
tt包;
公共类NewJInternalFrame扩展了javax.swing.JInternalFrame{
公共NewJInternalFrame(){
初始化组件();
}
@抑制警告(“未选中”)
//
私有组件(){
可设置(真);
seticonitable(真);
可设置最大化(真);
可设置大小(真);
addInternalFrameListener(新的javax.swing.event.InternalFrameListener(){
已激活公共空间(
javax.swing.event.InternalFrameEvent(evt){
}
公众假期已结束(
javax.swing.event.InternalFrameEvent(evt){
formInternalFrameClosed(evt);
}
公众假期结束(
javax.swing.event.InternalFrameEvent(evt){
private void formInternalFrameClosed(javax.swing.event.InternalFrameEvent evt) {
posframe pos = new posframe(); // **** here***
pos.jButton1.setEnabled(true);
JOptionPane.showMessageDialog(null,"closed");
}
public class Test extends javax.swing.JFrame {
public Test() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jDesktopPane1 = new javax.swing.JDesktopPane();
jPanel1 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
javax.swing.GroupLayout jDesktopPane1Layout = new javax.swing.GroupLayout(
jDesktopPane1);
jDesktopPane1.setLayout(jDesktopPane1Layout);
jDesktopPane1Layout.setHorizontalGroup(jDesktopPane1Layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 578, Short.MAX_VALUE));
jDesktopPane1Layout.setVerticalGroup(jDesktopPane1Layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 367, Short.MAX_VALUE));
jButton1.setText("OPEN");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(
jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING).addGroup(
jPanel1Layout
.createSequentialGroup()
.addGap(136, 136, 136)
.addComponent(jButton1,
javax.swing.GroupLayout.PREFERRED_SIZE, 74,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)));
jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING).addComponent(jButton1,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE, 39, Short.MAX_VALUE));
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jDesktopPane1)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE));
layout.setVerticalGroup(layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING).addGroup(
layout.createSequentialGroup()
.addComponent(jDesktopPane1)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)));
pack();
}// </editor-fold>
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
jButton1.setEnabled(false);
NewJInternalFrame nf = new NewJInternalFrame(this); //!!
jDesktopPane1.add(nf);
nf.show();
}
public static void main(String args[]) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager
.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Test.class.getName()).log(
java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Test.class.getName()).log(
java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Test.class.getName()).log(
java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Test.class.getName()).log(
java.util.logging.Level.SEVERE, null, ex);
}
// </editor-fold>
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Test().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1; //!! make this private
private javax.swing.JDesktopPane jDesktopPane1;
private javax.swing.JPanel jPanel1;
// End of variables declaration
//!! added
public void setButton1Enabled(boolean enabled) {
jButton1.setEnabled(enabled);
}
}
class NewJInternalFrame extends javax.swing.JInternalFrame {
private Test test; //!!
public NewJInternalFrame(Test test) { //!!
this.test = test; //!!
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setClosable(true);
setIconifiable(true);
setMaximizable(true);
setResizable(true);
addInternalFrameListener(new javax.swing.event.InternalFrameListener() {
public void internalFrameActivated(
javax.swing.event.InternalFrameEvent evt) {
}
public void internalFrameClosed(
javax.swing.event.InternalFrameEvent evt) {
formInternalFrameClosed(evt);
}
public void internalFrameClosing(
javax.swing.event.InternalFrameEvent evt) {
}
public void internalFrameDeactivated(
javax.swing.event.InternalFrameEvent evt) {
}
public void internalFrameDeiconified(
javax.swing.event.InternalFrameEvent evt) {
}
public void internalFrameIconified(
javax.swing.event.InternalFrameEvent evt) {
}
public void internalFrameOpened(
javax.swing.event.InternalFrameEvent evt) {
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 394,
Short.MAX_VALUE));
layout.setVerticalGroup(layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 274,
Short.MAX_VALUE));
pack();
}// </editor-fold>
private void formInternalFrameClosed(javax.swing.event.InternalFrameEvent evt) {
//!! Test njf = new Test();
//!! njf.jButton1.setEnabled(true);
test.setButton1Enabled(true); //!! don't expose the button but a method
}
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
jButton1.setEnabled(false);
NewJInternalFrame nf = new NewJInternalFrame();
jDesktopPane1.add(nf);
nf.show();
// !! do all this in the calling code
nf.addInternalFrameListener(new InternalFrameAdapter() {
@Override
public void internalFrameClosed(InternalFrameEvent arg0) {
jButton1.setEnabled(true);
}
});
}