2014-09-27 77 views
0

這是一個小型代碼,應該顯示一個textarea並顯示我輸入的內容。但我不知道爲什麼它不顯示文本。當我按住任意鍵時,水平滾動條移動,意味着有東西進入,但沒有任何顯示。 我使用JDK 1.8並在Windows 7 64位上使用記事本進行編輯。Java8 - 文本不會顯示在TextArea中

public class tarea 
{ 

    public static void main (String[] args) 
    { 
     Frame f = new Frame("My Frame"); 
     f.setLocation(100, 100); 
     f.setSize(500, 500);  
     f.setLayout(null); 
     f.setBackground(Color.BLACK); 
     f.setTitle("My area"); 

     TextArea ta = new TextArea(); 
     ta.setBounds(10, 10, 400, 400); 
     f.add(ta); 

     f.setVisible(true); 

    } 
} 
+3

爲什麼你還在使用AWT?它被多年前的Swing替代 – msrd0 2014-09-27 10:44:36

+0

只需刪除這兩行:'f.setLayout(null);'和'ta.setBounds(10,10,400,400);'。否則,你會得到你所要求的... – Holger 2014-09-27 12:44:31

回答

0

被顯示。這些滾動條是textarea上的滾動條,而不是框架。把光標放在那裏,並嘗試輸入......它應該接受文本。

如果您想更好地控制面板中組件的組織方式,請考慮設置佈局管理器。

喜歡的東西:

f.setLayout(new GridLayout(2, 1)); 
f.add(new Label("This is a text area:")); 
f.add(ta); 
+0

剛纔我試圖粘貼一些文本,然後鍵入它的工作正常。但是,當我運行它,並嘗試進入一些只是我不顯示。 – 2014-09-27 11:10:42

5

這是顯示文本,你只是看不到它。 TextArea的頂部太高而無法顯示。

你必須改變這一行:

ta.setBounds(10, 10, 400, 400); 

這樣:

ta.setBounds(10, 30, 400, 400); 

改變Y位置將解決這個問題。

0

通過設置f.setLayout(null),框架將使用絕對佈局,該框架將從框架的左上角開始繪製意味着繪圖或添加組件將在標題欄下繪製。 問題是,當你添加textarea到框架時,它從框架的左上角開始,文本隱藏在標題欄下,你應該增加y的值ta.setBounds(10, 30, 400, 400);從10到30

0

如果您堅持使用AWT出於某種原因,這就是你可能想要做:

public class tarea { 

    public static void main(String[] args) { 

     Frame f = new Frame("My Frame"); 
     f.setLocation(100, 100); 
     f.setBackground(Color.BLACK); 
     f.setTitle("My area"); 
     TextArea ta = new TextArea(20, 50); 
     f.add(ta); 
     f.pack(); 
     f.setVisible(true); 
    } 
} 

除非有你需要的空佈局一個很好的理由,不要做它。你看到它導致了什麼。

0

TextArea類可替代地可以與2個參數 即寬度和高度被初始化

TextArea ta=new TextArea(50,50); 

您應該刪除的setBounds()方法和應使用

setLayout(new FlowLayout()); 

INSTEAD OF

setLayout(null); 

如果您遇到更多與此相關的問題,請告訴我.....

相關問題