0

可能重复:
如何使用 Java Swing 从 TextField 在屏幕上打印用户输入

请看下面的代码:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

    public class Swingtest extends JFrame implements ActionListener{
    JTextField txtdata;
    JButton calbtn = new JButton("Calculate");

    public Swingtest()
    {
        JPanel myPanel = new JPanel();
        add(myPanel);
        myPanel.setLayout(new GridLayout(3, 2));
        myPanel.add(calbtn);
        calbtn.addActionListener(this);
        txtdata = new JTextField();
        myPanel.add(txtdata);
    }

    public void actionPerformed(ActionEvent e)
    {
        if (e.getSource() == calbtn) {
            String data = txtdata.getText(); //perform your operation
            System.out.println(data);
        }
    }

    public static void main(String args[])
    {
        Swingtest g = new Swingtest();
        g.setLocation(10, 10);
        g.setSize(300, 300);
        g.setVisible(true);
    }
}

我想要做的是在同一窗口中显示用户在字段中输入的文本。当文本更改时,有点像 paint(Graphics g) 和 repaint()。请帮忙。谢谢。

4

2 回答 2

1

添加 JLabel、JTextField、JTextArea 或任何能够显示文本的组件。获取用户输入文本的 JTextField 的文档,并在该文档中添加 DocumentChangeListener。每次收到 DocumentEvent 时,从 JTextField 获取文本并更新 JLabel、JTextField、JTextArea 或您选择的任何组件中的文本。

于 2012-11-01T08:30:23.850 回答
0

这可以通过重定向 I/O/E 流来完成:

我会给你一个详细的答案,但是为这个问题选择的答案的回答者更好地解释了它。

看到这个问题:我如何将 Java 控制台输出读入字符串缓冲区

将其读入 StringBuffer 后,您可以将其打印到 JTextField 或 JTextArea.. 等

于 2012-11-01T08:28:56.817 回答