import javax.swing.*
import java.awt.event.*
class Counter extends WindowAdapter
{
static JFrame f=new JFrame("计算器")
static JTextField text1=new JTextField("0.")
static String source=""
static String cal=""
static String object=""
static boolean flag=false
static boolean flag1=true
static boolean flag2=false
public void init()
{
try
{
Container c=f.getContentPane()
JPanel pan1=new JPanel()
JButton b1=new JButton("1")
JButton b2=new JButton("2")
JButton b3=new JButton("3")
JButton b4=new JButton("4")
JButton b5=new JButton("5")
JButton b6=new JButton("6")
JButton b7=new JButton("7")
JButton b8=new JButton("8")
JButton b9=new JButton("9")
JButton b0=new JButton("0")
JButton b11=new JButton("+")
JButton b12=new JButton("-")
JButton b13=new JButton("*")
JButton b14=new JButton("/")
JButton b15=new JButton(".")
JButton b16=new JButton("=")
JButton bclar=new JButton("清零")
text1.setHorizontalAlignment(JTextField.RIGHT)
c.add(text1,"North")
c.add(pan1)
A aa=new A()
Result re=new Result()
Opertion op=new Opertion()
Clar cl=new Clar()
b1.addActionListener(aa)
b2.addActionListener(aa)
b3.addActionListener(aa)
b4.addActionListener(aa)
b5.addActionListener(aa)
b6.addActionListener(aa)
b7.addActionListener(aa)
b8.addActionListener(aa)
b9.addActionListener(aa)
b0.addActionListener(aa)
b11.addActionListener(op)
b12.addActionListener(op)
b13.addActionListener(op)
b14.addActionListener(op)
b16.addActionListener(re)
b15.addActionListener(aa)
bclar.addActionListener(cl)
pan1.add(b1)
pan1.add(b2)
pan1.add(b3)
pan1.add(b11)
pan1.add(b4)
pan1.add(b5)
pan1.add(b6)
pan1.add(b12)
pan1.add(b7)
pan1.add(b8)
pan1.add(b9)
pan1.add(b13)
pan1.add(b0)
pan1.add(b15)
pan1.add(b16)
pan1.add(b14)
pan1.add(bclar)
f.setSize(200,220)
f.setVisible(true)
}
catch(Exception e)
{
System.out.println(e.getMessage())
}
}
class A implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String a=text1.getText()
String s=e.getActionCommand()
if(a.equals("0.")||a.equals("+")||a.equals("-")||a.equals("*")||a.equals("/"))
text1.setText(s)
else {
if(flag2)
{
text1.setText(s)
flag2=false
}
else
text1.setText(a+s)
}
}
}
class Opertion implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
cal=e.getActionCommand()
if(flag1==true)
source=text1.getText()
text1.setText(cal)
flag1=false
flag=true
}
}
class Result implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
double num1
num1=Double.parseDouble(source)
object=text1.getText()
double num2
num2=Double.parseDouble(object)
double result=0
if(cal.equals("+"))
result=num1+num2
if(cal.equals("-"))
result=num1-num2
if(cal.equals("*"))
result=num1*num2
if(cal.equals("/"))
if(num2==0)
text1.setText("除数不能为0")
else
result=num1/num2
String s1=Double.toString(result)
text1.setText(s1)
flag1=true
flag2=true
}
}
class Clar implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
text1.setText("0.")
}
}
public static void main(String[] args)
{
Counter count=new Counter()
count.init()
}
public void windowClosing(WindowEvent e){
System.exit(1)
}
public void windowOpened(WindowEvent e){}
public void windowIconified(WindowEvent e){}
public void windowDeiconified(WindowEvent e){}
public void windowClosed(WindowEvent e){}
public void windowActivated(WindowEvent e){}
public void windowDeactivated(WindowEvent e){}
}
Java编辑一个科学型计算器跟复合型计算器:import javax.swing.JFrame
import javax.swing.JPanel
import javax.swing.border.EmptyBorder
import javax.swing.JTextField
import java.awt.GridLayout
import javax.swing.JButton
import java.awt.Color
import java.awt.event.ActionEvent
import java.awt.event.ActionListener
import java.util.ArrayList
import java.util.Listpublic class CalculaterYYWF extends JFrame {
private JPanel contentPane
private JTextField textField
private List<String>listSign = new ArrayList<String>()
private List<Double>listNum = new ArrayList<Double>()public static void main(String[] args) {
new CalculaterYYWF()
} public CalculaterYYWF() {
setResizable(false)
setBackground(new Color(240, 255, 240))
setTitle("有猿无粉牌计算器")
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
setBounds(100, 100, 265, 375)
contentPane = new JPanel()
contentPane.setBackground(new Color(224, 255, 255))
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5))
setContentPane(contentPane)
contentPane.setLayout(null)
textField = new JTextField()
textField.setBounds(10, 10, 237, 44)
contentPane.add(textField)
textField.setColumns(10)
JPanel panel = new JPanel()
panel.setBackground(new Color(224, 255, 255))
panel.setBounds(10, 64, 237, 273)
contentPane.add(panel)
panel.setLayout(new GridLayout(5, 4, 5, 5))
String stmp = "123+456-789*0.%/()"
for (int i = 0i <18i++) {
JButton j = new JButton(String.valueOf(stmp.charAt(i)))
j.setActionCommand(j.getText())
panel.add(j)
j.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
textField.setText(textField.getText().trim()
+ e.getActionCommand())
}
})
}
JButton bt_clear = new JButton("C")
panel.add(bt_clear)
bt_clear.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
textField.setText("")
}
})
JButton bt_deng = new JButton("=")
panel.add(bt_deng)
bt_deng.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String expression = textField.getText()
bracketResolve(expression)
}
})
setVisible(true)
} // 逐层消括号并计算
public void bracketResolve(String exp) {
String strjs = convertString(exp)
} }