2012-04-09 59 views
3

我有這個類我的UI着設定值

public class MyFrame extends JFrame{ 
    JTextArea textArea; 
    public MyFrame(){ 
    setSize(100,100); 
    textArea = new JTextArea(50,50); 
    Container content = getContentPane(); 
    content.add(textArea); 
    } 
public static void main(String[] args){ 
      JFrame frame = new MyFrame(); 
      frame.show(); 
      UpdateText u = new UpdateText(); 
      u.settext("Helloworld"); 
     } 
} 

而且我有這樣的另一個類,將設置的textArea文本,在至極我延長MyFrame進入電影textarea的另一類。

public class UpdateText extends MyFrame{ 
    public void settext(String msg){ 
    textArea.setText(msg); 
    } 
} 

然後我實例化UpdateText並調用函數settext。但文字似乎並沒有在GUI中顯示。 請幫忙

+0

textArea如何傳遞給UpdateText類?你確定它們是相同的textArea實例嗎? – evanwong 2012-04-09 17:35:47

+0

適用於我... – ControlAltDel 2012-04-09 17:35:56

+0

@evanwong UpdateText擴展了MyFrame,所以它可以有textArea – 2012-04-09 17:40:29

回答

2

首先,除非你想要不同的行爲,否則不要重寫setText()方法。其次,你不必延伸任何東西。所有你需要做的就是按照這些簡單的步驟,你會被設置!

  1. UpdateText類,把這些線某處它:

    MyFrame gui; 
    
    public UpdateText(MyFrame in) { 
        gui = in; 
    } 
    
  2. 在「MyFrame`類,把此行的開頭:

    UpdateText ut = new UpdateText(this); 
    

現在,您可以參考UpdateText類的MyFrame類中的所有內容p通過gui收到您想要更改的內容。例如,假設你想改變你的textarea文本。代碼如下:

gui.textArea.setText("Works!"); 

快樂編碼! :)