JTextfield Добавление через программу - PullRequest
0 голосов
/ 17 декабря 2011

В моей форме 3 поля JText. Первые два поля для получения mark1 и mark2, наконец одно для отображения суммы mark1 и mark2.

Проблема в том, что когда я ввожу значение в mark1, оно должно отображаться в общем поле. Кроме того, когда я ввожу значение mark2, значение mark1 плюс значение поля mark2 необходимо будет немедленно добавить в общее поле с помощью кода Java?

Примечание. Я не хочу использовать кнопку для вычисления суммы.

1 Ответ

4 голосов
/ 17 декабря 2011

Вот пример.

enter image description here

package sof;

import java.awt.GridLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;

public class Test extends JFrame {
    JTextField text1 = new JTextField();
    JTextField text2 = new JTextField();
    JTextField text3 = new JTextField();

    public Test() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);

        CustomDocListener cd = new CustomDocListener();

        text1.getDocument().addDocumentListener(cd);
        text2.getDocument().addDocumentListener(cd);

        JPanel pnl = new JPanel(new GridLayout(3, 1));
        pnl.add(text1);
        pnl.add(text2);
        pnl.add(text3);
        this.add(pnl);
        setSize(200, 100);
        setVisible(true);
    }

    public static void main(String[] args) {
        new Test().setVisible(true);
    }

    class CustomDocListener implements DocumentListener{
        public void changedUpdate(DocumentEvent e) {
        }

        public void insertUpdate(DocumentEvent e) {
            fireChange();
        }

        public void removeUpdate(DocumentEvent e) {
            fireChange();
        }

        private void fireChange(){
            int value1 = 0, value2 = 0;
            try {
                value1 = Integer.parseInt(text1.getText());
            } catch (NumberFormatException ne) {
                value1 = 0;
            }
            try {
                value2 = Integer.parseInt(text2.getText());
            } catch (NumberFormatException ne) {
                value2 = 0;
            }
            text3.setText(value1 + value2 + "");
        }

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...