用Java的布局和组件,并且设置监听器实现一个小的加法计算器

总结

  1. 要想实现一个带有界面的项目需要先继承Jframe,然后分析自己项目里面有多少个组件,创建相应的组件对象

  2. 创建一个初始化的构造器,先创建一个容器,然后为容器设置一种布局,最后把组建一个一个添加到相对应的位置

  3. 对于frame的一些设置可以在主函数中先设置好大小,是否可见

  4. 最后是实现监听器的功能,前提是先在构造器中注册,然后再去实现





public class MyComputer extends JFrame implements ActionListener {

	JButton jButton = new JButton("=");
	JTextField jTextField01 = new JTextField(5);
	JTextField jTextField02 = new JTextField(5);
	JTextField jTextField03 = new JTextField(5);
	
	JLabel jLabel = new JLabel("+");
	public MyComputer(){
		setTitle("加法计算器");
		//先创建一个容器后,在给容器设置一种布局,然后在布局里面设置的有五种布局的方式,常用的有三种
		Container cp = this.getContentPane();
		cp.setLayout(new FlowLayout());
		//在把所需要的组件一个一个添加到容器里面
		cp.add(jTextField01);
		cp.add(jLabel);
		cp.add(jTextField02);
		cp.add(jButton);
		cp.add(jTextField03);
		jTextField03.setEditable(false); //这个地方是给得出结果的文本框中设置一种不可编辑
		//然后是注册监听器,为谁设置监听器就用谁的名字
		jButton.addActionListener(this); 
	
	}
	
	
	/**
	 * 因为你做的是加法计算器,所以当你肯定需要得到前两个文本框里面的数据,这个时候你就需要自己定义两个数据类型来保存
	 *
	 */
	@Override
	public void actionPerformed(ActionEvent e) {
		
		//这部分你需要把一个字符串类型的数据转为double类型
		String s1 = jTextField01.getText();
		String s2 = jTextField02.getText();
		double x1 = Double.parseDouble(s1);
		double x2 = Double.parseDouble(s2);
		double y = x1 + x2;
		//最后再把double类型的数据转化为String类型的数据
		jTextField03.setText(String.valueOf(y));
	}
	
	public static void main(String[] args){
		MyComputer frame = new MyComputer();
		frame.setSize(300,200);
		frame.setVisible(true);
		frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
	}

}

java编写的计算器,能实现加减乘除。 //***该梦幻计算器与Windows附件自带计算器的标准版功能、界面相仿***// //******但还不支持键盘操作,如有需要,下一次等级将满足你**********// import java.awt.*; import java.lang.*; import javax.swing.*; import javax.swing.event.*; import java.awt.event.*; import java.awt.Component.*; import java.awt.color.*; import java.text.DecimalFormat; //*****************************************************************************// //*****************************************************************************// public class Calculator implements ActionListener //导入动作监听接口 { //******************************// //*****设计计算器界面的单位*****// JFrame frame; //定义框架 JTextField textAnswer; //定义输出显示框 JPanel panel, panel1, panel2, panel3;//定义面板作为子容器,从而达到要求的界面效果 JMenuBar mainMenu; JTextField textMemory; JLabel labelMemSpace; //labelMemSpace单纯做摆设,控制面板的形状 JButton buttonBk, buttonCe, buttonC; JButton button[]; JButton buttonMC, buttonMR, buttonMS, buttonMAdd; JButton buttonDot, buttonAddAndSub, buttonAdd, buttonSub, buttonMul,buttonDiv, buttonMod; JButton buttonSqrt, buttonDao, buttonEqual; JMenu editMenu, viewMenu, helpMenu; JMenuItem copyItem, pasteItem, tItem, sItem, numberGroup, topHelp, aboutCal,myCollege; DecimalFormat df; //设置数据输出精度 boolean clickable; //控制当前能否按键 double memoryd; //使用内存中存储的数字 int memoryi; double vard, answerd; //用来保存double型数据的中间值(vard)和最后结果(answerd) short key = -1, prekey = -1; //key用来保存当前进行何种运算,prekey用来保存前次进行何种运算 boolean clear = false; String copy; //做复制用 JTextArea help; //帮助 JScrollPane scrollHelp; static boolean One =true; //******************// //*****构造函数开始*****// public Calculator() { clickable = true; answerd = 0; frame = new JFrame("梦幻计算器--SWE08008"); frame.setResizable(false);//不允许改变计算器的大小 frame.setLocation(250,150);//设置计算器的起始位置 frame.setBackground(Color.YELLOW); df = new DecimalFormat("0.##############"); //设置数据输出精度(对于double型值)
可以使用Java中的Swing框架和GridLayout布局实现简易加法计算器。 以下是示例代码: ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Calculator extends JFrame implements ActionListener { private static final long serialVersionUID = 1L; private JTextField textField1, textField2, textField3; private JButton buttonAdd, buttonClear; public Calculator() { // 设置窗口标题 setTitle("简易加法计算器"); // 设置窗口大小 setSize(300, 150); // 创建组件 textField1 = new JTextField(10); textField2 = new JTextField(10); textField3 = new JTextField(10); buttonAdd = new JButton("计算"); buttonClear = new JButton("清空"); // 添加事件监听器 buttonAdd.addActionListener(this); buttonClear.addActionListener(this); // 创建面板并设置布局 JPanel panel = new JPanel(); panel.setLayout(new GridLayout(4, 2)); // 添加组件到面板 panel.add(new JLabel("数字1:")); panel.add(textField1); panel.add(new JLabel("数字2:")); panel.add(textField2); panel.add(new JLabel("结果:")); panel.add(textField3); panel.add(buttonAdd); panel.add(buttonClear); // 添加面板到窗口 add(panel); // 设置窗口可见 setVisible(true); } // 事件处理方法 public void actionPerformed(ActionEvent e) { if (e.getSource() == buttonAdd) { // 获取输入的数字 int num1 = Integer.parseInt(textField1.getText()); int num2 = Integer.parseInt(textField2.getText()); // 计算结果并显示 textField3.setText(Integer.toString(num1 + num2)); } else if (e.getSource() == buttonClear) { // 清空输入框 textField1.setText(""); textField2.setText(""); textField3.setText(""); } } public static void main(String[] args) { new Calculator(); } } ``` 运行程序后,会显示一个简易加法计算器窗口,用户可以输入两个数字,点击“计算”按钮进行计算,点击“清空”按钮清空输入框和结果框。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值