java图形界面设计计算器,java图形用户界面计算器
用JAVA开发图形界面应用程序的SWING组件包功能强大且易于使用。接下来,我们将使用它来编写一个简单的图形界面小程序:加法计算器。
第一步:
首先,我们必须弄清楚我们要做什么。如果加个计算器,做出来之后就是这个样子了。
如上图,这个程序的界面已经在我们脑海中成型了:程序的顶部有一个标题,这里用来说明我们程序的名字;在函数上,用户可以把自己要加的值放在框1和框2中,然后点击下面的“计算”按钮,结果会显示在框3中。
第二步:
分析一下界面,该怎么办。从上图可以看出,界面包含七个控件:标题、框1、框2、框3、加号、等号,还有一个“计算”按钮。这时候我们心里要有相应的对策:框1,框2用来接收用户动态输入的值,框3用来显示计算结果;我们可以使用三个文本框来做到这一点,其中框3不需要用户输入,我们可以为它设置用户可编辑的属性。标题,加号,等号,这三个控件总是一样的,我们选择静态标签来完成。“计算”按钮,当然得用按钮控件来做,但如果只是普通的按钮,那就没用了。我们需要为这个按钮添加一个用于计算加法的事件响应,这样当我们单击这个按钮时,计算结果就会出现在框3中。
选择控件的使用。我们也需要分析。要实现上图所示的界面,我们需要几个模块。
两个模块:
1)题目是一个模块。2)方框1,方框2,方框3,加号,等于一个模块。
这是因为框1、框2、框3、加号、等号在同一条水平线,而标题在另一条水平线。所以我们需要把它分成两个模块。(可能感觉有点多余,但程序设计就是这样,刚柔并济,方法固定,却能达到各种效果)。分成两个横向模块后,事情还没完。我们还需要将这两个水产品模块组合成一个垂直模块(从上到下排列)。我们后面会随意设置按钮的位置,这里就不把它当模块用了。
这样,准备工作就完成了。开始手写代码。
代码实现:
导入Java . awt . color;导入Java . awt.component;导入Java . awt . event . action event;导入Java . awt . event . action listener;导入javax . swing . *;公共类MyWin扩展JFrame实现action listener { JTextField rValue=new JTextField(8);JTextField lValue=new JTextField(8);JTextField result=new JTextField(8);jbertcalcul=new jbutton( calculation );MyWin() {/**布局设计* **/setTitle(加法计算器);set layout(null);setBounds(680,300,512,380);set visible(true);setDefaultCloseOperation(JFrame。EXIT _ ON _ CLOSE);JPanel my title=new JPanel();MyTitle.add(新JLabel(加法计算器-v 1.0 ));JPanel my text=new JPanel();myText.add(右值);my text . add(new JLabel());my text . add(lValue);my text . add(new JLabel(=);result . set editable(false);result.setBackground(颜色。浅_灰色);myText.add(结果);box my main=box . createverticalbox();component strut 1=box . createverticalstrut(20);组件strut 2=box . createverticalstrut(200);mymain . add(strut 1);my main . add(my title);myMain.a
dd(myText); myMain.add(strut2); myMain.setBounds(0, 0, 512, 380); add(myMain); calcul.setBounds(200, 220, 100, 60); add(calcul); /**事件监听**/ calcul.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub try { int rVal = Integer.valueOf(rValue.getText()); int lVal = Integer.valueOf(lValue.getText()); int res = rVal + lVal; result.setText(String.valueOf(res)); } catch (Exception e1) { System.out.println(e1); } } }); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub }}上述代码中:
1 ~ 5 行,导入了需要使用到的包。
想要实现窗口界面,首先我们需要一个窗口。
7 ~ 70 行,定义了一个窗口类并在其构造函数中具体实现了控件的初始化。该窗口类继承自 JAVA 提供的JFrame 窗口类,并实现了JAVA 提供的 ActionListener 事件响应接口(我们使用该窗口类作为自己的事件监听器)。
8 ~ 11 行,将文本框与按钮控件作为类的成员属性,因为在程序运行时他们的状态需要保存下来,如果将其定义在某个函数中,该函数结束时,控件的生命周期也会结束,控件的状态已经其中的值无法保存,我们便无法完成后序的其他操作。其中 8,9,10 行文本框控件使用有参构造定义,表示该文本框控件最大可显示 8 位字符。
13 ~ 63 行,实现窗口类的构造函数。
15 行,设置窗口标题。
16 行,设置窗口布局为 null 布局,即我们需要设置每一个控件的位置。
17 行,设置窗口程序运行时出现在屏幕上时的初始位置和窗口大小。
18 行,设置窗口可见。若设置为 false ,则窗口不可见(你什么也看不到)。
19 行,设置点击窗口右上角叉叉时程序的事件响应。我这里设置为 EXIT_ON_CLOSE ,即点击后退出程序。
21 行,定义一个 myTitle 面板(即为上文中第一个模块),用来存放我们的标题。22 行,往 mytitle 面板中增加了我们的标题文本标签。
23 ~ 30,定义 myText 面板(第二个模块)并往其中添加了类成员属性中的三个文本框控件。其中 28 行设置接受结果的文本框的属性为不可编辑,29 行设置其颜色为亮灰色。
32 ~ 39 行,我们将上面定义的两个面板(两个模块)放入了一个垂直盒子中(将两个模块组合)。其中 33,34 行我设置了两个支撑体,用来控制两个模块之间的距离。
40 行,将装有两个面板的盒子添加到当前窗口。
42 行,设置 计算 按钮出现在窗口中的位置和按钮的大小。43 行,将按钮添加到当前窗口。
46 ~ 62 行,为 计算 按钮注册监听器并实现事件响应函数(将两个文本框内的字符串转化为整形数据进行加法计算后,将结果输出在接收结果的文本框中)。
在相同包下的 Test 文件中测试一下程序。
public class Test { public static void main(String[] args) { // TODO Auto-generated method stub MyWin a = new MyWin(); }}
运行效果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持盛行IT。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。