个人版java计算器
来源:互联网 发布:淘宝上有什么好的书店 编辑:程序博客网 时间:2024/05/06 12:31
/*java simple calculator
*writer:黑柠檬
*time:2011年9月
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calcul extends JFrame implements ActionListener{
//创建输入框
private static JTextArea calText = new JTextArea(1,50);
private static int mine=0;
private static double num=1.0;
Calcul(){
JMenuBar menuBar=new JMenuBar();
JMenu menu=new JMenu("帮助");
setMenu(menu);
menuBar.add(menu);
setJMenuBar(menuBar);
setTitle("calculator");
setBounds(200,100,500,400);
//创建主面板
JPanel panelMain =new JPanel();
//字体的设置
Font font =new Font("宋体",NORMAL,25);
panelMain.setLayout(new GridLayout(4,4));
String sign []={"7","8","9","+","4","5","6","-","1","2","3","*","0",".","=","/",};
//创建button
JButton button1 []= new JButton [16];
for(int i=0;i<16;i++){
button1[i]=new JButton(sign[i]);
button1[i].setFont(font);
panelMain.add(button1[i]);
}
//侧面板1
JPanel panelWest=new JPanel();
panelWest.setLayout(new GridLayout(4,2));
String name1 []={"cos","tan","sin","cot","ln","√","⊥","@"};
JButton button2 []=new JButton[8];
for(int i=0;i<8;i++){
button2[i]=new JButton(name1[i]);
button2[i].setFont(font);
panelWest.add(button2[i]);
}
//侧面板2
JPanel panelEast =new JPanel();
panelEast.setLayout(new GridLayout(2,1));
String name2 []={"清空","退出"};
JButton button3 []=new JButton[2];
for(int i=0;i<2;i++){
button3[i]=new JButton(name2[i]);
button3[i].setFont(font);
panelEast.add(button3[i]);
}
button3[0].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
calText.setText("");
}
});
button3[1].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
//添加输入框和按钮
calText.setFont(font);
add(calText,BorderLayout.NORTH);
add(panelWest,BorderLayout.WEST);
add(panelMain,BorderLayout.CENTER);
add(panelEast,BorderLayout.EAST);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setButton1(button1);
setButton2(button2);
}
public void setMenu(JMenu menu){
String str[]={"操作","关于"};
final JMenuItem item0=new JMenuItem(str[0]);
final JMenuItem item1=new JMenuItem(str[1]);
menu.add(item0);
menu.add(item1);
item0.addActionListener(this);
item1.addActionListener(this);
}
public void actionPerformed(ActionEvent a) {
String action =a.getActionCommand();
if(a.getSource() instanceof JMenuItem){
if(action=="操作"){
JFrame frame=new JFrame();
frame.setBounds(100,200,200,200);
JLabel label=new JLabel("操作这个,自己体会吧!");
frame.add(label);
frame.setVisible(true);
} else{
JFrame frame=new JFrame();
frame.setBounds(100,200,200,200);
JLabel label=new JLabel("作者:黑柠檬");
frame.add(label);
frame.setVisible(true);
}
}
}
public void setButton1(JButton [] button){
//给button添加监听器
for(int i=0;i<16;i++){
//首先的到button的名字
final String cal=button[i].getActionCommand();
//给button注册监听
button[i].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
//输入数字时显示在JtextArea否则不显示
if(!cal.equals("+")&&!cal.equals("-")&&!cal.equals("*")&&!cal.equals("/")&&!cal.equals("=")){
if(calText.getText().equals("")){
calText.setText(cal);
}else{
calText.append(cal);
}
} else if(cal.equals("+")){
mine=1;
num=Double.parseDouble(calText.getText());
calText.setText("");
} else if(cal.equals("-")){
mine=2;
num=Double.parseDouble(calText.getText());
calText.setText("");
} else if(cal.equals("*")){
mine=3;
num=Double.parseDouble(calText.getText());
calText.setText("");
} else if(cal.equals("/")){
mine=4;
num=Double.parseDouble(calText.getText());
calText.setText("");
} else{
if(mine==1){
num+=Double.parseDouble(calText.getText());
}else if(mine==2){
num-=Double.parseDouble(calText.getText());
}else if(mine==3){
num*=Double.parseDouble(calText.getText());
}else{
num/=Double.parseDouble(calText.getText());
}
calText.setText(""+num);
}
}
});
}
}
public void setButton2(JButton [] button){
//给button添加监听器
for(int i=0;i<8;i++){
//首先的到button的名字
final String cal=button[i].getActionCommand();
//给button注册监听
button[i].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
//输入数字时显示在JtextArea否则不显示
if(cal.equals("cos")){
num=Double.parseDouble(calText.getText());
num=num/57.3;
calText.setText(""+Math.cos(num));
} else if(cal.equals("sin")){
num=Double.parseDouble(calText.getText());
num=num/57.3;
calText.setText(""+Math.sin(num));
} else if(cal.equals("ln")){
num=Double.parseDouble(calText.getText());
calText.setText(""+Math.log(num));
} else if(cal.equals("tan")){
num=Double.parseDouble(calText.getText());
num=num/57.3;
calText.setText(""+Math.tan(num));
} else if(cal.equals("cot")){
num=Double.parseDouble(calText.getText());
num=1/Math.tan(num);
calText.setText(""+num);
} else if(cal.equals("√")){
num=Double.parseDouble(calText.getText());
calText.setText(""+Math.sqrt(num));
} else if(cal.equals("⊥")){
num=Double.parseDouble(calText.getText());
calText.setText(""+1/num);
} else{
JOptionPane.showMessageDialog( null,"不好意思,功能扩展中");
}
}
});
}
}
public static void main(String[] args) {
new Calcul();
}
}
- 个人版java计算器
- java基础(个人版)
- 个人版
- [J2SE]java音乐播放器个人版
- java计算器
- Java计算器
- 计算器java
- java计算器
- java计算器
- Java计算器
- 计算器(JAVA)
- 计算器 java
- 计算器 java
- java计算器..
- java计算器
- java 计算器
- Java 计算器
- java计算器
- .ui文件转换成.py文件
- 平时积累的PHP技巧
- Using Android in Industrial Automation
- ENQUEUE_<锁对象名> & DEQUEUE_<锁对象名>
- 转 ffmpeg-0.8 开源编码解码库从linux下移植到windows vs2005
- 个人版java计算器
- HZK16简介
- 怎样做好一个服务器管理员?
- 转 26岁以后的人生
- 汉字编码介绍gbk、big5、utf-8、gb2312
- 设计模式之结构模式
- 关于内存对齐2
- 表插入排序
- MEEGOTOUCHHOME启动问题的相关提示