最近感觉好多初学者都在困惑小程序这一块,具体怎么做开端不是很快。因此在此献丑写了一个简单的计算器,大概的解说一下基本写法。具体就是一些空间的使用和响应。代码如下;
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ContainerListener;
import java.io.File;
import java.net.URL;
//import java.io.file;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JTree;
import javax.swing.event.TreeExpansionEvent;
import javax.swing.event.TreeExpansionListener;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;
public class Calculate1 extends Applet {
JButton bt1 = new JButton("1");
JButton bt2 = new JButton("2");
JButton bt3 = new JButton("3");
JButton bt4 = new JButton("4");
JButton bt5 = new JButton("5");
JButton bt6 = new JButton("6");
JButton bt7 = new JButton("7");
JButton bt8 = new JButton("8");
JButton bt9 = new JButton("9");
JButton bt10 = new JButton("0");
JButton bt11 = new JButton("=");
JButton bt12 = new JButton("CE");
JButton bt13 = new JButton("+");
JButton bt14 = new JButton("-");
JButton bt15 = new JButton("*");
JButton bt16 = new JButton("/");
JTextField text=new JTextField("0",16);
String result="";
String fuhao="";
String end="";
double num1=0;
double num2=0;
double answer=0;
public void init(){
// this.setBounds(0,0,450,400);//设置初始窗口的大小
JPanel p1=new JPanel();
text.setHorizontalAlignment(JTextField.RIGHT);
add(p1);
p1.add(text,"North");
add(text);
Panel p2=new Panel();
add(p2);
p2.setLayout(new GridLayout(4,4));
p2.add(bt1);
p2.add(bt2);
p2.add(bt3);
p2.add(bt13);
p2.add(bt4);
p2.add(bt5);
p2.add(bt6);
p2.add(bt14);
p2.add(bt7);
p2.add(bt8);
p2.add(bt9);
p2.add(bt15);
p2.add(bt10);
p2.add(bt11);
p2.add(bt12);
p2.add(bt16);
bt1.addActionListener(new actionnumber());
bt2.addActionListener(new actionnumber());
bt3.addActionListener(new actionnumber());
bt4.addActionListener(new actionnumber());
bt5.addActionListener(new actionnumber());
bt6.addActionListener(new actionnumber());
bt7.addActionListener(new actionnumber());
bt8.addActionListener(new actionnumber());
bt9.addActionListener(new actionnumber());
bt10.addActionListener(new actionnumber());
bt11.addActionListener(new actionnumber());
bt12.addActionListener(new actionnumber());
bt13.addActionListener(new actionnumber());
bt14.addActionListener(new actionnumber());
bt15.addActionListener(new actionnumber());
bt16.addActionListener(new actionnumber());
}
class actionnumber implements ActionListener
{
public void tishi(){
JOptionPane.showMessageDialog(text, JOptionPane.WARNING_MESSAGE);
}
public void actionPerformed(ActionEvent e)
{
String s;
s=e.getActionCommand();
if(s.equals("+")||s.equals("-")||s.equals("*")||s.equals("/"))
{
fuhao=s;
// System.out.println("fuhao");
num1=Double.parseDouble(result);
end=Double.toString(num1);//将op1转换成字符;
result="";
text.setText(end);//输出第一次的结果;
}
else if(s.equals("=")){
num2=Double.parseDouble(result);
if(fuhao.equals("+")){
answer=num1+num2;
}
if(fuhao.equals("-")){
answer=num1-num2;
}
if(fuhao=="*"){
answer=num1*num2;
}
if(fuhao=="/"){
if(num2==0){
JOptionPane.showMessageDialog(null, "除数不能为0.", "警告",JOptionPane.ERROR_MESSAGE);
answer=num1;
}
else{
answer=num1/num2;
}
}
end=Double.toString(answer);
text.setText(end);
result=Double.toString(answer);
}
else if(s.equals("CE")){
result="";
text.setText(result);
}
else{
result=result+s;
text.setText(result);
}
}
}
}
结果如下: