实现一个Java Application图形界面程序,能够实现两数相减、相除的功能,具体要求:
(1)在两个文本框里分别输入两个数字,单击“求和”、“求乘”按钮,则在第三个文本框里显示运算结果;(2)当输入的不是数字或者除数为0时,要求用消息对话框向用户报错;(3)...
(1) 在两个文本框里分别输入两个数字,单击“求和”、“求乘”按钮,则在第三个文本框里显示运算结果;
(2) 当输入的不是数字或者除数为0时,要求用消息对话框向用户报错;
(3) 单击窗口右上角的“X”按钮,即关闭窗口退出 展开
(2) 当输入的不是数字或者除数为0时,要求用消息对话框向用户报错;
(3) 单击窗口右上角的“X”按钮,即关闭窗口退出 展开
展开全部
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;
}
}
追问
我想问你的相减,相除呢
追答
不想告诉你,到这步了你都懒得自己动一下吗?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询