2013-12-21 64 views
2

我想使JTextArea填充整個框架,所以它看起來有點像記事本或textedit。也有可能有一個滾動窗格。 在此先感謝! 編輯:JTextAreaJava - 如何使一個Jtextfield填充整個框架

+0

爲什麼選擇JTextField? JTextArea聽起來更適合這個任務。 – PakkuDon

+0

對不起是JTextArea – Louisdewar

+1

你嘗試過什麼?就像'frame.add(新的JScrollPane(new JTextArea()))'一樣簡單。 –

回答

4

試試這個---

import java.awt.BorderLayout; 

import javax.swing.JFrame; 
import javax.swing.JTextField; 


public class TextFieldTest { 
    public static void main(String[] args) { 
     JFrame f = new JFrame(); 
     f.setLayout(new BorderLayout()); 
     JTextField tf = new JTextField(); 
     f.getContentPane().add(BorderLayout.EAST, tf); 
     f.pack(); 
     f.setVisible(true); 
    } 
} 
+0

謝謝你完美的作品!我實際上還不能接受它4分鐘,但是這太棒了!謝謝!如此快速:-) – Louisdewar

+0

哦肯定會等待4分鐘.. :-) – user3115056

+0

-1,@peeskillet,FYI,BorderLayout是JFrame的默認佈局。這個例子還使用了一箇舊的Container.add(...)方法。從API文檔 - '此方法在1.1.'已過時。組件應該是第一個參數,並且約束第二個參數。在東部添加組件也意味着它將以其首選寬度顯示,但高度可能會改變。應該將文本區域添加到CENTER以與框架一起增長。 – camickr

2

你想要做的是設置行和字符寬度。您可以使用此構造

JTextArea jta = new JTextArea(numberOfRows, numberOdCharacter); 

            ^^    ^^ 
            Heigth   Width 

jta.setLineWrap(true); // wraps the words 
jta.setWrapStyleWord(true); // wraps by word instead of character 

是的,你可以使用一個JScrollPane

JScrollPane jsp = new JScrollPane(jta); 
panel.add(jsp); 

然後收拾框架,所以它 「填補」 框架

frame.pack() 

見這個例子

import javax.swing.JFrame; 
import javax.swing.JMenu; 
import javax.swing.JMenuBar; 
import javax.swing.JScrollPane; 
import javax.swing.JTextArea; 
import javax.swing.SwingUtilities; 

public class NoteBookEditor extends JFrame { 

    JTextArea jta = new JTextArea(40, 100); 
    JMenuBar menuBar; 
    JMenu menu; 
    public NoteBookEditor(){ 

     menuBar = new JMenuBar(); 
     menu = new JMenu("hey"); 
     menuBar.add(menu); 
     setJMenuBar(menuBar); 


     add(new JScrollPane(jta)); 
     jta.setLineWrap(true); 
     jta.setWrapStyleWord(true); 
    } 

    public static void createAndShowGui(){ 
     JFrame frame = new NoteBookEditor(); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.pack(); 
     frame.setVisible(true); 

    } 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable(){ 
      public void run(){ 
       createAndShowGui(); 
      } 
     }); 
    } 
} 

enter image description here

+0

我認爲這個例子工作正常,沒有指定JTextArea的行和列。我不知道它是如何工作的,但文本區域似乎被拉伸以填充視口。 – PakkuDon

+0

這個詞包裝了什麼? – Louisdewar

+0

@Louisdewar,它使得當文本到達屏幕右側部分的末尾時,文本將在下一行再次開始,而不是使文本區域變大。 WrapStyleWord將它設置爲讓它按字和ny按字符進行到下一行,這樣字就不會被切斷 –

相關問題