Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 打开内部框架时管理大型机中的按钮状态_Java_Swing_Jinternalframe - Fatal编程技术网

Java 打开内部框架时管理大型机中的按钮状态

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

我只需要在启动按钮的actionperformed事件时禁用大型机中的一个按钮,然后在内部框架关闭后再次启用它,我尝试了几种方法,但都不起作用 我正在使用netbeans,这就是我要做的

大型机类

 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);
      }

   });
}