java11-GUI图形⽤户界⾯编程⼀、
⼆、
三、绝对布局
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class GuiDemo {
private JFrame f; // 窗体
private JTextField tf; // ⽂本框
private JButton btn1; // 按钮 1
private JButton btn2; // 按钮 2
private JButton btnAdd; // 按钮加号 +
private JButton btnEqual; // 按钮等于 =
private JButton btnClear; // 按钮清除
StringBuffer sb; // 定义⼀个变量,存储⽂本框⾥⾯的数值
Integer number1; // 加数
Integer number2; // 被加数
Integer sum; // 和
boolean b; // 运算符是否被点击
// 构造⽅法
GuiDemo() {
// 初始化原始数据
initData();
// 控件初始化
initUI();
}
private void initData() {
sb = new StringBuffer("");
number1 = 0;
number2 = 0;
sum = 0;
b = false;
}
private void initUI() {
f = new JFrame("计算器");
f.setSize(400, 200); // 设置窗⼝的宽⾼
f.setLocation(100, 100); // 设置窗⼝的起始点
/
/ f.setLayout(new FlowLayout()); // 会重新绘制⼤⼩
f.setResizable(false); // 设置窗⼝⼀旦创建好,不能在改变⼤⼩。
// f.setBackground(Color.BLUE);
// 关闭窗⼝的事件
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true); // 让窗⼝可见
// 在窗⼝上⾯增加⼀个⽂本框
tf = new JTextField();
tf.setBounds(20, 50, 360, 33);
tf.setText("0");
tf.setHorizontalAlignment(JTextField.RIGHT);
tf.setBackground(Color.WHITE);
f.add(tf);
// tf ⿏标事件
tfMouseEvent();
// 在窗⼝上⾯添加按钮
btn1 = new JButton("1");
btn1.setBounds(20, 100, 50, 33);
f.add(btn1);
btn2 = new JButton("2");
btn2.Bounds().x + 70, 100, 50, 33);
f.add(btn2);
btnAdd = new JButton("+");
btnAdd.Bounds().x + 70, 100, 50, 33);
f.add(btnAdd);
btnEqual = new JButton("=");
btnEqual.Bounds().x + 70, 100, 50, 33);
f.add(btnEqual);
btnClear = new JButton("C");
btnClear.Bounds().x + 70, 100, 50, 33);
f.add(btnClear);
// 按钮点击事件
btnEvent();
}
private void tfMouseEvent() {
tf.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
// TODO ⾃动⽣成的⽅法存根
System.out.println("mouseReleased");
}
@Override
public void mousePressed(MouseEvent e) {
/
/ TODO ⾃动⽣成的⽅法存根
System.out.println("mousePressed");
}
@Override
public void mouseExited(MouseEvent e) {
// TODO ⾃动⽣成的⽅法存根
System.out.println("mouseExited");
tf.setBackground(Color.white);
}
@Override
public void mouseEntered(MouseEvent e) {
/
/ TODO ⾃动⽣成的⽅法存根
System.out.println("mouseEntered");
tf.an);
}
@Override用java编写一个简单的计算器
public void mouseClicked(MouseEvent e) {
// TODO ⾃动⽣成的⽅法存根
System.out.println("mouseClicked");
}
});
}
private void btnEvent() {
btn1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO ⾃动⽣成的⽅法存根
if (b) {
sb = new StringBuffer("");
b = false;
}
sb.Text());
tf.String());
}
});
btn2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO ⾃动⽣成的⽅法存根
if (b) {
sb = new StringBuffer("");
b = false;
}
sb.Text());
tf.String());
}
});
btnAdd.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO ⾃动⽣成的⽅法存根
b = true;
number1 += new Text());
tf.String());
}
});
btnEqual.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO ⾃动⽣成的⽅法存根
b = false;
number2 = new Text());
sum = number1 + number2;
tf.String());
}
});
btnClear.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO ⾃动⽣成的⽅法存根
initData();
tf.setText("0");
}
});
}
public static void main(String[] args) {
// TODO ⾃动⽣成的⽅法存根
new GuiDemo();
}
}
四、作业
⾃⼰做⼀个计算器,实现加减乘除四则运算。
如果想增加难度,可以让计算器实现不同进制之间的计算与转换。