实现一个Java Application图形界面程序,能够实现两数相减、相除的功能,具体要求:

(1)在两个文本框里分别输入两个数字,单击“求和”、“求乘”按钮,则在第三个文本框里显示运算结果;(2)当输入的不是数字或者除数为0时,要求用消息对话框向用户报错;(3)... (1) 在两个文本框里分别输入两个数字,单击“求和”、“求乘”按钮,则在第三个文本框里显示运算结果;
(2) 当输入的不是数字或者除数为0时,要求用消息对话框向用户报错;
(3) 单击窗口右上角的“X”按钮,即关闭窗口退出
展开
 我来答
btboy1978
2016-12-20 · TA获得超过2015个赞
知道大有可为答主
回答量:2950
采纳率:57%
帮助的人:960万
展开全部
package demo.com;

import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class NumTest {

private JFrame frame;
private JTextField num1;
private JTextField num2;
private JTextField sum;

/**
 * Launch the application.
 */
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
NumTest window = new NumTest();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
 * Create the application.
 */
public NumTest() {
initialize();
}

/**
 * Initialize the contents of the frame.
 */
private void initialize() {
frame = new JFrame();
frame.setTitle("数学计算");
frame.setBounds(100, 100, 298, 177);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);

num1 = new JTextField();
num1.setBounds(10, 37, 120, 21);
frame.getContentPane().add(num1);
num1.setColumns(10);

num2 = new JTextField();
num2.setBounds(152, 37, 120, 21);
frame.getContentPane().add(num2);
num2.setColumns(10);

JLabel lblNewLabel = new JLabel("请输入两个数字");
lblNewLabel.setBounds(10, 12, 100, 15);
frame.getContentPane().add(lblNewLabel);

JButton btn1 = new JButton("相加");
btn1.setBounds(10, 68, 120, 23);
btn1.addActionListener(listener);
frame.getContentPane().add(btn1);

JButton btn2 = new JButton("相乘");
btn2.setBounds(152, 68, 120, 23);
btn2.addActionListener(listener);
frame.getContentPane().add(btn2);

JLabel label = new JLabel("结果:");
label.setBounds(42, 104, 42, 15);
frame.getContentPane().add(label);

sum = new JTextField();
sum.setBounds(115, 101, 140, 21);
frame.getContentPane().add(sum);
sum.setColumns(10);
}

ActionListener listener = new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
String numstr1 = num1.getText().trim();
String numstr2 = num2.getText().trim();
if (!isNumeric(numstr1)) {
JOptionPane.showMessageDialog(frame.getContentPane(), "第一个数字输入不规范!", "系统信息", JOptionPane.ERROR_MESSAGE);
num1.setText("");
return;
}

if (!isNumeric(numstr2)) {
JOptionPane.showMessageDialog(frame.getContentPane(), "第二个数字输入不规范!", "系统信息", JOptionPane.ERROR_MESSAGE);
num2.setText("");
return;
}
float f1 = Float.parseFloat(numstr1);
float f2 = Float.parseFloat(numstr2);
switch (e.getActionCommand()) {
case "相乘":

sum.setText(f1 * f2 + "");
break;
case "相加":
sum.setText(f1 + f2 + "");
break;

default:
break;
}

}
};

public boolean isNumeric(String str) {
Pattern pattern = Pattern.compile("-?[0-9]+.?[0-9]+");
Matcher isNum = pattern.matcher(str);
if (!isNum.matches()) {
return false;
}
return true;
}
}
追问
我想问你的相减,相除呢
追答
不想告诉你,到这步了你都懒得自己动一下吗?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式