这是我做的计算器的排版,显得有些笨拙,上面两个文本框用于用户输入数字的,中间的五个是按钮,下面一个是显示答案的文本框
*事件:当用户在界面上执行一个操作,例如按下键盘、拖动或者单击鼠标时,都将产生一个事件。Java中事件是用来描述不同类型用户操作的对象,Java中有很多不同类型的事件。例如:单击,双击,右击,拖动,键盘的按下、释放,文本域内容改变等。
事件源:产生事件的组件就是一个事件源。例如,当在一个Button上单击鼠标是,将产生一个ActionEvent类型的事件,而这个Button就是事件源
事件监听器:就是调用事件处理方法的对象。当界面操作事件产生并被发送到产生事件的组件时,该组件将把事件发送给能接受和处理该事件的监听器。*
这里面的重要的是事件的监听,我是通过事件源是按钮,事件是鼠标移动。而这一动作会被监听器捕捉到,监听器就会创建一个移动事件类并自动调用监听器接口(里面都是抽象方法,必须全部实现)中的一个方法,对这一动作做出反应
import java.awt.*;
import java.awt.event.*;
/**
*@author 作者 Your-Name:
*@version 创建时间:
*类说明:实现GUI计算器
*/
public class JiSuanQi {
static int x;
static int y;
public static void main(String[] args) {
// TODO Auto-generated method stub
Frame f = new Frame("计算器");
f.setBounds(100,100,400,400);
f.setVisible(true);
f.setLayout(null);
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
TextField t1 = new TextField();
t1.setBounds(100,80,100,30);
f.add(t1);
TextField t2 = new TextField();
t2.setBounds(100,160,100,30);
f.add(t2);
TextField t3 = new TextField();
t3.setBounds(100,300,100,30);
f.add(t3);
Button b1 = new Button("+");
b1.setBounds(80,240,30,20);
b1.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e)
{
}
public void mouseEntered(MouseEvent e)
{
}
public void mouseExited(MouseEvent e)
{
}
public void mousePressed(MouseEvent e)
{
}
public void mouseReleased(MouseEvent e)
{
x = Integer.parseInt(t1.getText());//获取文本框1里面的数字,文本框中都是字符串所以要用这个方法强转为整数
y = Integer.parseInt(t2.getText());
t3.setText("和为: " + (x + y));//对文本框3添加字符串
}
});
f.add(b1);
Button b2 = new Button("-");
b2.setBounds(130,240,30,20);
b2.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e)
{
}
public void mouseEntered(MouseEvent e)
{
}
public void mouseExited(MouseEvent e)
{
}
public void mousePressed(MouseEvent e)
{
}
public void mouseReleased(MouseEvent e)
{
x = Integer.parseInt(t1.getText());
y = Integer.parseInt(t2.getText());
t3.setText("差为: " + (x - y));
}
});
f.add(b2);
Button b3 = new Button("*");
b3.setBounds(170,240,30,20);
b3.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e)
{
}
public void mouseEntered(MouseEvent e)
{
}
public void mouseExited(MouseEvent e)
{
}
public void mousePressed(MouseEvent e)
{
}
public void mouseReleased(MouseEvent e)
{
x = Integer.parseInt(t1.getText());
y = Integer.parseInt(t2.getText());
t3.setText("积为: " + (x * y));
}
});
f.add(b3);
Button b4 = new Button("/");
b4.setBounds(210,240,30,20);
b4.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e)
{
}
public void mouseEntered(MouseEvent e)
{
}
public void mouseExited(MouseEvent e)
{
}
public void mousePressed(MouseEvent e)
{
}
public void mouseReleased(MouseEvent e)
{
x = Integer.parseInt(t1.getText());
y = Integer.parseInt(t2.getText());
if(y == 0)
{
t3.setText("除数不能为0");
}
else
{
t3.setText("商为: " + (x / y));
}
}
});
f.add(b4);
Button b5 = new Button("清空");
b5.setBounds(250,240,30,30);
b5.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e)
{
}
public void mouseEntered(MouseEvent e)
{
}
public void mouseExited(MouseEvent e)
{
}
public void mousePressed(MouseEvent e)
{
}
public void mouseReleased(MouseEvent e)
{
t1.setText("");
t2.setText("");
t3.setText("");
}
});
f.add(b5);
}
}