第一个Java程序。。
import java.awt.Button;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.TextField;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JTextField;
import java.awt.BorderLayout;
import javax.swing.JMenuBar;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Main
{
JFrame frame = new JFrame("计算器");
JMenuBar b = new JMenuBar(); //菜单
JMenu bb = new JMenu("菜单");
JMenuItem bb1 = new JMenuItem("清除");
JMenuItem bb2 = new JMenuItem("重新开始");
JTextField text = new JTextField(); //显示屏
JPanel p = new JPanel(); //面板,装前三行
JPanel p0 = new JPanel(); //装p和p2
JPanel p2 = new JPanel(); //装最后一行按钮
double result=0;
char ch;
int flag=0,n=0;
public void go()
{
b.setPreferredSize(new Dimension(285,20));
bb.add(bb1);
bb.add(bb2);
b.add(bb);
text.setText("0");
text.setHorizontalAlignment(JTextField.RIGHT); //从右显示
p0.setLayout(new BorderLayout());
p0.add(p,BorderLayout.NORTH);
p0.add(p2,BorderLayout.CENTER);
p.setLayout(new GridLayout(3,3,0,0));
p2.setLayout(new FlowLayout(FlowLayout.LEFT,0,0));
Button b0 = new Button("0"); //按钮
b0.setPreferredSize(new Dimension(77,40));
Button b1 = new Button("1");
b1.setPreferredSize(new Dimension(68, 40));
Button b2 = new Button("2");
b2.setPreferredSize(new Dimension(68, 40));
Button b3 = new Button("3");
b3.setPreferredSize(new Dimension(68, 40));
Button b4 = new Button("4");
b4.setPreferredSize(new Dimension(68, 40));
Button b5 = new Button("5");
b5.setPreferredSize(new Dimension(68, 40));
Button b6 = new Button("6");
b6.setPreferredSize(new Dimension(68, 40));
Button b7 = new Button("7");
b7.setPreferredSize(new Dimension(68, 40));
Button b8 = new Button("8");
b8.setPreferredSize(new Dimension(68, 40));
Button b9 = new Button("9");
b9.setPreferredSize(new Dimension(68, 40));
Button b10 = new Button("=");
b10.setPreferredSize(new Dimension(154, 40));
Button b11 = new Button("+");
b11.setPreferredSize(new Dimension(68,40));
Button b12 = new Button("-");
b12.setPreferredSize(new Dimension(68, 40));
Button b13 = new Button("*");
b13.setPreferredSize(new Dimension(68, 40));
Button b14 = new Button("/");
b14.setPreferredSize(new Dimension(77,40));
p.add(b1);
p.add(b2);
p.add(b3);
p.add(b11);
p.add(b4);
p.add(b5);
p.add(b6);
p.add(b12);
p.add(b7);
p.add(b8);
p.add(b9);
p.add(b13);
p2.add(b0);
p2.add(b10);
p2.add(b14);
frame.add(b,BorderLayout.NORTH);
frame.add(text,BorderLayout.CENTER);
frame.add(p0,BorderLayout.SOUTH);
frame.setPreferredSize(new Dimension(315,300));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false); //不能放大
frame.pack();
frame.setVisible(true);
b0.addActionListener(new ActionA());
b1.addActionListener(new ActionA());
b2.addActionListener(new ActionA());
b3.addActionListener(new ActionA());
b4.addActionListener(new ActionA());
b5.addActionListener(new ActionA());
b6.addActionListener(new ActionA());
b7.addActionListener(new ActionA());
b8.addActionListener(new ActionA());
b9.addActionListener(new ActionA());
b10.addActionListener(new ActionD());
b11.addActionListener(new ActionF());
b12.addActionListener(new ActionF());
b13.addActionListener(new ActionF());
b14.addActionListener(new ActionF());
bb1.addActionListener(new Clear());
bb2.addActionListener(new Begin());
}
public static void main(String[] args)
{
Main m = new Main();
m.go();
}
/**
*
* 按钮事件
*
*/
class ActionA implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
n=0;
String s1 = e.getActionCommand(); //取按钮上的值
double l1 = Double.valueOf(s1);
String s2 = text.getText(); //取显示屏上的值
double l2=0;
if(s2.equals("除数不能为0"))
{
text.setText("0"); l2=0;
}
else
{
l2 = Double.valueOf(s2);
}
if(flag==1)
{
text.setText("0");l2=0;flag=0;
}
double l3 = l2*10+l1;
String s = Double.toString(l3);
text.setText(s);
}
}
/**
*
* 三个符号事件+-/
*
*/
class ActionF implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
String s1 = text.getText(); //取显示屏上的值
double l1 = Double.valueOf(s1);
result = l1;
//System.out.println(result);
text.setText("0");
String s2 = e.getActionCommand(); //取按钮上的值
char [] c = s2.toCharArray(); //取符号
ch = c[0];
}
}
/**
*
* "/"事件
*
*/
class ActionD implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
if(n==1)
return ;
String s1 = text.getText(); //取显示屏上的值
double l1 = Double.valueOf(s1);
if(s1.equals("0.0"))
{
text.setText("除数不能为0");
result = 0;
flag = 0;
return ;
}
switch(ch)
{
case '+':
result = result + l1;break;
case '-':
result = result - l1;break;
case '*':
result = result * l1;break;
case '/':
result = result / l1;break;
}
String s = Double.toString(result);
text.setText(s);
result = 0;
flag=1;
n=1; //防止按多次“=”
}
}
/**
*
*重新开始
*
*/
class Begin implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
result = 0;
flag = 0;
text.setText("0");
}
}
/**
*
*清除最后一位
*
*/
class Clear implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
String s ="0";
String s1 = text.getText(); //取显示屏上的值
char [] c = s1.toCharArray();
for(int i=0;i
{
if(i==0)
{
s = Character.toString(c[i]);continue;
}
s = s + c[i];
}
text.setText(s);
}
}
}