java实现计算器加法小程序(图形化界面)
对于一个简单的计算器加法小程序,它首先是由五个组件构成的,三个文本框,两个用来输入数字,一个用来输出最后的结果,接下来是一个标签,标签的内容是加号,表示这里计算的是加法,最后一个组建是一个按钮,点击该按钮时会输出计算的结果.在这个小程序中,我们采用的布局管理器时FlowLayout.基本元素就是这些,接下来我们将演示两种实现的方法:
(1)、传递成员局部变量的方法,具体代码如下:
package 实例11; import java.awt.*; import java.awt.event.*; public class Test { public static void main(String[]args){ new MyFrame().launchMyFrame(); } } class MyFrame extends Frame{ public void launchMyFrame(){ TextField tf1 = new TextField(); TextField tf2 = new TextField(); TextField tf3 = new TextField(); Label l = new Label("+"); Button b = new Button("="); Monitor m = new Monitor(tf1, tf2, tf3); //通过构造方法将三个局部变量传递Monitor b.addActionListener(m); setLayout(new FlowLayout()); add(tf1); add(l); add(tf2); add(b); add(tf3); pack(); setVisible(true); } } class Monitor implements ActionListener{ TextField tf1, tf2, tf3; public Monitor(TextField tf1, TextField tf2, TextField tf3){ this.tf1 = tf1; this.tf2 = tf2; this.tf3 = tf3; } public void actionPerformed(ActionEvent e){ int a = Integer.parseInt(tf1.getText()); int b = Integer.parseInt(tf2.getText()); int c = a + b; tf3.setText(""+c); System.out.println(c); } }
(2)、传递引用的方式,具体代码如下:
package 实例11; import java.awt.*; import java.awt.event.*; public class Test { public static void main(String[]args){ new MyFrame().launchMyFrame(); } } class MyFrame extends Frame{ TextField tf1, tf2, tf3; public void launchMyFrame(){ tf1 = new TextField(); tf2 = new TextField(); Label l = new Label("+"); Button b = new Button("="); Monitor m = new Monitor(this); b.addActionListener(m); setLayout(new FlowLayout()); add(tf1); add(l); add(tf2); add(b); add(tf3); pack(); setVisible(true); } } class Monitor implements ActionListener{ MyFrame mf = null; public Monitor(MyFrame mf){ this.mf = mf; } public void actionPerformed(ActionEvent e){ int a = Integer.parseInt(mf.tf1.getText()); int b = Integer.parseInt(mf.tf2.getText()); int c = a + b; mf.tf3.setText(""+c); System.out.println(c); } }
总结:通常使用第二种方法比较好,因为只需要在事件监听器中接收引起事件发生的类的引用即可,无需知道该类中具体的成员
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
赞 (0)