標籤:
單行文本的輸入存在嚴重的缺陷,也不適合實際的運用,本節通過一個無功能的記事本來介紹可以進行多行輸入的JTextAre
JTextArea
JTextArea() :建立一個內容為空白的文本區
JTextArea(Document doc) :建立具有指定文檔的文本區
JTextArea(Document doc,String text,int rows,int columns) :建立具有指定文檔,行數,列數的文本區
JTextArea(int rows,int columns) :指定行數,列數的文本區
JTextArea(String text) :指定常值內容的文本區
JTextArea(String text,int rows,int columns) :指定常值內容和行數,列數的文本區
JTextArea 的一些常用方法:
public void append(String str) :將給定文本追加到文檔結尾。
boolean getLineWrap() :擷取文本區的換行策略。
public int getRows() :返回 TextArea 中的行數。
public boolean getWrapStyleWord() :擷取換行方式(如果文本區要換行)。
public void setWrapStyleWord(boolean word) :設定換行方式(如果文本區要換行)
public void insert(String str, int pos) :將指定文本插入指定位置。
public void setColumns(int columns) :設定此 TextArea 中的列數。
public void setFont(Font f) :設定當前字型。
public void setLineWrap(boolean wrap) :設定文本區的換行策略。
public void setRows(int rows) :設定此 TextArea 的行數。
public void setEditable(boolean b):設定文本區的編輯狀態。參數為true表示可編輯狀態,為false則表示不可編輯狀態
JScrollPane
JscrollPane() :建立一個捲軸,水平和垂直都可以顯示
JscrollPane(Component view) : 建立一個顯示指定組件內容的捲軸,當組件的內容超過視圖大小就會顯示水平和垂直的的捲軸
JscrollPane(Component view,int vsbPolicy,int hsbPolicy) :建立一個顯示指定組件內容的捲軸,且有指定滾動策略的捲軸
JscrollPane(int vsbPolicy,int hsbPolicy) :建立一個有指定滾動策略的捲軸
JscrollPane類的構造方法中使用的捲軸策略主要有6種:
常量 常量含義 |
HORIZONTAL_SCROLLBAR_AS_NEEDED 當需要時顯示水平捲軸 HORIZONTAL_SCROLLBAR_ALWAYS 一直顯示水平捲軸 HORIZONTAL_SCROLLBAR_NEVER 一直不顯示水平捲軸 VERTICAL_SCROLLBAR_AS_NEEDED 當需要時顯示垂直捲軸 VERTICAL_SCROLLBAR_ALWAYS 一直顯示垂直捲軸 VERTICAL_SCROLLBAR_NEVER 一直不顯示垂直捲軸 |
VERTICAL
public int getHorizontalScrollBarPolicy (): 擷取水平滾動策略值
public int getVerticalScrollBarPolicy() :擷取垂直滾動策略值
public void getHorizontalScrollBarPolicy (): 設定水平滾動策略值
public void getVerticalScrollBarPolicy() :設定垂直滾動策略值
public boolean isWheelScrollingEnabled() : 設定是否進行滾動以響應滑鼠滾輪
public void setViewportView(Conponent view) :設定捲軸中的滾動組件
public void setWheelScrollingEnabled(boolean handleWheel):啟動/禁用對滑鼠滾輪滾動的移動響應
代碼執行個體:
package ch10;import java.awt.event.*;import javax.swing.*;public class NoteTextArea extends JFrame implements ActionListener{ private JPanel jp = new JPanel (); JButton jb1 = new JButton("點我自動換行"); JButton jb2 = new JButton("點我不換行"); private JTextArea jt = new JTextArea(); private JScrollPane js = new JScrollPane(jt); public NoteTextArea() { jp.setLayout(null); jb1.setBounds(40,40,180,20); jb2.setBounds(280,40,180,20); jp.add(jb1); jp.add(jb2); jb1.addActionListener(this); jb2.addActionListener(this); js.setBounds(40,80,420,100); jp.add(js); jt.setLineWrap(false); for(int i=0;i<30;i++) { jt.append("自動換行,不換行!"); } this.add(jp); this.setBounds(80,80,300,300); this.setVisible(true); this.setTitle("記事本多行文本區"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent a) { if(a.getSource()==jb1) { jt.setLineWrap(true); } else if(a.getSource()==jb2) { jt.setLineWrap(false); } } public static void main(String args[]) { new NoteTextArea(); }}
記事本的多行文本區(文本區和捲軸)