案例2:JAVA GUI 简易计算器
使用javaGUI实现计算器的基本功能,包含一个帮助说明页面,提示用户如何使用。包含一个计算器主界面,要实现基本的加法、减法、乘法、除法运算。
1.帮助界面

Help.java
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.*;
import javax.swing.*;
//计算器的实现
public class Help extends JFrame {
JButton btnOK = new JButton("我知道了,开始使用");
public Help() {
super("使用说明");
JLabel lab1 = new JLabel("1.输入第一个操作数");
JLabel lab2= new JLabel("2.选择一个运算符号");
JLabel lab3 = new JLabel("3.输入第二个操作数");
JLabel lab4 = new JLabel("4.点击【计算】按钮进行计算");
JLabel lab5 = new JLabel("5.点击【计算】按钮进行计算");
JLabel lab6 = new JLabel("6.点击【计算】按钮进行计算");
lab1.setBounds(10, 10, 300, 25);
lab2.setBounds(10, 35, 300, 25);
lab3.setBounds(10, 60, 300, 25);
lab4.setBounds(10, 85, 300, 25);
lab5.setBounds(10, 110, 300, 25);
lab6.setBounds(10, 135, 300, 25);
btnOK.setBounds(30, 160, 200, 25);
btnOK.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ee) {
Calculator c = new Calculator();
c.CenterPanel();
}
});
JPanel p = new JPanel();
p.setLayout(null);
p.add(lab1);
p.add(lab2);
p.add(lab3);
p.add(lab4);
p.add(lab5);
p.add(lab6);
p.add(btnOK);
getContentPane().add(p);
setSize(380, 250);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
Help s = new Help();
s.CenterPanel();
}
public void CenterPanel() {
int width = Toolkit.getDefaultToolkit().getScreenSize().width;
int height = Toolkit.getDefaultToolkit().getScreenSize().height;
this.setLocation(width / 2, height / 4);
}
//判断字符串是不是数字
public static boolean isNumeric(String str){
for (int i = str.length();--i>=0;){
if (!Character.isDigit(str.charAt(i))){
return false;
}
}
return true;
}
}
2.计算界面

Calculator.java
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.*;
import javax.swing.*;
//计算器的实现
public class Calculator extends JFrame {
JTextField txtNum1 = new JTextField();
JTextField txtNum2 = new JTextField();
JTextField txtResult = new JTextField();
JButton btnCalcul = new JButton("计算");
JButton btnClear = new JButton("清屏");
JButton btnExit = new JButton("退出");
public Calculator() {
super("计算器");
JLabel lab1 = new JLabel("请输入操作数1:");
JLabel lab2= new JLabel("请选择运算符:");
JLabel lab3 = new JLabel("请输入操作数2:");
final JRadioButton radioButton1=new JRadioButton("加");
final JRadioButton radioButton2=new JRadioButton("减");
final JRadioButton radioButton3=new JRadioButton("乘");
final JRadioButton radioButton4=new JRadioButton("除");
ButtonGroup bg=new ButtonGroup();
bg.add(radioButton1);
bg.add(radioButton2);
bg.add(radioButton3);
bg.add(radioButton4);
JPanel jp1=new JPanel(new GridLayout(1,4));
jp1.add(radioButton1);
jp1.add(radioButton2);
jp1.add(radioButton3);
jp1.add(radioButton4);
JLabel lab4= new JLabel("计算结果:");
lab1.setBounds(10, 10, 100, 25);
lab2.setBounds(10, 40, 100, 25);
lab3.setBounds(10, 70, 100, 25);
lab4.setBounds(10, 100, 100, 25);
txtNum1.setBounds(110, 10, 200, 25);
jp1.setBounds(110, 40, 200, 25);
txtNum2.setBounds(110, 70, 200, 25);
txtResult.setBounds(110, 100, 200, 25);
btnCalcul.setBounds(30, 130, 90, 25);
btnClear.setBounds(130, 130, 90, 25);
btnExit.setBounds(230, 130, 90, 25);
//计算
btnCalcul.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ee) {
String num1=txtNum1.getText().trim();
String num2=txtNum2.getText().trim();
String Result="";
if (!isNumeric(num1)){
JOptionPane.showMessageDialog(null, "操作数1只允许为数字");
return;
}
if (!isNumeric(num2))
{
JOptionPane.showMessageDialog(null, "操作数2只允许为数字");
return;
}
if(radioButton1.isSelected()){
Result=num1+" + "+num2+" = "+(Integer.parseInt(num1)+Integer.parseInt(num2));
}
if(radioButton2.isSelected()){
Result=num1+" - "+num2+" = "+(Integer.parseInt(num1)-Integer.parseInt(num2));
}
if(radioButton3.isSelected()){
Result=num1+" * "+num2+" = "+(Integer.parseInt(num1)*Integer.parseInt(num2));
}
if(radioButton4.isSelected()){
Result=num1+" / "+num2+" = "+(Integer.parseInt(num1)/Integer.parseInt(num2));
}
txtResult.setText(Result);
}
});
//清屏
btnClear.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ee) {
txtNum1.setText("");
txtNum2.setText("");
txtResult.setText("");
}
});
//退出程序
btnExit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ee) {
System.exit(0);
}
});
JPanel p = new JPanel();
p.setLayout(null);
p.add(lab1);
p.add(lab2);
p.add(lab3);
p.add(lab4);
p.add(txtNum1);
p.add(txtNum2);
p.add(jp1);
p.add(txtResult);
p.add(btnCalcul);
p.add(btnClear);
p.add(btnExit);
getContentPane().add(p);
setSize(380, 250);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
Calculator s = new Calculator();
s.CenterPanel();
}
public void CenterPanel() {
int width = Toolkit.getDefaultToolkit().getScreenSize().width;
int height = Toolkit.getDefaultToolkit().getScreenSize().height;
this.setLocation(width / 2, height / 4);
}
//判断字符串是不是数字
public static boolean isNumeric(String str){
for (int i = str.length();--i>=0;){
if (!Character.isDigit(str.charAt(i))){
return false;
}
}
return true;
}
}

浙公网安备 33010602011771号