主题:计算器的显示问题
老师让做个计算器,我的界面已经搭好,可是文本框里就是不出显示,哪个好心人,帮我看下代码,要怎么写,现在是卡在这地方动不了了.拜托!!!!下面是代码
/*
*设计简易Windows样式的计算器
*学习AWT监听的使用
*框架的制作
**/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class Calculator extends JFrame {
private JFrame f;
private MenuBar p0;
private Menu m1;
private Menu m2;
private Menu m3;
private MenuItem mi1;
private MenuItem mi2;
private String keystoke[] = {"7","8","9","/","sqrt","4","5","6","*","%",
"1","2","3","-","1/x","0","+/-",".","+","="};
private Button b[] = new Button[keystoke.length];//获取按钮
private Panel p1;
private Panel p2;
private JTextField t;
String tmp = "";
//设置面板
public void start() {
JFrame f = new JFrame("计算器");
//菜单栏
MenuBar p0 = new MenuBar();
Menu m1=new Menu("编辑(E)");
Menu m2=new Menu("查看(V)");
Menu m3=new Menu("帮助(H)");
p0.add(m1);
p0.add(m2);
p0.add(m3);
MenuItem mi11 = new MenuItem("复制 (Crtl+C)");
MenuItem mi12 = new MenuItem("粘贴 (Crtl+V)");
MenuItem mi13 = new MenuItem("退出(Crtl+Q)");
m1.add(mi11);
m1.add(mi12);
m1.addSeparator();
m1.add(mi13);
MenuItem mi21 = new MenuItem("标准型(T)");
MenuItem mi22 = new MenuItem("科学型(S)");
MenuItem mi23 = new MenuItem("数字分组(I)");
m2.add(mi21);
m2.add(mi22);
m2.addSeparator();
m2.add(mi23);
MenuItem mi31 = new MenuItem("主题帮助(H)");
MenuItem mi32 = new MenuItem("关于计算器(A)");
m3.add(mi31);
m3.add(mi32);
f.setSize(250,250);
f.setLocation(500,200);
// f.setBackground(Color.gray);
f.setVisible(true);
JTextField t = new JTextField(16);
//设置文本框的初始显示
t.setText("0.");
t.setHorizontalAlignment(JTextField.RIGHT);//从右边开始显示;
//setHorizontalAlignment方法的作用是让标签中的文字内容在标签内按照指定的方式对齐
t.setForeground(Color.blue);
t.setEditable(false);
//计算区
Panel p1 = new Panel();
Button clear = new Button(" 清 除 ");
p1.add(t);
p1.add(clear);
p1.setLayout(new FlowLayout());
//数字区
Panel p2 = new Panel();
p2.setLayout(new GridLayout(4,5,5,5));
for(int i = 0; i < keystoke.length; i++) {
b[i] = new Button(keystoke[i]);
p2.add(b[i]);
}
//添加Panel块
f.setMenuBar(p0);
f.add(p1);
f.add(p2);
f.add(p1,BorderLayout.NORTH);
f.add(p2,BorderLayout.CENTER);
//用内部类增加事件监听器,点"X"关闭窗口;
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
f.setResizable(false);//全屏无效
}
//监听按钮
class Listener implements ActionListener {
public void actionPerformed(ActionEvent e) {
String x = e.getActionCommand();
char aa = x.charAt(0);
if(aa >= '0' && aa < '9') {
t.setText(t.getText() + x);
} else if(x.equals("+")){
}
}
}
//
public static void main(String[] args) {
Calculator cr= new Calculator();
cr.start();
}
}
/*
*设计简易Windows样式的计算器
*学习AWT监听的使用
*框架的制作
**/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class Calculator extends JFrame {
private JFrame f;
private MenuBar p0;
private Menu m1;
private Menu m2;
private Menu m3;
private MenuItem mi1;
private MenuItem mi2;
private String keystoke[] = {"7","8","9","/","sqrt","4","5","6","*","%",
"1","2","3","-","1/x","0","+/-",".","+","="};
private Button b[] = new Button[keystoke.length];//获取按钮
private Panel p1;
private Panel p2;
private JTextField t;
String tmp = "";
//设置面板
public void start() {
JFrame f = new JFrame("计算器");
//菜单栏
MenuBar p0 = new MenuBar();
Menu m1=new Menu("编辑(E)");
Menu m2=new Menu("查看(V)");
Menu m3=new Menu("帮助(H)");
p0.add(m1);
p0.add(m2);
p0.add(m3);
MenuItem mi11 = new MenuItem("复制 (Crtl+C)");
MenuItem mi12 = new MenuItem("粘贴 (Crtl+V)");
MenuItem mi13 = new MenuItem("退出(Crtl+Q)");
m1.add(mi11);
m1.add(mi12);
m1.addSeparator();
m1.add(mi13);
MenuItem mi21 = new MenuItem("标准型(T)");
MenuItem mi22 = new MenuItem("科学型(S)");
MenuItem mi23 = new MenuItem("数字分组(I)");
m2.add(mi21);
m2.add(mi22);
m2.addSeparator();
m2.add(mi23);
MenuItem mi31 = new MenuItem("主题帮助(H)");
MenuItem mi32 = new MenuItem("关于计算器(A)");
m3.add(mi31);
m3.add(mi32);
f.setSize(250,250);
f.setLocation(500,200);
// f.setBackground(Color.gray);
f.setVisible(true);
JTextField t = new JTextField(16);
//设置文本框的初始显示
t.setText("0.");
t.setHorizontalAlignment(JTextField.RIGHT);//从右边开始显示;
//setHorizontalAlignment方法的作用是让标签中的文字内容在标签内按照指定的方式对齐
t.setForeground(Color.blue);
t.setEditable(false);
//计算区
Panel p1 = new Panel();
Button clear = new Button(" 清 除 ");
p1.add(t);
p1.add(clear);
p1.setLayout(new FlowLayout());
//数字区
Panel p2 = new Panel();
p2.setLayout(new GridLayout(4,5,5,5));
for(int i = 0; i < keystoke.length; i++) {
b[i] = new Button(keystoke[i]);
p2.add(b[i]);
}
//添加Panel块
f.setMenuBar(p0);
f.add(p1);
f.add(p2);
f.add(p1,BorderLayout.NORTH);
f.add(p2,BorderLayout.CENTER);
//用内部类增加事件监听器,点"X"关闭窗口;
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
f.setResizable(false);//全屏无效
}
//监听按钮
class Listener implements ActionListener {
public void actionPerformed(ActionEvent e) {
String x = e.getActionCommand();
char aa = x.charAt(0);
if(aa >= '0' && aa < '9') {
t.setText(t.getText() + x);
} else if(x.equals("+")){
}
}
}
//
public static void main(String[] args) {
Calculator cr= new Calculator();
cr.start();
}
}