如何在AWT(计算器作业)中找到按钮源

如何在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());
    }


隔江千里
浏览 495回答 2
2回答

LEATH

您可以检查您的源代码是否是Button(实际上不是本质的,因为您应该知道它只从一个按钮调用),然后键入强制转换到一个按钮,然后使用.getText()String sourceText;if (ae.getSource() instanceof Button) {sourceText = ((Button)ae.getSource()).getText();}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java