读书人

netbeans中的有关问题java.awt.EventQ

发布时间: 2012-01-08 22:48:50 作者: rapoo

netbeans中的问题java.awt.EventQueue.invokeLater(new Runnable())求解
我用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函数执行了,把我搞晕了,这是什么意思啊???请高手帮忙解决一下疑惑~~~


[解决办法]
不会,帮你顶一下.

读书人网 >J2SE开发

热点推荐