ItemEvent事件,简单计算器

Example10.java文件:

public class Example10 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		WindowOperation win = new WindowOperation();
		win.setBounds(100,100,390,360);
		win.setTitle("简单计算器");
	}

}
WindowOperation.java文件:

import java.awt.*;

import javax.swing.*;


public class WindowOperation extends JFrame{
	JTextField inputNumber1,inputNumber2;
	JComboBox choiceFuhao;
	JTextArea textShow;
	JButton button;
	OperatorListener operator;//监视ItemEvent事件的监视器
	ComputerListener computer;//监视ActionEvent事件的监视器
	public WindowOperation(){
		init();
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	void init() {
		// TODO Auto-generated method stub
		setLayout(new FlowLayout());
		inputNumber1 = new JTextField(5);
		inputNumber2 = new JTextField(5);
		choiceFuhao = new JComboBox();
		button = new JButton("计算");
		choiceFuhao.addItem("选择运算符号:");
		String[]a = {"+","-","*","/"};
		for(int i = 0;i < a.length;i++)
			choiceFuhao.addItem(a[i]);
		textShow = new JTextArea(9,30);
		operator = new OperatorListener();
		computer = new ComputerListener();
		operator.setJComboBox(choiceFuhao);
		operator.setWorkTogether(computer);
		computer.setJTextField1(inputNumber1);
		computer.setJTextField2(inputNumber2);
		computer.setJTextArea(textShow);
		choiceFuhao.addItemListener(operator);
		button.addActionListener(computer);
		add(inputNumber1);
		add(choiceFuhao);
		add(inputNumber2);
		add(button);
		add(new JScrollPane(textShow));
	}
}
OperatorListener.java文件:

import java.awt.event.*;

import javax.swing.*;


public class OperatorListener implements ItemListener{
	JComboBox choice;
	ComputerListener workTogether;
	public void setJComboBox(JComboBox box){
		choice = box;
	}
	public void setWorkTogether(ComputerListener computer){
		workTogether = computer;
	}
	public void itemStateChanged(ItemEvent e){
		String fuhao = choice.getSelectedItem().toString();
		workTogether.setFuhao(fuhao);
	}
}
ComputerListener.java文件:

import java.awt.event.*;

import javax.swing.*;


public class ComputerListener implements ActionListener{
	JTextField inputNumber1,inputNumber2;
	JTextArea textShow;
	String fuhao;
	public void setJTextField1(JTextField t){
		inputNumber1 = t;
	}
	public void setJTextField2(JTextField t){
		inputNumber2 = t;
	}
	public void setJTextArea(JTextArea area){
		textShow = area;
	}
	public void setFuhao(String s){
		fuhao = s;
	}
	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		try{
			double number1 = Double.parseDouble(inputNumber1.getText());
			double number2 = Double.parseDouble(inputNumber2.getText());
			double result = 0;
			if(fuhao.equals("+")){
				result = number1 + number2;
			}
			else if(fuhao.equals("-")){
				result = number1 - number2;
			}
			else if(fuhao.equals("*")){
				result = number1*number2;
			}
			else if(fuhao.equals("/")){
				result = number1/number2;
			}
			textShow.append(number1+" "+fuhao+" "+number2+"="+result+"\n");
		}
		catch(Exception exp){
			textShow.append("\n请输入数字字符\n");
		}
	}
}
效果图:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值