我用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函数执行了,把我搞晕了,这是什么意思啊???请高手帮忙解决一下疑惑~~~
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函数执行了,把我搞晕了,这是什么意思啊???请高手帮忙解决一下疑惑~~~
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货