⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 contentpane.java

📁 一个简易计算器
💻 JAVA
字号:
/*
 * 创建日期 2006-9-10
 *
 * TODO 要更改此生成的文件的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
package calculator;

import java.awt.AWTEvent;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.AWTEventListener;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.*;

import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JLabel;

/**
 * @author 周泼 200432580024
 *
 * TODO 要更改此生成的类型注释的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
public class ContentPane extends JPanel {
	
	private JTextField input;
	private JTextField output;
	private JButton confirm;
	private JButton clear;
	private JButton one;
	private JButton two;
	private JButton three;
	private JButton four;
	private JButton five;
	private JButton six;
	private JButton seven;
	private JButton eight;
	private JButton nine;
	private JButton zero;
	private JButton point;
	private JButton multiply;
	private JButton divide;
	private JButton add;
	private JButton subtract;
	private JButton leftBr;
	private JButton rightBr;
	
	public ContentPane(){
		
		// 获取缺省工具箱
		Toolkit toolkit = Toolkit.getDefaultToolkit();
		toolkit.addAWTEventListener(new enterAction(), AWTEvent.KEY_EVENT_MASK);
		
		// 输入与输出部分
		JPanel top_Panel = new JPanel(new GridLayout(3,1));
		
		// 定义并初始化 intput_Label
		JLabel input_Label = new JLabel("输入四则运算式:");
		input_Label.setForeground(new Color(47, 33, 222));
		input_Label.setFont(new Font("楷体_GB2312",Font.BOLD,13));
		top_Panel.add(input_Label);
		
		// 初始化 input
		input = new JTextField();
		
		JPanel output_Panel = new JPanel(new BorderLayout());
		
		// 定义并初始化 output_Label
		JLabel output_Label = new JLabel("运算结果:");
		output_Label.setFont(new Font("华文中宋", Font.BOLD, 13));
		output_Label.setForeground(new Color(202, 119, 79));
		
		// 初始化 output
		output = new JTextField();
		output.setEditable(false);
		output.setForeground(new Color(250, 22, 148));
		
		output_Panel.add(output_Label,BorderLayout.WEST);
		output_Panel.add(output, BorderLayout.CENTER);
		
		top_Panel.add(input_Label);
		top_Panel.add(input);
		top_Panel.add(output_Panel);
		
		// 按钮部分
		
		confirm = new JButton("确定");
		confirm.setForeground(new Color(117, 0, 117));
		confirm.setFont(new Font("黑体", Font.BOLD, 12));
		confirm.setName("Confirm");
		confirm.addActionListener(new confirmListener());	// 添加鼠标监听
		
		clear = new JButton("清除");
		clear.setName("Divide");
		clear.addActionListener(new clearListener());
		
		// 实例化各个 JButton ,并分别设置名字
		one = new JButton("1");
		one.setName("1");
		two = new JButton("2");
		two.setName("2");
		three = new JButton("3");
		three.setName("3");
		four = new JButton("4");
		four.setName("4");
		five = new JButton("5");
		five.setName("5");
		six = new JButton("6");
		six.setName("6");
		seven = new JButton("7");
		seven.setName("7");
		eight = new JButton("8");
		eight.setName("8");
		nine = new JButton("9");
		nine.setName("9");
		zero = new JButton("0");
		zero.setName("0");
		point = new JButton(".");
		point.setName("10");
		add = new JButton("+");
		add.setName("11");
		subtract = new JButton("-");
		subtract.setName("12");
		multiply = new JButton("*");
		multiply.setName("13");
		divide = new JButton("/");
		divide.setName("14");
		leftBr = new JButton("(");
		leftBr.setName("15");
		rightBr = new JButton(")");
		rightBr.setName("16");
		
		// 为各个 JButton 添加监听 
		one.addActionListener(new action());
		two.addActionListener(new action());
		three.addActionListener(new action());
		four.addActionListener(new action());
		five.addActionListener(new action());
		six.addActionListener(new action());
		seven.addActionListener(new action());
		eight.addActionListener(new action());
		nine.addActionListener(new action());
		zero.addActionListener(new action());
		point.addActionListener(new action());
		multiply.addActionListener(new action());
		divide.addActionListener(new action());
		add.addActionListener(new action());
		subtract.addActionListener(new action());
		leftBr.addActionListener(new action());
		rightBr.addActionListener(new action());
		
		JPanel button_Panel = new JPanel(new GridLayout(4, 5));

		button_Panel.add(one);
		button_Panel.add(two);
		button_Panel.add(three);
		button_Panel.add(four);
		button_Panel.add(five);
		button_Panel.add(six);
		button_Panel.add(seven);
		button_Panel.add(eight);
		button_Panel.add(nine);
		button_Panel.add(zero);
		button_Panel.add(point);
		button_Panel.add(add);
		button_Panel.add(subtract);
		button_Panel.add(multiply);
		button_Panel.add(divide);
		button_Panel.add(leftBr);
		button_Panel.add(rightBr);
		button_Panel.add(clear);
		button_Panel.add(confirm);
		
		// 作者
		JLabel author = new JLabel("                                       光明使者");
		author.setFont(new Font("华文彩云", Font.ITALIC, 13));
		
		// 合并	Panel
		 
		setLayout(new BorderLayout());
		add(top_Panel, BorderLayout.NORTH);
		add(button_Panel,BorderLayout.CENTER);
		add(author,BorderLayout.SOUTH);
	}
	
	public class confirmListener  implements ActionListener {
		public void actionPerformed (ActionEvent e){
			
			// 从输入文本框中获取文本
			String input_String = input.getText();
			 
			if(input_String.length() == 0){	// 输入文本框为空时
				output.setText("请输入表达式!");
			}else{
				// 将结果显示到输出文本框
				output.setText(new Calculate(input_String).getResult());
			}
		} 
	}
	
	// 清除按钮的监听
	public class clearListener implements ActionListener	{
		public void actionPerformed (ActionEvent e){
			input.setText("");
		}
	}
	
	//	实现接收动作事件的监听者接口
	public class action implements ActionListener{
		
		public void actionPerformed(ActionEvent e)	{
			
			String inputStr = input.getText();
			
			// 获取发生动作事件的按钮
			JButton button = (JButton)e.getSource();
			// 获取该按钮的名字
			int buttonName = Integer.parseInt(button.getName());
			 
			switch(buttonName){
			case 1:inputStr += "1";break;
			case 2:inputStr += "2";break;
			case 3:inputStr += "3";break;
			case 4:inputStr += "4";break;
			case 5:inputStr += "5";break;
			case 6:inputStr += "6";break;
			case 7:inputStr += "7";break;
			case 8:inputStr += "8";break;
			case 9:inputStr += "9";break;
			case 0:inputStr += "0";break;
			case 11:inputStr += "+";break;
			case 12:inputStr += "-";break;
			case 13:inputStr += "*";break;
			case 14:inputStr += "/";break;
			case 10:inputStr += ".";break;
			case 15:inputStr += "(";break;
			case 16:inputStr += ")";break;
			default:break;
			}
			
			input.setText(inputStr);
			
		}
	}
	
	// 快捷监听
	public class enterAction implements AWTEventListener{
		
		public void eventDispatched(AWTEvent event){
			
			int kc = ((KeyEvent)event).getKeyCode();
			
			if(kc == KeyEvent.VK_ENTER)	// 按下回车键
			{
				// 从输入文本框中获取文本
				String input_String = input.getText();
				 
				if(input_String.length() == 0){	// 输入文本框为空时
					output.setText("请输入表达式!");
				}else{
					// 将结果显示到输出文本框
					output.setText(new Calculate(input_String).getResult());
				}
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -