Как сделать так, чтобы кнопка в Java соответствовала textField? - PullRequest
0 голосов
/ 29 мая 2018

Только что закончил мой первый год в университете и хотел улучшить свои навыки программирования на 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 голосов
/ 29 мая 2018

Вы можете добавить нажатое действие к вашим цифровым кнопкам и установить для текста textFields нужный текст (или добавить, если необходимо).

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

И я действительно рекомендую вам Eclipse Window Builder, если высобираются использовать Java Gui.Это сэкономит вам много времени с некоторыми кодами Gui, которые никогда не увеличат ваши знания Java.Если вы действительно хотите расширить свои знания Java, вы можете проверить эту книгу:

Структуры данных и алгоритмы в Java 6e Майкл Т. Гудрич, Роберто Тамассия, Майкл Х. Голдвассер

0 голосов
/ 29 мая 2018

Я думаю, вы ищете что-то вроде этого:

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);
        }
    }
});

Удачи в учебе!

...