进口java.awt.GridLayout中
进口java.awt.event.ActionEvent
进口java.awt.event.ActionListener
进口的javax。 swing.JButton
进口javax.swing.JFrame中
进口javax.swing.JPanel
进口javax.swing.JTextField中
/ /暂时不考虑这个问题甚至添加
/ /点的第二个操作点的操作员点运算符点=结果
公共类计算器实现的ActionListener {
>JTextField的JTF =新的JTextField(10)
私人布尔追加= FALSE
私人字符串OP1 =“0”
私人字符串运算符=“+”
@覆盖
公共无效的actionPerformed(ActionEvent的E){
字符串COMN = e.getActionCommand()。!
/ /处理数字
如果(“0123456789”的indexOf(COMN)= -1){
如果(追加){/ /追加
字符串温度= jtf.getText()
jtf.setText(温度+ COMN)
}其他{/ /替换
jtf.setText(COMN)
追加= TRUE
/ /处理运营商
否则,如果(“+ - * /”的indexOf(COMN)= -1){
OP1 = JTF。的getText()
运算符= COMN
追加= FALSE
的} else if(“=”的indexOf(COMN)= -1。){
字符串OP2 = jtf.getText()
双D1 = Double.parseDouble(OP1)
双D2 = Double.parseDouble(OP2)
如果(“+”等于(操作者)。){
D1 = D1 + D2
}否则,如果(“ - ”等于(操作员)。){
D1 = D1 - D2
}否则,如果(“*”的equals(操作员)。){
D1 = D1 * D2
的} else if(“/”等于(操作者)。){
D1 = D1 / D2
jtf.setText(D1 +“”)
追加= FALSE
}否则,如果(等于(COMN)“。”){
字符串温度= jtf.getText()
如果(temp.indexOf(“”)== -1){
jtf.setText(温度+“。”)
追加= TRUE
否则,如果(“+ / - ”的equals(COMN)){
字符串温度= jtf.getText()
如果(temp.startsWith(“-1”)){
JTF。的setText(temp.substring(1))
}其他{
jtf.setText(“ - ”+温度)
否则,如果(“退格”。等于(COMN)){
字符串温度= jtf.getText()
如果(temp.length()>0){
jtf.setText(temp.substring(0,temp.length() - 1))..
}
的} else if(“CE”等于(COMN)| |“C”等于(COMN)){
jtf.setText(“0”)
追加= FALSE
公众计算器(){
JFrame的JF =新的JFrame(“计算器”)
jf.add(JTF,BorderLayout.NORTH)
字串[] S1 = {“退格”,“CE”,“C”,“+”,“7”,“8”,“9”,“/”,“4”,
“5”,“6”,“*”,“1”,“2”,“3”,“ - ”,“0”,“+ / - ”,“”,。 “=”}
的JPanel JP =新的JPanel()
jf.add(JP,使用BorderLayout.CENTER)
网格布局GL =新的网格布局(5,4) jp.setLayout(GL)
JButton的[] JB =新的JButton [s1.length]
为(int i = 0我<s1.length,我+ +){
JB [我] =新的JButton(S1由[i])
jp.add(JB由[i])。
JB [I] addActionListener方法,(这)
} jf.add(JP)
jtf.setEditable(假)
jf.setLocation(400,300)
jf.pack()
jf.setResizable(假)/ /设置窗口不可改变
jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE)
jf.setVisible(真)
公共静态无效的主要(字串[] args){
新的计算器()
这个函数比较简单,不知道能不能满足要求