java基础计算器的一些代码
/** To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package 利用鼠标;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
/**
*
* @Author Administrator
*/
public class Adder {
JFrame frame;
JLabel label_num1,label_num2,label_result;
JTextField tf_num1,tf_num2,tf_result;
JButton bt1,bt2,bt3,bt4;
public Adder(){
frame=new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭按钮
frame.setSize(300,200); //设置尺寸
label_num1=new JLabel("num1");
tf_num1=new JTextField(20); //控制输入长度
label_num2=new JLabel("num2");
tf_num2=new JTextField(20);
label_result=new JLabel("result");
tf_result=new JTextField(20);
bt1=new JButton("+");
frame.setLayout(new FlowLayout());
Mylistener mylistener=new Mylistener();
bt1.addActionListener(mylistener); //在按钮上加一个监视器
bt2=new JButton("-");
Mylistener2mylistener2=new Mylistener2();
bt2.addActionListener(mylistener2);
bt3=new JButton("*");
Mylistener3 mylistener3=new Mylistener3();
bt3.addActionListener(mylistener3);
bt4=new JButton("/");
Mylistener4 mylistener4=new Mylistener4();
bt4.addActionListener(mylistener4);
frame.add(label_num1); //编写的时候必须按顺序与界面显示的顺序相对
frame.add(tf_num1);
frame.add(label_num2);
frame.add(tf_num2);
frame.add(label_result);
frame.add(tf_result);
frame.add(bt1);
frame.add(bt2);
frame.add(bt3);
frame.add(bt4);
frame.setVisible(true); //使界面可视
}
class Mylistener implements ActionListener{
public voidactionPerformed(ActionEvent e){
String num1=tf_num1.getText();
String num2=tf_num2.getText();
int n1=Integer.parseInt(num1); //字符串转换为整形
int n2=Integer.parseInt(num2);
int n=n1+n2;
tf_result.setText(n+" "); //整形转换为字符串()加空格
}
}
class Mylistener2 implements ActionListener{
public voidactionPerformed(ActionEvent e){
String num1=tf_num1.getText();
String num2=tf_num2.getText();
int n1=Integer.parseInt(num1); //字符串转换为整形
int n2=Integer.parseInt(num2);
int n=n1-n2;
tf_result.setText(n+" "); //整形转换为字符串()加空格
}
}
class Mylistener3 implements ActionListener{
public voidactionPerformed(ActionEvent e){
String num1=tf_num1.getText();
String num2=tf_num2.getText();
int n1=Integer.parseInt(num1); //字符串转换为整形
int n2=Integer.parseInt(num2);
int n=n1*n2;
tf_result.setText(n+" ");
//整形转换为字符串()加空格
}
}
class Mylistener4 implements ActionListener{
public voidactionPerformed(ActionEvent e){
String num1=tf_num1.getText();
String num2=tf_num2.getText();
int n1=Integer.parseInt(num1); //字符串转换为整形
int n2=Integer.parseInt(num2);
int n=n1/n2;
tf_result.setText(n+" "); //整形转换为字符串()加空格
}
}
public static void main(String args[]){
Adder add=new Adder();
}
}
谢谢,谢谢。 额,我改了double ,doublen2=Double.parseDouble(num2);
结果有偏差啊,是因为强制转换时丢失了吗 谢谢楼主分享
Re: java基础计算器的一些代码
楼主这个计算器界面写得挺清晰的,用了 Swing 组件做加减乘除,逻辑很直白,很适合新手练习。提几个小建议:多个监听器类可以合并成一个,用按钮的文本或其他方式判断执行哪种运算,代码会更简洁。另外输入数字时如果用户输入非数字会抛异常,可以考虑加个 try-catch 或者提示。整体思路很棒,继续加油!Re: java基础计算器的一些代码
不错,这是一个用Swing写的简单计算器,界面布局清晰,实现了加减乘除四种运算。代码里用了四个不同的监听器类来处理每个按钮,这种方式虽然直观,但会产生大量重复代码。可以考虑用一个监听器配合动作命令(比如设置按钮的ActionCommand)来区分运算,这样更精简。另外,输入框没有做异常处理,如果用户输入非数字会直接抛出异常,建议加上try-catch或者输入验证。整体结构很适合初学者理解事件监听和Swing组件的基本用法,继续加油!Re: java基础计算器的一些代码
看到你分享的基础计算器代码了,写得挺清晰的,用Swing做界面,实现了加、减、乘、除四个按钮的功能,对于刚学Java GUI的同学来说是个不错的练习。 几点小建议供你参考: - 四个运算的监听器类(Mylistener、Mylistener2 等)功能非常相似,可以合并成一个统一的监听器,通过判断事件源的按钮文本来决定执行哪种运算,这样代码会更简洁。 - 目前只支持整数运算,如果用户输入小数会报NumberFormatException,可以考虑改用Double.parseDouble来支持浮点数。 - 除法时需要注意除数为0的情况,可以加个判断,提示用户“除数不能为0”。 - 结果输出时,`tf_result.setText(n+" ");` 后面的空格可以去掉,直接转成字符串就行。 整体结构规整,继续加油,以后可以试试加入括号、优先级等功能,做成更完整的表达式计算器。
页:
[1]