2012-10-08 24 views
0

我的目標是在JTextField中編寫對用戶可見的內容,並在控制檯中顯示此文本。 截至目前,JTextField正在接受文本,但沒有顯示。沒有光標,沒有文字。如何使JTextField文本可見?

我試過使用textfield.setEditable(true),textfield.setEnable(true)和不同的前景和背景顏色,但沒有任何反應。好奇地我可以使用textField.setText(「隨機文本」),它顯示,但我不能刪除它或在程序運行時編輯它,它不包含在getText()的輸出中。

這是程序:

import acm.program.*; 

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

@SuppressWarnings("serial") 
public class TextFieldTest extends ConsoleProgram implements SomeConstants { 

public void init() { 
    setSize(APPLICATION_WIDTH, APPLICATION_HEIGHT); 

    textField = new JTextField(20); 
    add(textField, SOUTH); 
    textField.addActionListener(this); 
} 

public void actionPerformed(ActionEvent e) { 
    if (e.getSource() == textField) 
     println("Hi, " + textField.getText()); 
} 

private JTextField textField; 
} 
+0

你能評論整個actionPerformed的邏輯,而不是再試一次。 – rbhawsar

+0

評論它 - 當我嘗試在Jtextfield中寫入時沒有任何顯示。我嘗試在不同的組合中評論addlistener,邏輯和方法。 – Tor

+0

如果我創建一個JFrame並添加JTextField它工作正常,所以我想它與我使用acm(consoleprogram)的事實有關? – Tor

回答

1

如果你使用acm.program.ConsoleProgram工作,你可能需要使用Java SE 5(1.5版本),作爲建議here

附錄:由於@Tor評論,java.awt.TextField可能在JRE的更高版本下可接受。

+0

好的,謝謝。我正在使用jre1.6。最後使用一個正常的TextField來代替它,並且它可以正常工作。 – Tor

+0

@Tor:很高興知道;絕對值得更新。 – trashgod