如何在AWT(计算器作业)中找到按钮源我们被要求制作一个简单的GUI计算器,我使用getSource()来检测按钮,因为这就是他们教我们的。它的工作方式是输入第1和第2值,然后选择操作,它成功了。但我犯了一个错误,因为他们想让我们做的是,数字也应该是按钮,就像一个真正的计算器。那么,如何使用getSource()获取每个按钮的值?就像我按下按钮1和2等于3。以下是我所做的import java.awt.*;import java.awt.event.*;public class SimpleCalculator implements ActionListener{
// containers
private Frame f;
private Panel p1, p2, p3, p4;
// components
private Label l1, l2, l3;
private TextField tf1, tf2, tf3;
private Button bAdd, bSub, bMul, bDiv, bClear;
public SimpleCalculator()
{
f = new Frame("My First GUI App");
p1 = new Panel();
p2 = new Panel();
p3 = new Panel();
p4 = new Panel();
l1 = new Label("First: ");
l2 = new Label("Second: ");
l3 = new Label("Result: ");
tf1 = new TextField(15);
tf2 = new TextField(15);
tf3 = new TextField(15);
bAdd = new Button("+");
bSub = new Button("-");
bMul = new Button("*");
bDiv = new Button("/");
bClear = new Button("C");
}
public void launchFrame()
{
// use default layout manager of the Panel (FlowLayout)
p1.add(l1);
p1.add(tf1);
p2.add(l2);
p2.add(tf2);
p3.add(l3);
p3.add(tf3);
p4.add(bAdd);
p4.add(bSub);
p4.add(bMul);
p4.add(bDiv);
p4.add(bClear);
// change the layout manager of the Frame,
// use GridLayout(4, 1)
f.setLayout(new GridLayout(4, 1));
f.add(p1);
f.add(p2);
f.add(p3);
f.add(p4);
f.pack();
f.setVisible(true);
// register event handlers
bAdd.addActionListener(this);
bSub.addActionListener(this);
bMul.addActionListener(this);
bDiv.addActionListener(this);
bClear.addActionListener(this);
f.addWindowListener(new MyCloseButtonHandler());
}
2 回答
LEATH
TA贡献1936条经验 获得超6个赞
String sourceText;if (ae.getSource() instanceof Button) {sourceText = ((Button)ae.getSource()).getText();}
添加回答
举报
0/150
提交
取消