文章标题

来源:互联网 发布:java 对话框 编辑:程序博客网 时间:2024/05/20 20:05

java GUI简单操作

  本人初学java不足一个月,应老师要求写出BMI学生管理系统,到了GUI界面设计,突然觉得一脸茫然,不知所措,经历好多坎坷才完成最后的任务。故想要分享自己的一些经验,希望对初学java的人有帮助。  首先,安装windowbuilder  eclipse需要使用windowbuilder插件才可以进行界面设计,打开eclipse->Help->Install new software,在workwith里面填写http://download.eclipse.org/windowbuilder/WB/integration/4.5/),然后选择select all,然后finish即可  如下图所示(非常抱歉图片无法正常上传)  ![这里写图片描述](http://img.blog.csdn.net/20170725130722868?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWh6YWh6/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)  点击finish之后稍等即可进行GUI设计。  第二,按照图片位置索引,(http://img.blog.csdn.net/20170725114315081?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWh6YWh6/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)  点击之后选择Swing->JFrame,按照名字要求为你的JFrame起一个名字,然后就会出现design界面,如图: http://img.blog.csdn.net/20170725114634466?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWh6YWh6/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)然后都会出现该界面。java中JFrame代表一个框架,在这个框架中可以添加各种button,txet等等,其中JPanel代表其中的一页(JPanel是依赖于JFrame存在的,就好比JFrame是人,那么JPanel就是人的器官),一个JFrame中可以包含多个JPanel(就好比人有好多器官一般),在JPanel上面也可以进行各种设计,且JPanel可以进行覆盖,当你设计好JPanel,准备设计JPanel_1时,只需在structure里面单机JPanel_1,然后选择order->Bring To Front即可,这些代码在source里面都会自动生成,我们只需要添加名字颜色字体即可(且都可以在design界面调试出来),其中建议将所有的layout(不论时JFrame还是JPanel)都设置为Absolute Layout,这样可以自由的设计页面的布局,否则会受到拘束。    第三,到了自己敲代码的时候了
    public void actionPerformed(ActionEvent e) {                String id = textField_1.getText();                String name = textField_2.getText();                float height = Float.parseFloat(textField_3.getText());                float weight = Float.parseFloat(textField_4.getText());                BigDecimal number = new BigDecimal(height/weight/weight);                float bmi = number.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();                Student stu = new Student(id,name,height,weight,bmi);                if(!isExist(id)){                    JOptionPane.showMessageDialog(null, "该学生已经存在");                }else{                    students.add(stu);                    JOptionPane.showMessageDialog(null, "添加成功");                }            }        });
这里面的textField是我们在design里面设计的时候就存在的,他们都拥有自己的标号,且textField可以进行输入
String id = textField_1.getText();
这句话的意思就是用id来接收textField_1所输入的的字符串,其他的自行设计的函数不需担心,
JOptionPane.showMessageDialog(null, "该学生已经存在");
这句话就是调用Dialog对话框进行提示,当你进行某些操作之后会提示你括号内第二个变量的内容然后的然后你可能想知道
    public void actionPerformed(ActionEvent e) { 
 这是什么啊! 别着急,我们继续回到design界面 用一个实例来解释 设计点击显示button显示出一个加法器,然后在加法器的前两个textField里面输入两个数字,点击'确认'button显示出得数: 新建累什么的内容不再赘述 首先设计出一个Jpanel以及一个button,JPanel里面存在三个textField以及两个Jlable,还有一个button,如图: ![这里写图片描述](http://img.blog.csdn.net/20170725122231397?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWh6YWh6/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 名称改变之后的模样如下: ![这里写图片描述](http://img.blog.csdn.net/20170725122602433?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWh6YWh6/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 然后单机显示button,右键选择add evevt handler->action->actionPerformed即可跳转到source界面进行设计
JButton btnNewButton_1 = new JButton("\u786E\u8BA4");        btnNewButton_1.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {            }        });

这些都是自动生成的代码,也就是前面所说的问题,接下来需要完成的任务是前两个textField输入结束之后点击button然后第三个显示加和的结果,代码如下:

JButton btnNewButton_1 = new JButton("\u786E\u8BA4");        btnNewButton_1.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                float number1 = Float.parseFloat(textField.getText());                float number2 = Float.parseFloat(textField_1.getText());                textField_2.setText(String.valueOf((number1+number2)));            }        });        btnNewButton_1.setBounds(263, 80, 113, 27);        panel.add(btnNewButton_1);    }

以上代码大致都可以看懂,不需要再解释
其中panel出需要加一句代码:找到panel(其实可以加在任何非函数内部的地方,但是为了让代码看起来比较工整,加在panel附近为好)

panel.setVisible(false);

这句话是说让panel不可见,目的是点击”显示”button时可以显示出Panel
“显示”button代码如下:依旧是单机右键add evevt handler->action->actionPerformed

JButton btnNewButton = new JButton("显示");        btnNewButton.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                panel.setVisible(true);            }        });        btnNewButton.setBounds(140, 13, 113, 27);        contentPane.add(btnNewButton);

代码写完,接下来看运行结果:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

脱坑结束
(本人能力有限,welcome to criticise)
不知名原因图片无法正常显示,请见谅