2012-11-01 45 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