java GUI,
java GUI,
#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即可
如下图所示(非常抱歉图片无法正常上传)
点击finish之后稍等即可进行GUI设计。
第二,按照图片位置索引,(https://img-blog.csdn.net/20170725114315081?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWh6YWh6/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
点击之后选择Swing->JFrame,按照名字要求为你的JFrame起一个名字,然后就会出现design界面,如图:
https://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,如图:
名称改变之后的模样如下:
然后单机显示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)
不知名原因图片无法正常显示,请见谅
相关文章
- 暂无相关文章
用户点评