2014-11-05 53 views
0

我找不到如何更改我的AWT文本框中的文本。我已經嘗試過這樣的:如何通過代碼編輯awt textfield

textBox1.setText("text"); 
textBox1.validate(); 

textBox1.setText("text"); 
textBox1.repaint(); 

他們沒有工作。這可能是什麼問題?

+0

我認爲你需要添加更多的代碼。如果你調用setText,它會立即改變。 – Stefan 2014-11-05 14:02:30

+0

這就是我認爲它應該做的。但顯然它不..你想看到什麼代碼的部分?例如。文本框初始化? – 2014-11-05 14:04:26

+0

爲了儘快獲得更好的幫助,請發佈[MCVE](http://stackoverflow.com/help/mcve)(最小完整可驗證示例)。 – 2014-11-06 22:29:37

回答

1

看看這個例子中,我如何將文本的文本字段

import java.awt.*; 
import java.awt.event.*; 

public class AwtControlDemo { 

    private Frame mainFrame; 
    private Label headerLabel; 
    private Label statusLabel; 
    private Panel controlPanel; 

    public AwtControlDemo(){ 
     prepareGUI(); 
    } 

    public static void main(String[] args){ 
     AwtControlDemo awtControlDemo = new AwtControlDemo(); 
     awtControlDemo.showTextFieldDemo(); 
    } 

    private void prepareGUI(){ 
     mainFrame = new Frame("Java AWT Examples"); 
     mainFrame.setSize(400,400); 
     mainFrame.setLayout(new GridLayout(3, 1)); 
     mainFrame.addWindowListener(new WindowAdapter() { 
      public void windowClosing(WindowEvent windowEvent){ 
       System.exit(0); 
      }   
     });  
     headerLabel = new Label(); 
     headerLabel.setAlignment(Label.CENTER); 
     statusLabel = new Label();   
     statusLabel.setAlignment(Label.CENTER); 
     statusLabel.setSize(350,100); 

     controlPanel = new Panel(); 
     controlPanel.setLayout(new FlowLayout()); 

     mainFrame.add(headerLabel); 
     mainFrame.add(controlPanel); 
     mainFrame.add(statusLabel); 
     mainFrame.setVisible(true); 
    } 

    private void showTextFieldDemo(){ 
     headerLabel.setText("Control in action: TextField"); 

     Label namelabel= new Label("User ID: ", Label.CENTER); 
     final TextField userText = new TextField(16); 
     userText.setText("name"); 
     Button displayButton = new Button("Display"); 
     displayButton.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) {  
       String data = "Username: " + userText.getText(); 
       statusLabel.setText(data);   
      } 
     }); 

     controlPanel.add(namelabel); 
     controlPanel.add(userText); 
     controlPanel.add(displayButton); 
     mainFrame.setVisible(true); 
    } 
} 
+0

這就是爲什麼我應該定義textField,但我編輯它有問題。 – 2014-11-05 14:14:19

+1

那麼..你在textField中設置文本的代碼的唯一行是這一個 'userText.setText(「name」);' 我是對的嗎? – 2014-11-05 14:50:12

+0

@MartinPlávek絕對 – 2014-11-05 14:56:42