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

📄 654.txt

📁 import java.awt.* import java.awt.event.* import javax.swing.*
💻 TXT
字号:
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

public class Calculator 
{ 
public static void main(String[] args) 
{ 
CalculatorFrame frame=new CalculatorFrame(); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
frame.setVisible(true); 
} 
} 

class CalculatorFrame extends JFrame 
{ 
public CalculatorFrame() 
{ 
setTitle("Calculator"); 
CalculatorPanel panel=new CalculatorPanel(); 
add(panel); 
pack(); 
} 
} 

class CalculatorPanel extends Panel 
{ 
public CalculatorPanel() 
{ 
setLayout(new BorderLayout()); 

result=0; 
lastCommand="="; 
start=true; 
flag=true; 

display=new JButton("0"); 
display.setEnabled(false); 
add(display,BorderLayout.NORTH); 

ActionListener insert=new InsertAction(); 
ActionListener command=new CommandAction(); 

panel=new JPanel(); 
panel.setLayout(new GridLayout(4,5)); 

addButton("7",insert); 
addButton("8",insert); 
addButton("9",insert); 
addButton("/",command); 
addButton("CE",command); 

addButton("4",insert); 
addButton("5",insert); 
addButton("6",insert); 
addButton("*",command); 
addButton("Backspace",command); 

addButton("1",insert); 
addButton("2",insert); 
addButton("3",insert); 
addButton("-",command); 
addButton("sqrt",command); 

addButton("0",insert); 
addButton(".",insert); 
addButton("=",command); 
addButton("+",command); 
addButton("1/x",command); 

add(panel,BorderLayout.CENTER); 
} 
private void addButton(String label,ActionListener listener) 
{ 
JButton button=new JButton(label); 
button.addActionListener(listener); 
panel.add(button); 
} 
private class InsertAction implements ActionListener 
{ 
public void actionPerformed(ActionEvent event) 
{ 
String input=event.getActionCommand(); 
if(start&&flag) 
{ 
display.setText(""); 
start=false; 
} 
if(flag) 
display.setText(display.getText()+input); 
} 
} 
private class CommandAction implements ActionListener 
{ 
public void actionPerformed(ActionEvent event) 
{ 
String command=event.getActionCommand(); 

if(command.equals("CE")) 
{ 
display.setText("0"); 
start=true; 
flag=true; 
command="="; 
} 
else 
if(start&&flag) 
{ 
if(command.equals("-")) 
{ 
display.setText(command); 
start=false; 
} 
else 
if((command.equals("1/x")||command.equals("sqrt"))&&flag) 
calculate(Double.parseDouble(display.getText()),command); 
else 
if(flag) 
lastCommand=command; 
} 
else 
{ 
if(command.equals("Backspace")&&flag) 
{ 
String s=display.getText(); 
char[] s1=s.toCharArray(); 
if(s.length()>=2) 
{ 
String s2=new String(s1,0,s.length()-1); 
display.setText(s2); 
} 
else 
{ 
display.setText("0"); 
start=true; 
} 

} 
else if(flag) 
{ 
calculate(Double.parseDouble(display.getText()),command); 

lastCommand=command; 
start=true; 
} 
} 
} 
} 

public void calculate(double x,String command) 
{ 
if(lastCommand.equals("+")) result+=x; 
else if(lastCommand.equals("-")) result-=x; 
else if(lastCommand.equals("/")) 
{ 
if(x!=0) 
result/=x; 
else 
{ 
display.setText("除数不能为0"); 
start=false; 
flag=false; 
return; 
} 
} 
else if(lastCommand.equals("*")) result*=x; 
else if(command.equals("1/x")) 
{ 
if(x!=0) 
result=1/x; 
else 
{ 
display.setText("除数不能为0"); 
start=false; 
flag=false; 
return; 
} 

} 
else if(command.equals("sqrt")) 
{ 
if(x>=0) 
result=Math.sqrt(x); 
else 
{ 
display.setText("函数输入无效"); 
start=false; 
flag=false; 
return; 
} 
} 
else if(lastCommand.equals("=")) result=x; 

display.setText(""+result); 
} 
private JButton display; 
private JPanel panel; 
private double result; 
private String lastCommand; 
private boolean start; 
private boolean flag; 
}

⌨️ 快捷键说明

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