如何在java中创建一个与textField对应的按钮?

时间:2018-05-29 12:27:11

标签: java calculator textfield

刚刚完成我大学的第一年,并希望提高我的Java编码技能。我目前正在尝试开发一个简单的GUI计算器应用程序。但是,我一直坚持如何按我的jButton,例如我的文本字段上出现的第一个按钮。我知道我可能不得不为这个函数使用一个动作监听器,但我现在卡住了。 任何帮助都会很棒。非常感谢你。

public static void main(String[] args) {
    // TODO Auto-generated method stub
    JFrame frame = new JFrame("Calculator");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    // frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);
    frame.pack();
    frame.setIconImage(new ImageIcon("F:\\Java Summer Project\\Sumer_Project\\images\\farme_image.jpg").getImage());
    frame.setSize(500, 480);
    frame.setResizable(false);
    frame.setVisible(true);

    ////// panel\\\
    JPanel panel = new JPanel();
    panel.setLayout(null);
    frame.add(panel);

    TextField textField = new TextField();
    textField.setBounds(0, 0, 500, 200);
    textField.setEnabled(true);
    panel.add(textField);

    JButton openbracketButton = new JButton("(");
    openbracketButton.setBounds(0, 200, 50, 50);
    panel.add(openbracketButton);

    JButton closebracketButton = new JButton(")");
    closebracketButton.setBounds(50, 200, 50, 50);
    panel.add(closebracketButton);

    JButton percButton = new JButton("%");
    percButton.setBounds(100, 200, 50, 50);
    panel.add(percButton);

    JButton clearButton = new JButton("ac");
    clearButton.setBounds(150, 200, 50, 50);
    panel.add(clearButton);

    JButton divideButton = new JButton("÷");
    divideButton.setBounds(150, 250, 50, 50);
    panel.add(divideButton);

    JButton timesButton = new JButton("X");
    timesButton.setBounds(150, 300, 50, 50);
    panel.add(timesButton);

    JButton minusButton = new JButton("+");
    minusButton.setBounds(150, 350, 50, 50);
    panel.add(minusButton);

    JButton plusButton = new JButton("-");
    plusButton.setBounds(150, 400, 50, 50);
    panel.add(plusButton);

    JButton oneButton = new JButton("1");
    oneButton.setBounds(0, 250, 50, 50);
    oneButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent oneButton) {
            System.out.println("Do Something Clicked");
        }
    });

    panel.add(oneButton);

2 个答案:

答案 0 :(得分:1)

我猜你正在寻找这样的东西:

oneButton.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent oneButton) {
        if(StringUtils.isEmpty(textField)) {
            // If its empty so just put 1 in the display
            textField.setText("1");
        } else {
            // Get value on display and convert to a integer
            // Plus one because its the button one
            int result = 1 + Integer.parseInt(textField.getText());
            // Set the result to the display
            textField.setText((String) result);
        }
    }
});

祝你学习顺利!

答案 1 :(得分:0)

您可以向数字按钮添加按下的操作,并将textFields文本设置为所需的文本。(或者,如果需要,可以附加)。

// Like this
textField.setText("1");

如果您打算使用Java Gui,我真的推荐您使用Eclipse Window Builder。使用一些永远不会增加Java知识的Gui代码可以为您节省大量时间。如果您真的想增加Java知识,可以查看本书:

Java 6e中的数据结构和算法 Michael T. Goodrich,Roberto Tamassia,Michael H. Goldwasser