最近在用Java寫一個仿記事本的程序,但是發現用JTextArea寫的效果有點差,但是用TextArea自動換行並不那么方便,經過對比和實踐,我也發現自己對這兩個標簽認識存在不足,下面就來討論一下他們的用法:
1、自動換行
對於JTextArea來說,自動換行so easy,依據代碼就搞定,代碼如下:
JTextArea jtextArea = new JTextArea(); // 新建jtextArea jtextArea.setLineWrap(true); //實現自動換行
對於TextArea來說,我剛開始理解的是給他設置一個列數,也就是在他的列數超過設置的數值時,自動換行,但是發現沒有效果,經過查找和搜索,最終發現,有簡單的方法,經過實踐,確實更方便,代碼如下:
TextArea textArea = new TextArea("", 20, 43, TextArea.SCROLLBARS_VERTICAL_ONLY); // 創建文本區
也就是在創建文本區時就直接設置了,TextArea.SCROLLBARS_VERTICAL_ONLY的意思是僅垂直方向設置,也正是由於這種設置才達到了自動換行的效果,如果通過TextArea的其他構造方法,創建出來的文本區是含垂直和水平兩個方向的滾動條,也就是不支持自動換行的
2、滾動條
雖然JTextArea可以很方便實現自動換行,但是有一個問題,讓人很不爽,就是需要我們再次添加滾動條(JScrollPane),而且滾動條有點丑,也就是要添加下面的代碼:
JScrollPane scrollPane = new JScrollPane(textArea); //創建滾動條,需要指定添加位置 scrollPane.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); //設置滾動條的形式
正如上面我提到的,TextArea是默認自帶滾動條(默認為SCROLLBARS_BOTH),如果不想有滾動條,把TextArea.SCROLLBARS_VERTICAL_ONLY改為SCROLLBARS_NONE,就可以了
通過實踐,確實發現自己對這兩個標簽的認識不足,顯然TextArea更方便。后邊還要進一步的學習,對比更多的標簽,發現自己認識的不足!
