回 帖 发 新 帖 刷新版面

主题:很紧急

帮我看看下面的代码,怎么不能相应事件::::


package lesson8;

import java.awt.BorderLayout;
import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Rectangle;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.JTextArea;
import javax.swing.Box;
import java.awt.Component;
import javax.swing.JCheckBox;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JToggleButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Frame1 extends JFrame {
    JPanel contentPane;
    JLabel 姓名 = new JLabel();
    JTextField jTextField1 = new JTextField();
    JLabel jLabel1 = new JLabel();
    String str[] = new String[]{"请选择","本科生","研究生","工程师","博士","其它"};
    JComboBox jComboBox1 = new JComboBox(str);
    JLabel jLabel2 = new JLabel();
    JTextArea jTextArea1 = new JTextArea();
    JLabel jLabel3 = new JLabel();
    Component hstrut1 = Box.createHorizontalStrut(8);
    JCheckBox jCheckBox1 = new JCheckBox();
    JCheckBox jCheckBox2 = new JCheckBox();
    JCheckBox jCheckBox3 = new JCheckBox();
    JLabel jLabel4 = new JLabel();
    JLabel jLabel5 = new JLabel();
    JLabel jLabel6 = new JLabel();
    JLabel jLabel7 = new JLabel();
    JRadioButton jRadioButton1 = new JRadioButton();
    JRadioButton jRadioButton2 = new JRadioButton();
    JLabel jLabel8 = new JLabel();
    JLabel jLabel9 = new JLabel();
    JButton jButton1 = new JButton();
    
    JToggleButton jToggleButton1 = new JToggleButton();
    public Frame1() {
        try {
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    /**
     * Component initialization.
     *
     * @throws java.lang.Exception
     */
    private void jbInit() throws Exception {
        contentPane = (JPanel) getContentPane();
        contentPane.setLayout(null);
        setSize(new Dimension(400, 350));
        setTitle("Frame Title");
        姓名.setText("姓名:");
        姓名.setBounds(new Rectangle(27, 34, 48, 23));
        jTextField1.setText(" ");
        jTextField1.setBounds(new Rectangle(78, 34, 108, 25));
        jLabel1.setText("资历:");
        jLabel1.setBounds(new Rectangle(207, 39, 55, 18));
        jComboBox1.setBounds(new Rectangle(269, 34, 108, 28));
        jComboBox1.addActionListener(new Frame1_jComboBox1_actionAdapter(this));
        jLabel2.setText("地址:");
        jLabel2.setBounds(new Rectangle(27, 85, 37, 20));
        jTextArea1.setText(" ");
        jTextArea1.setBounds(new Rectangle(74, 81, 121, 79));
        jLabel3.setText("兴趣:");
        jLabel3.setBounds(new Rectangle(207, 85, 34, 25));
        hstrut1.setBounds(new Rectangle(268, 85, 8, 0));
        jCheckBox1.setText("jCheckBox1");
        jCheckBox1.setBounds(new Rectangle(269, 97, 17, 13));
        jCheckBox2.setText("男");
        jCheckBox2.setBounds(new Rectangle(269, 124, 21, 16));
        jCheckBox3.setText("jCheckBox3");
        jCheckBox3.setBounds(new Rectangle(269, 153, 17, 17));
        jLabel4.setText("阅读");
        jLabel4.setBounds(new Rectangle(294, 93, 56, 23));
        jLabel5.setText("唱歌");
        jLabel5.setBounds(new Rectangle(294, 123, 43, 21));
        jLabel6.setText("跳舞");
        jLabel6.setBounds(new Rectangle(295, 151, 50, 21));
        jLabel7.setText("性别:");
        jLabel7.setBounds(new Rectangle(26, 180, 42, 23));
        jRadioButton1.setText("jRadioButton1");
        jRadioButton1.setBounds(new Rectangle(73, 188, 20, 15));
        jRadioButton2.setText("jRadioButton2");
        jRadioButton2.setBounds(new Rectangle(73, 214, 19, 23));
        jLabel8.setText("男");
        jLabel8.setBounds(new Rectangle(99, 187, 43, 20));
        jLabel9.setText("女");
        jLabel9.setBounds(new Rectangle(97, 215, 46, 21));
        jButton1.setBounds(new Rectangle(92, 259, 81, 37));
        jButton1.setText("验证");
        jButton1.addActionListener(new Monitor());
        jToggleButton1.setText("重置");
        jToggleButton1.addActionListener(new Monitor());
        jToggleButton1.setBounds(new Rectangle(240, 258, 82, 37));
        contentPane.add(姓名);
        contentPane.add(jTextField1);
        contentPane.add(jLabel1);
        contentPane.add(jComboBox1);
        contentPane.add(jLabel2);
        contentPane.add(jTextArea1);
        contentPane.add(jLabel3);
        contentPane.add(hstrut1);
        contentPane.add(jCheckBox2);
        contentPane.add(jCheckBox1);
        contentPane.add(jCheckBox3);
        contentPane.add(jLabel4);
        contentPane.add(jLabel5);
        contentPane.add(jLabel6);
        contentPane.add(jLabel7);
        contentPane.add(jRadioButton2);
        contentPane.add(jRadioButton1);
        contentPane.add(jLabel8);
        contentPane.add(jLabel9);
        contentPane.add(jToggleButton1);
        contentPane.add(jButton1);
    }

    public void jComboBox1_actionPerformed(ActionEvent e) {
        String name=姓名.getText();
        String address=jLabel2.getText();
        if(name.length()==0){
           姓名.setText("姓名未输入");
        }
        if(address.length()==0){
            jLabel2.setText("请输入地址");
        }
        jLabel2.setText("");
        jLabel2.setText(jLabel2.toString());
    }
    private class Monitor implements ActionListener{
        public void actionPerformed(ActionEvent e) {
            if(e.getActionCommand().equals("验证")){
           System.out.println("验证");
            }else if(e.getActionCommand().equals("重置")){
                System.out.println("重置");
            }
            
        }
    }
    
}


class Frame1_jComboBox1_actionAdapter implements ActionListener {
    private Frame1 adaptee;
    Frame1_jComboBox1_actionAdapter(Frame1 adaptee) {
        this.adaptee = adaptee;


    }

    public void actionPerformed(ActionEvent e) {
        adaptee.jComboBox1_actionPerformed(e);
        
        
    }
}

回复列表 (共3个回复)

沙发

看起来是没有问题的。
虽然你的方法有的我之前没有用过,不过刚试验过,都可以执行。
实在是要抱怨下。。写的太混乱了,看了好rui啊。
建议重新写过。。初学不要搞太多组件,容易头大
还有。。变量命名请注意一下,
别用中文命名,因为java内建的字符集是西欧字符字符集,不包括任何中文字符,中文变量很难保证编译的时候不出问题。
java是有一种编程规范的,变量名称通常是由有意义(不要用button1,button2来表示,谁都不知道是拿去做什么的)的单词组成,首单词小写,之后的单词第一个字母大写,譬如提交按钮就可以命名为submitButton。其他规范请自己去网上找,按照规范做事,有利于他人共享你的思想成果,也是负责的IT人的表现。

最后是我个人的经验,
写swing程序,一个组件的初始化,设置值,添加侦听器可以构成一个段落
而各个段落之间请用空行分开 这样会比较清晰

板凳

[quote]别用C中文命名,因为java内建的字符集是西欧字符字符集,不包括任何中文字符,中文变量很难保证编译的时候不出问题。
[/quote]

No, you are wrong.

java内建的字符集 is unicode. You can use Chinese, Korean, Arabic or any ISO recognized 字符集.

Java is good on Internationization, i18n!!!

3 楼

However, "别用C中文命名" is a good suggestion, if you want to make your code readable for programmer or boss who are not Chinese.

Now, globalization makes the world so small. [em2]

我来回复

您尚未登录,请登录后再回复。点此登录或注册