Java jframe添加了自己的设计jinternal frame错误

Java jframe添加了自己的设计jinternal frame错误,java,jframe,jinternalframe,Java,Jframe,Jinternalframe,我在我的内部框架上设计了一个标题栏颜色。然后我尝试将它添加到我的JFrame中,但我不能。以下是我的标题栏的代码: public class MyIFtitleBar extends BasicInternalFrameTitlePane { public MyIFtitleBar(JInternalFrame jif) { super(jif); } protected void paintTitleBackground(Graphics g){

我在我的内部框架上设计了一个标题栏颜色。然后我尝试将它添加到我的JFrame中,但我不能。以下是我的标题栏的代码:

public class MyIFtitleBar extends BasicInternalFrameTitlePane {

    public MyIFtitleBar(JInternalFrame jif) {
        super(jif);
    }

    protected void paintTitleBackground(Graphics g){
      g.setColor(Color.pink);
      g.fillRect(0, 0, getWidth(), getHeight());
    }
}
这是我的镜框。我试着用它的psvm方法运行它,这很有效

public class FitnessProg_Frame extends javax.swing.JInternalFrame {

public FitnessProg_Frame() {  

    initComponents();
    this.setUI(new BasicInternalFrameUI(this){

        @Override
        protected JComponent createNorthPane(JInternalFrame jif) {
            return new MyIFtitleBar(jif);
        }
    });
}

@SuppressWarnings("unchecked")                    
private void initComponents() {

    setBackground(new java.awt.Color(255, 255, 255));
    setBorder(new javax.swing.border.MatteBorder(null));
    setTitle("Fitness Progarm");
    setPreferredSize(new java.awt.Dimension(507, 304));

    pack();
}
}
但当我将其添加到JFrame时,我得到一个错误:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
以下是我的JFrame代码:

public class NewJFrame extends javax.swing.JFrame {

public NewJFrame() {
    initComponents();
    FitnessProg_Frame ff = new FitnessProg_Frame();
    ff.setVisible(true);
    mydes.add(ff);  // this line made errors
}

@SuppressWarnings("unchecked")                          
private void initComponents() {

    mydes = new javax.swing.JDesktopPane();
    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    javax.swing.GroupLayout mydesLayout = new javax.swing.GroupLayout(mydes);
    mydes.setLayout(mydesLayout);
    mydesLayout.setHorizontalGroup(
        mydesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 400, Short.MAX_VALUE)
    );
    mydesLayout.setVerticalGroup(
        mydesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 300, Short.MAX_VALUE)
    );

    getContentPane().add(mydes, java.awt.BorderLayout.CENTER);

    pack();
}                 

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(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (InstantiationException ex) {
        java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (IllegalAccessException ex) {
        java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (javax.swing.UnsupportedLookAndFeelException ex) {
        java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    }
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new NewJFrame().setVisible(true);
        }
    });
}          
private javax.swing.JDesktopPane mydes;

}

你介意给我们看看例外情况吗?我在它出现的那一行插入了一条注释,异常在我的JFrame代码之上。我发现了问题,我没有为MyIFtitleBar类设置布局,所以它返回null布局并产生异常!