应该如何修改代来,让JPanel.java被调用后,不去改变JFrame的大小,谢谢/*
 * nf.java
 *
 * Created on 2008年7月12日, 下午10:05
 */package abc;import java.awt.Toolkit;/**
 *
 * @author  Administrator
 */
public class nf extends javax.swing.JFrame {
    
    /** Creates new form nf */
    public nf() {
        initComponents();
        this.setSize(Toolkit.getDefaultToolkit().getScreenSize().width,Toolkit.getDefaultToolkit().getScreenSize().height);
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" 生成的代码 ">                          
    private void initComponents() {
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jMenuItem1 = new javax.swing.JMenuItem();        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jMenu1.setText("Menu");
        jMenuItem1.setText("jjj");
        jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem1ActionPerformed(evt);
            }
        });        jMenu1.add(jMenuItem1);        jMenuBar1.add(jMenu1);        setJMenuBar(jMenuBar1);        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 400, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 279, Short.MAX_VALUE)
        );
        pack();
    }// </editor-fold>                            private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
// TODO 将在此处添加您的处理代码:
        njp njp1=new njp();
        njp1.setSize(Toolkit.getDefaultToolkit().getScreenSize().width,this.getContentPane().getHeight()-jMenuBar1.getHeight());
        this.getContentPane().add(njp1);
        this.pack();
        
    }                                          
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new nf().setVisible(true);
            }
        });
    }
    
    // 变量声明 - 不进行修改                     
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem1;
    // 变量声明结束                   
    
}/*
 * njp.java
 *
 * Created on 2008年7月12日, 下午10:06
 */package menu;import java.awt.Toolkit;/**
 *
 * @author  Administrator
 */
public class njp extends javax.swing.JPanel {
    
    /** Creates new form njp */
    public njp() {
        initComponents();
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" 生成的代码 ">                          
    private void initComponents() {
        jLabel1 = new javax.swing.JLabel();
        jTextField1 = new javax.swing.JTextField();        getAccessibleContext().setAccessibleParent(this);
        jLabel1.setText("jLabel1");        jTextField1.setText("jTextField1");        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .add(58, 58, 58)
                .add(jLabel1)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(218, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .add(23, 23, 23)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(jLabel1)
                    .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(257, Short.MAX_VALUE))
        );
    }// </editor-fold>                        
    
    
    // 变量声明 - 不进行修改                     
    private javax.swing.JLabel jLabel1;
    private javax.swing.JTextField jTextField1;
    // 变量声明结束                   
    
}

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【III_dont_know】截止到2008-07-15 09:45:08的历史汇总数据(不包括此帖):
    发帖的总数量:21                       发帖的总分数:540                      每贴平均分数:25                       
    回帖的总数量:17                       得分贴总数量:2                        回帖的得分率:11%                      
    结贴的总数量:20                       结贴的总分数:520                      
    无满意结贴数:1                        无满意结贴分:50                       
    未结的帖子数:1                        未结的总分数:20                       
    结贴的百分比:95.24 %               结分的百分比:96.30 %                  
    无满意结贴率:5.00  %               无满意结分率:9.62  %                  
    值得尊敬
      

  2.   

    this.pack()
    这句话导致了窗口大小的改变
    下面是API中的PACK()的解释
    pack
    public void pack()
    调整此窗口的大小,以适合其子组件的首选大小和布局。如果该窗口和/或其所有者还不可显示,则在计算首选大小之前都将变得可显示。在计算首选大小之后,将会验证该窗口。 
      

  3.   

    private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {                                          
    // TODO 将在此处添加您的处理代码: 
            njp njp1=new njp(); 
            njp1.setSize(Toolkit.getDefaultToolkit().getScreenSize().width,this.getContentPane().getHeight()-jMenuBar1.getHeight()); 
            this.getContentPane().add(njp1); 
            this.pack(); 我不写上this.pack()这个方法,njp1就不能显示!!!请问这又是什么原因呀???应该如何让动态加上的这个njp1显示出来呢?