-
大小: 5KB文件類型: .java金幣: 1下載: 0 次發(fā)布日期: 2021-06-11
- 語(yǔ)言: Java
- 標(biāo)簽:
資源簡(jiǎn)介
使用java Swing技術(shù)編寫的計(jì)算器,實(shí)現(xiàn)了加減乘除等基本運(yùn)算,另加了取余和階乘運(yùn)算。
代碼片段和文件信息
package?qrgj.calculator;
import?java.awt.Color;
import?java.awt.GridLayout;
import?java.awt.Image;
import?java.awt.Toolkit;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?javax.swing.JButton;
import?javax.swing.Jframe;
import?javax.swing.JPanel;
import?javax.swing.JTextArea;
import?javax.swing.JTextField;
/*
?*?Swing版計(jì)算器版本二:
?*?彌補(bǔ)實(shí)現(xiàn)多個(gè)數(shù)連續(xù)運(yùn)算;
?*?構(gòu)造方法中進(jìn)行界面布局;
?*?使用double進(jìn)行運(yùn)算,如果結(jié)果是整數(shù),要去掉后邊的.0;
?*?階乘運(yùn)算時(shí)一個(gè)數(shù)的運(yùn)算,單獨(dú)寫了一個(gè)方法;
?*?在一個(gè)數(shù)中小數(shù)點(diǎn)只能出現(xiàn)一次,用一個(gè)變量記錄點(diǎn)擊小數(shù)點(diǎn)的次數(shù),
?*?當(dāng)超過一次時(shí),使其不能輸入
?*/
public?class?Calculator?implements?ActionListener{
private?Jframe?jf;
private?JPanel?panel; //面板
private?JTextField?textField; //單行文本
private?JButton?button[]; //按鈕組
private?String?text=““; //存放文本框內(nèi)容
private?double?op1=0; //第一個(gè)數(shù)
private?double?op2=0; //第二個(gè)數(shù)
private?String?opreate; //操作符
private?double?result; //運(yùn)算結(jié)果
private?boolean?flag=true; //判斷是第一個(gè)數(shù)還是第二個(gè)數(shù)
private?int?pointCount?=0; //小數(shù)點(diǎn)出現(xiàn)的次數(shù)
private?String?endStr; //結(jié)尾
private?String?str[]?=?{“←““%““!““C“
“7““8““9““+“
“4““5““6““-“
“1““2““3““*“
“0““.““=““/“
}; //存放按鈕上的符號(hào)
public?static?void?main(String[]?args)?{
new?Calculator();
}
public?Calculator(){
//設(shè)置窗口基本信息
jf?=?new?Jframe(“計(jì)算器“);
jf.setLocation(300200);
//jf.setSize(200?300);
jf.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
//初始化面板,設(shè)置面板布局
panel?=?new?JPanel();
panel.setLayout(new?GridLayout(54));//設(shè)置面板布局為網(wǎng)格布局
//初始化文本
textField?=?new?JTextField(20);
textField.setEditable(false); //設(shè)置文本框不可編輯
textField.setBackground(Color.white);
textField.setText(“0“);
textField.setHorizontalAlignment(JTextField.RIGHT);
//初始化按鈕組
button=new?JButton[20];
//添加按鈕及符號(hào)
for(int?i=0;i button[i]?=?new?JButton(str[i]);
panel.add(button[i]);
button[i].addActionListener(this);
}
//面板和文本框添加到窗口中
jf.add(textField“North“); //上邊
jf.add(panel“Center“); //左邊
//放到頁(yè)面最好較好,不然界面可能不正常顯示
jf.pack();
jf.setVisible(true);
}
@Override
public?void?actionPerformed(ActionEvent?e)?{
JButton?o=(JButton)?e.getSource(); //獲取事件源
String?s=o
評(píng)論
共有 條評(píng)論