-2

我有一个 JTextfield 一个 GetText 方法,以及一个用于存储 Jtextfield 上记录的数字的数组。

JTextField tf1 = new JTextField();
frame.add(tf1);

String tfone = tf1.getText();
int one = Integer.parseInt(tfone);

int[][] array = new int[4][5]; 
array[0][0] = one;
array[0][1] = otherValues...

这里的问题是,该代码全部执行,因此无需等待用户输入 JtextField。我怎样才能让 jtextfield 等待,直到用户登录某些东西。稍后执行 Integer.Parseint ?

我无法通过另一种方法更改 JtextField 因为我正在使用 GUI(图形用户环境。)

4

4 回答 4

3

您可以尝试添加 Button 然后执行它ActionListener,然后输入输入并按下按钮将加载执行您想要的东西的代码。

于 2016-05-27T17:12:07.743 回答
1

您可以使用 DocumentListener:

JTextField tf1 = new JTextField();
tf1.getDocument().addDocumentListener(DocumentListener()
    {
        @Override
        public void changedUpdate(DocumentEvent e)
        {
        }

        @Override
        public void insertUpdate(DocumentEvent e)
        {
            // parse here
        }

        @Override
        public void removeUpdate(DocumentEvent e)
        {
            // parse here
        }
    });
于 2016-05-27T17:12:49.587 回答
0

代替JTextField,您可以使用JOptionPane来获取用户输入。它将显示一个模态表单并等待用户验证。

String tfone = JOptionPane.showInputDialog("Please enter a number");
// Now test the user input
if (tfone != null) {
    int one = Integer.parseInt(tfone);
}

这是文档用户输入与 JOptionPane

于 2016-05-27T17:09:26.010 回答
0

这是代码:

JTextField tf1 = new JTextField();
frame.add(tf1);

JButton b = new JButton();
b.setText("Solve");
b.setBounds(30, 140, 110, 30);

b.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) 
            {
                String tfone = tf1.getText();
                int one = Integer.parseInt(tfone);

                int[][] array = new int[4][5]; 
                array[0][0] = one;
                array[0][1] = otherValues...
             //Here you can complete the rest of functions

});

frame.add(b);

一旦用户按下按钮,代码将结束其执行。

于 2016-05-28T03:20:17.727 回答