2012-11-01 25 views
0

可能重复:
How to print the user input on screen from a TextField using Java Swing印刷使用Swing的JTextField中

请参阅下面的代码:

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

我想要做的是显示文本由用户在同一窗口中输入的文本。有点像绘画(图形g)和重绘()当文本被改变。请帮忙。谢谢。

+0

是的。那是因为我最初是在那个帖子后面 – Anay

回答

0

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

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

看到这个问题:How could I read Java Console Output into a String buffer

读取到一个StringBuffer后,您可以打印到一个JTextField或者JTextArea中..等

1

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

+0

好,所以我不能使用类似于: void paint(Graphics g){ //打印它? } – Anay

+1

你可以设计自己的Swing组件来显示一行文本,但是为什么你会这样做,因为标准组件已经存在了? –

+0

请给你一个示例代码 – Anay