java图形化界面的简单应用,完成人品测试小例子。基本图形化界面如下:

    【分析】:java图形化界面设计类似于画家绘画。由图中可以看出,本程序需要

准备1个窗体,3个容器(一个作为基础容器,另外两个作为绿黄两部分的基础),3个标签,2个文本框,3个按钮,分别初始化所有控件,并为他们添加相应的实现动作,实现实例。

    【步骤】:

    1:准备容器(基础容器,上容器,下容器),给基础容器添加布局,给上下容器设置背景色;


GridLayout grid = new GridLayout(2, 1);// 创建布局方式:网状布局:N行N列JPanel pB = new JPanel();// 设置基础容器pB.setLayout(grid);// 设置基础容器的布局方式// 设置两个小面板JPanel pg = new JPanel();//上容器pg.setColor.GREEN); //上容器背景色的设置JPanel py = new JPanel();//下容器py.setColor.YELLOW); //下容器背景色的设置

     2:准备所需的各种控件,并给出相应的初始化;


// 在上容器中添加标签,文本框,按钮JLabel la1 = new JLabel("请输入姓名:");// 给出提示信息JTextField text1 = new JTextField(15);// 用于输入JButton btn1 = new JButton("提交");// 设置按钮的内容JLabel la4 = new JLabel();// 用于提示信息// 在下容器上添加标签,文本框,按钮JLabel la2 = new JLabel("人品值:");JTextField text2 = new JTextField(15);// 设置文本框长度JButton btn2 = new JButton("再来一次");JLabel la3 = new JLabel();JButton btn3 = new JButton("退出");


    3:在上、下容器中分别添加如图所示的控件;


// 在上小画板中添加相应的控件pg.add(la1);pg.add(text1);pg.add(btn1);pg.add(la4);// 在下小画板中添加相应的控件py.add(la2);py.add(text2);py.add(la3);py.add(btn2);py.add(btn3);


   4:把上下容器添加到基础容器中,


// 把两个容器添加到基础容器中pB.add(pg);pB.add(py);

 

    5:设置窗体的大小,标题,退出方式等;


setTitle("人品测试");// 设置画板的标题setBounds(200, 200, 600, 600);// 设置窗体大小setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 设置窗体退出方式

    6:把基础容器添加到窗体上;


// 绑定画板与画布setContentPane(pB);// 设置画板的可见性setVisible(true);

    7:定义按钮单击事件的具体实现成员内部类;


// 定义内部类,实现“提交按钮”的操作private class Button1Handler implements ActionListener {public void actionPerformed(ActionEvent e) {/*** 判断文本框是否为空*  为空,则给出提示信息,重新输入*  不为空,根据随机数值,给出相应评判*/if (text1.getText().equals("")) {la4.setText("姓名不能为空,请重新输入。");/*** 给text1文本框添加获得焦点的监听,以使其完成某些操作*/text1.addFocusListener(new FocusAdapter() {public void focusGained(FocusEvent e) {la4.setText("");// 让文本框获得焦点之后,清空标签}});} else {Random ran = new Random();int zhi = ran.nextInt(100);// 随机输入数值,且转换为int型,为以后的判断String s = String.valueOf(zhi);text2.setText(s);// 根据文本框的值判断人品值的高低if (Integer.parseInt(text2.getText()) <= 20) {la3.setText(text1.getText() + ",你可以去死了");} else if (Integer.parseInt(text2.getText()) <= 60) {la3.setText(text1.getText() + ",对付活着吧。。");} else if (Integer.parseInt(text2.getText()) <= 80) {la3.setText(text1.getText() + ",继续努力,人品会爆发哦");} else if (Integer.parseInt(text2.getText()) < 100) {la3.setText(text1.getText() + ",人品爆发哦");}}}}// 定义内部类,实现“再来一次”按钮的操作private class Button2Handler implements ActionListener {public void actionPerformed(ActionEvent e) {// 让文本框清空text1.setText("");text2.setText("");la3.setText("");la4.setText("");}}// 定义内部类,实现“退出”按钮的操作private class Button3Handler implements ActionListener {public void actionPerformed(ActionEvent e) {System.exit(0);//关闭窗体}}


    8:为图中的按钮添加相应的监听;


//给按钮添加监听,完成某些操作btn1.addActionListener(new Button1Handler());btn2.addActionListener(new Button2Handler());btn3.addActionListener(new Button3Handler());


    9:在main方法中调用该类的构造方法,使程序运行时直接出现窗体;


//方法运行就展现窗体public static void main(String[] args) {new SelfRP();}


    【注意】

    1:在程序中,按钮操作的实现用的是成员内部,在这里成员内部类和成员方法同等地位,切记:不要把成员内部类写到方法中去

2:这里运用成员内部类实现的操作,同样可以用匿名内部类,“再来一次”按钮的匿名类实现如下,其余的可以此类推:

btn2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 让文本框清空text1.setText("");text2.setText("");la3.setText("");la4.setText("");}});

    初来乍到,请多指教!