我想实现这样一个效果
现在有
JFrame f
JRadioButton r1,r2
JTextField t1, t2
JButton b1
ButtonGroup在t1 t2 中分别输入2个数
选择r1 然后点b1 执行一个事件 比如 两个数相加
选择r2时 点b2 执行另一个 比如 两个数想减现在我不会做的就是 在同一个 JFrame里 要这么执行 就要监听r1和b1或者r2和b2(我是这样想的)但是如何做2个有关联的监听呢……我不大会做……
请高人指点……
现在有
JFrame f
JRadioButton r1,r2
JTextField t1, t2
JButton b1
ButtonGroup在t1 t2 中分别输入2个数
选择r1 然后点b1 执行一个事件 比如 两个数相加
选择r2时 点b2 执行另一个 比如 两个数想减现在我不会做的就是 在同一个 JFrame里 要这么执行 就要监听r1和b1或者r2和b2(我是这样想的)但是如何做2个有关联的监听呢……我不大会做……
请高人指点……
import javax.swing.JOptionPane;/*
* Demo.java
*
* Created on 2008年11月23日, 下午8:44
*//**
*
* @author jhwang
*/
public class Demo extends javax.swing.JFrame {
/** Creates new form Demo */
public Demo() {
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.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() { buttonGroup1 = new javax.swing.ButtonGroup();
jPanel1 = new javax.swing.JPanel();
jPanel4 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
num2Field = new javax.swing.JTextField();
jPanel5 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
num1Field = new javax.swing.JTextField();
jPanel6 = new javax.swing.JPanel();
jLabel3 = new javax.swing.JLabel();
resultLabel = new javax.swing.JLabel();
jPanel2 = new javax.swing.JPanel();
addRadio = new javax.swing.JRadioButton();
minusRadio = new javax.swing.JRadioButton();
jPanel3 = new javax.swing.JPanel();
submit = new javax.swing.JButton();
reset = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Demo"); jPanel1.setLayout(new java.awt.BorderLayout()); jLabel2.setText("num2:");
jPanel4.add(jLabel2); num2Field.setMinimumSize(new java.awt.Dimension(30, 22));
num2Field.setPreferredSize(new java.awt.Dimension(150, 22));
jPanel4.add(num2Field); jPanel1.add(jPanel4, java.awt.BorderLayout.SOUTH); jLabel1.setText("num1:");
jPanel5.add(jLabel1); num1Field.setMinimumSize(new java.awt.Dimension(100, 22));
num1Field.setPreferredSize(new java.awt.Dimension(150, 22));
jPanel5.add(num1Field); jPanel1.add(jPanel5, java.awt.BorderLayout.CENTER); jLabel3.setText("结果:");
jPanel6.add(jLabel3); resultLabel.setPreferredSize(new java.awt.Dimension(150, 20));
jPanel6.add(resultLabel); jPanel1.add(jPanel6, java.awt.BorderLayout.NORTH); getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER); buttonGroup1.add(addRadio);
addRadio.setSelected(true);
addRadio.setText("加法");
addRadio.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
addRadioActionPerformed(evt);
}
});
jPanel2.add(addRadio); buttonGroup1.add(minusRadio);
minusRadio.setText("减法");
minusRadio.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
minusRadioActionPerformed(evt);
}
});
jPanel2.add(minusRadio); getContentPane().add(jPanel2, java.awt.BorderLayout.NORTH); submit.setText("确定");
submit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
submitActionPerformed(evt);
}
});
jPanel3.add(submit); reset.setText("取消");
reset.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
resetActionPerformed(evt);
}
});
jPanel3.add(reset); getContentPane().add(jPanel3, java.awt.BorderLayout.SOUTH); pack();
}// </editor-fold>private void addRadioActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
flag = 0;
}private void minusRadioActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
flag = 1;
}private void submitActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
double num1 = 0,num2 = 0;
try{
num1 = Double.valueOf(num1Field.getText());
}catch(Exception e){
JOptionPane.showMessageDialog(this, "num1中只能是数字!");
return;
}
try{
num2 = Double.valueOf(num2Field.getText());
}catch(Exception e){
JOptionPane.showMessageDialog(this, "num2中只能是数字!");
return;
}
if(flag == 0){
resultLabel.setText(String.valueOf(num1+num2));
}else if(flag == 1){
resultLabel.setText(String.valueOf(num1-num2));
}else{
resultLabel.setText("出现无法预料的错误!");
}
}private void resetActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
System.exit(0);
} /**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Demo().setVisible(true);
}
});
} // Variables declaration - do not modify
private javax.swing.JRadioButton addRadio;
private javax.swing.ButtonGroup buttonGroup1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel5;
private javax.swing.JPanel jPanel6;
private javax.swing.JRadioButton minusRadio;
private javax.swing.JTextField num1Field;
private javax.swing.JTextField num2Field;
private javax.swing.JButton reset;
private javax.swing.JLabel resultLabel;
private javax.swing.JButton submit;
// End of variables declarationprivate int flag = 0;//标记进行的是 + - 运算
}
import javax.swing.JOptionPane;/*
* Demo.java
*
* Created on 2008年11月23日, 下午8:44
*//**
*
* @author jhwang
*/
public class Demo extends javax.swing.JFrame {
/** Creates new form Demo */
public Demo() {
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.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() { buttonGroup1 = new javax.swing.ButtonGroup();
jPanel1 = new javax.swing.JPanel();
jPanel4 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
num2Field = new javax.swing.JTextField();
jPanel5 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
num1Field = new javax.swing.JTextField();
jPanel6 = new javax.swing.JPanel();
jLabel3 = new javax.swing.JLabel();
resultLabel = new javax.swing.JLabel();
jPanel2 = new javax.swing.JPanel();
addRadio = new javax.swing.JRadioButton();
minusRadio = new javax.swing.JRadioButton();
jPanel3 = new javax.swing.JPanel();
submit = new javax.swing.JButton();
reset = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Demo"); jPanel1.setLayout(new java.awt.BorderLayout()); jLabel2.setText("num2:");
jPanel4.add(jLabel2); num2Field.setMinimumSize(new java.awt.Dimension(30, 22));
num2Field.setPreferredSize(new java.awt.Dimension(150, 22));
jPanel4.add(num2Field); jPanel1.add(jPanel4, java.awt.BorderLayout.SOUTH); jLabel1.setText("num1:");
jPanel5.add(jLabel1); num1Field.setMinimumSize(new java.awt.Dimension(100, 22));
num1Field.setPreferredSize(new java.awt.Dimension(150, 22));
jPanel5.add(num1Field); jPanel1.add(jPanel5, java.awt.BorderLayout.CENTER); jLabel3.setText("结果:");
jPanel6.add(jLabel3); resultLabel.setPreferredSize(new java.awt.Dimension(150, 20));
jPanel6.add(resultLabel); jPanel1.add(jPanel6, java.awt.BorderLayout.NORTH); getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER); buttonGroup1.add(addRadio);
addRadio.setSelected(true);
addRadio.setText("加法");
addRadio.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
addRadioActionPerformed(evt);
}
});
jPanel2.add(addRadio); buttonGroup1.add(minusRadio);
minusRadio.setText("减法");
minusRadio.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
minusRadioActionPerformed(evt);
}
});
jPanel2.add(minusRadio); getContentPane().add(jPanel2, java.awt.BorderLayout.NORTH); submit.setText("确定");
submit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
submitActionPerformed(evt);
}
});
jPanel3.add(submit); reset.setText("取消");
reset.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
resetActionPerformed(evt);
}
});
jPanel3.add(reset); getContentPane().add(jPanel3, java.awt.BorderLayout.SOUTH); pack();
}// </editor-fold>private void addRadioActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
flag = 0;
}private void minusRadioActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
flag = 1;
}private void submitActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
double num1 = 0,num2 = 0;
try{
num1 = Double.valueOf(num1Field.getText());
}catch(Exception e){
JOptionPane.showMessageDialog(this, "num1中只能是数字!");
return;
}
try{
num2 = Double.valueOf(num2Field.getText());
}catch(Exception e){
JOptionPane.showMessageDialog(this, "num2中只能是数字!");
return;
}
if(flag == 0){
resultLabel.setText(String.valueOf(num1+num2));
}else if(flag == 1){
resultLabel.setText(String.valueOf(num1-num2));
}else{
resultLabel.setText("出现无法预料的错误!");
}
}private void resetActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
System.exit(0);
} /**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Demo().setVisible(true);
}
});
} // Variables declaration - do not modify
private javax.swing.JRadioButton addRadio;
private javax.swing.ButtonGroup buttonGroup1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel5;
private javax.swing.JPanel jPanel6;
private javax.swing.JRadioButton minusRadio;
private javax.swing.JTextField num1Field;
private javax.swing.JTextField num2Field;
private javax.swing.JButton reset;
private javax.swing.JLabel resultLabel;
private javax.swing.JButton submit;
// End of variables declarationprivate int flag = 0;//标记进行的是 + - 运算
}