我用netbeans编写了一个简单的程序:源文件如下:
package swingtest;
import javax.swing.*;
import javax.swing.event.*;public class MFrame extends javax.swing.JFrame {
    
    /** Creates new form MFrame */
     public MFrame() {
        initComponents();
        bgroup = new ButtonGroup();
        bgroup.add(jRadioButton1);
        bgroup.add(jRadioButton2);
        s = bgroup.getButtonCount();
        
    }
    
    /** 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();
        jButton1 = new javax.swing.JButton();
        jToggleButton1 = new javax.swing.JToggleButton();
        jCheckBox1 = new javax.swing.JCheckBox();
        jRadioButton1 = new javax.swing.JRadioButton();
        jRadioButton2 = new javax.swing.JRadioButton();        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jLabel1.setText("jLabel1");        jButton1.setText("jButton1");        jToggleButton1.setText("jToggleButton1");        jCheckBox1.setText("jCheckBox1");
        jCheckBox1.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
        jCheckBox1.setMargin(new java.awt.Insets(0, 0, 0, 0));
        jCheckBox1.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                jCheckBox1ItemStateChanged(evt);
            }
        });
        jCheckBox1.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                jCheckBox1StateChanged(evt);
            }
        });        jRadioButton1.setText("jRadioButton1");
        jRadioButton1.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
        jRadioButton1.setMargin(new java.awt.Insets(0, 0, 0, 0));
        jRadioButton1.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                jRadioButton1ItemStateChanged(evt);
            }
        });        jRadioButton2.setSelected(true);
        jRadioButton2.setText("jRadioButton2");
        jRadioButton2.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
        jRadioButton2.setMargin(new java.awt.Insets(0, 0, 0, 0));
        jRadioButton2.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                jRadioButton2ItemStateChanged(evt);
            }
        });        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .add(31, 31, 31)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(layout.createSequentialGroup()
                        .add(jCheckBox1)
                        .add(43, 43, 43)
                        .add(jRadioButton1)
                        .add(18, 18, 18)
                        .add(jRadioButton2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 110, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(layout.createSequentialGroup()
                        .add(jLabel1)
                        .add(35, 35, 35)
                        .add(jButton1)
                        .add(17, 17, 17)
                        .add(jToggleButton1)))
                .addContainerGap(26, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .add(19, 19, 19)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(jLabel1)
                    .add(jButton1)
                    .add(jToggleButton1))
                .add(17, 17, 17)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(jCheckBox1)
                    .add(jRadioButton1)
                    .add(jRadioButton2))
                .addContainerGap(226, Short.MAX_VALUE))
        );
        pack();
    }// </editor-fold>                            private void jRadioButton2ItemStateChanged(java.awt.event.ItemEvent evt) {                                               
// TODO 将在此处添加您的处理代码:
       // JOptionPane.showMessageDialog(null,"Count is "+s);
    }                                                  private void jRadioButton1ItemStateChanged(java.awt.event.ItemEvent evt) {                                               
// TODO 将在此处添加您的处理代码:
        JOptionPane.showMessageDialog(null,"Count is "+s);
    }                                                  private void jCheckBox1ItemStateChanged(java.awt.event.ItemEvent evt) {                                            
// TODO 将在此处添加您的处理代码:
        JOptionPane.showMessageDialog(null,"You hava changed you chose "+jCheckBox1.getText());
    }                                               private void jCheckBox1StateChanged(javax.swing.event.ChangeEvent evt) {                                        
// TODO 将在此处添加您的处理代码:
        //JOptionPane.showMessageDialog(null,"You hava changed you chose !");
    }                                       
    
    /**
     * @param args the command line arguments
     */
   public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                JOptionPane.showMessageDialog(null,"MFrame.main() actioned ! ");
                new MFrame().setVisible(true);                
            }
        });
    }
    public static int s;
    private javax.swing.ButtonGroup bgroup;
    // 变量声明 - 不进行修改                     
    private javax.swing.JButton jButton1;
    private javax.swing.JCheckBox jCheckBox1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JRadioButton jRadioButton1;
    private javax.swing.JRadioButton jRadioButton2;
    private javax.swing.JToggleButton jToggleButton1;
    // 变量声明结束                   
    
}Test.java:package swingtest;
import javax.swing.*;
import javax.swing.event.*;
/**
 *
 * @author Administrator
 */
public class Test {
    
    /** Creates a new instance of Test */
    public Test() {
    }
    public static void main(String[] args)
    {
        MFrame mfr = new MFrame();
        JOptionPane.showMessageDialog(null,"Test.main actioned!");
        mfr.setVisible(true);
    }
    
}
其中Test.java文件中的main函数是我自己加的,可是这样一来这个工程就有两个main函数了,实际上执行的是MFrame.java中的main,但是一旦把MFrame.java中的main注释起来后再执行项目就会是Test.java中的main函数执行了,把我搞晕了,这是什么意思啊???请高手帮忙解决一下疑惑~~~