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

📄 calculator.java

📁 简易计算器 用JFrame 功能很少适合初学者
💻 JAVA
字号:
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

public class Calculator extends JFrame { 

private Container container; 
private GridBagLayout layout; 
private GridBagConstraints constraints; 
private JTextField displayField;//计算结果显示区 
private String lastCommand;//保存+,-,*,/,=命令 
private double result;//保存计算结果 
private boolean start;//判断是否为数字的开始 

public Calculator() { 

super("Calculator"); 
container=getContentPane(); 
layout=new GridBagLayout(); 
container.setLayout(layout); 
constraints=new GridBagConstraints(); 
start=true; 
result=0; 
lastCommand = "="; 
displayField=new JTextField(20); 
displayField.setHorizontalAlignment(JTextField.RIGHT); 
constraints.gridx=0; 
constraints.gridy=0; 
constraints.gridwidth=4; 
constraints.gridheight=1; 
constraints.fill=GridBagConstraints.BOTH; 
constraints.weightx=100; 
constraints.weighty=100; 
layout.setConstraints(displayField,constraints); 
container.add(displayField); 
ActionListener insert = new InsertAction(); 
ActionListener command = new CommandAction(); 
addButton("Backspace",0,1,2,1,insert); 
addButton("CE",2,1,1,1,insert); 
addButton("C",3,1,1,1,insert); 
addButton("7",0,2,1,1,insert); 
addButton("8",1,2,1,1,insert); 
addButton("9",2,2,1,1,insert); 
addButton("/",3,2,1,1,command); 
addButton("4",0,3,1,1,insert); 
addButton("5",1,3,1,1,insert); 
addButton("6",2,3,1,1,insert); 
addButton("*",3,3,1,1,command); 
addButton("1",0,4,1,1,insert); 
addButton("2",1,4,1,1,insert); 
addButton("3",2,4,1,1,insert); 
addButton("-",3,4,1,1,command); 
addButton("0",0,5,1,1,insert); 
addButton("+/-",1,5,1,1,insert);//只显示"-"号,"+"没有实用价值 
addButton(".",2,5,1,1,insert); 
addButton("+",3,5,1,1,command); 
addButton("=",0,6,4,1,command); 
setSize(300,300); 
setVisible(true); 

} 


private void addButton(String label,int row,int column,int with,int height,ActionListener listener) { 

	JButton button=new JButton(label); 
	constraints.gridx=row; 
	constraints.gridy=column; 
	constraints.gridwidth=with; 
	constraints.gridheight=height; 
	constraints.fill=GridBagConstraints.BOTH; 
	button.addActionListener(listener); 
	layout.setConstraints(button,constraints); 
	container.add(button); 
} 


private class InsertAction implements ActionListener { 

	public void actionPerformed(ActionEvent event){
		String input=event.getActionCommand(); 
		if(start){ 
			displayField.setText(""); 
			start=false; 
			if(input.equals("+/-")) 
			displayField.setText(displayField.getText()+"-"); 
		} 

		if(!input.equals("+/-")) { 
			if(input.equals("Backspace")) { 
				String str=displayField.getText(); 
				if(str.length()>0) 
				displayField.setText(str.substring(0,str.length()-1)); 
			}
			else if(input.equals("CE")||input.equals("C")) { 
				displayField.setText("0"); 
				start=true; 
			}
			else 
				displayField.setText(displayField.getText()+input); 
		} 
	} 
} 


private class CommandAction implements ActionListener { 

	public void actionPerformed(ActionEvent evt) { 
		String command=evt.getActionCommand(); 
		if(start) { 
			lastCommand=command; 
		}
		else { 
			calculate(Double.parseDouble(displayField.getText())); 
			lastCommand=command; 
			start=true; 
		} 
	} 
} 

public void calculate(double x) { 
	if (lastCommand.equals("+")) result+= x; 
	else if (lastCommand.equals("-")) result-=x; 
	else if (lastCommand.equals("*")) result*=x; 
	else if (lastCommand.equals("/")) result/=x; 
	else if (lastCommand.equals("=")) result=x; 
	displayField.setText(""+ result); 
} 

public static void main(String []args) { 
	Calculator calculator=new Calculator(); 
	calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 

}

⌨️ 快捷键说明

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