##建構子JTextArea是實作多行文字的控制項
常用的方法
#JTextArea()
建構新的TextArea。
JTextArea(Document doc)
建構新的JTextArea,使其具有給定的文檔模型,所有其他參數均預設為(null, 0, 0) 。
JTextArea(Document doc, String text, int rows, int columns)
建構具有指定行數和列數以及給定模型的新的 JTextArea。
JTextArea(int rows, int columns)
建構具有指定行數和列數的新的空 TextArea。
JTextArea(String text)
建構顯示指定文字的新的 TextArea。
JTextArea(String text, int rows, int columns)
建構具有指定文字、行數和列數的新的 TextArea。
JScrollPane建構子
#append(String text)
在最後插入文字
getColumns()
#getLineWrap()
取得文字區的換行策略
setLineWrap(boolean wrap)
設定換行的策略,如果設定為true,那麼就會在一行結束的時候自動換行
setWrapStyleWord(boolean wrap)
設定斷行不斷字,也就是在你寫單字寫到末尾的時候如果沒有寫完,那麼就會將你這個單字一起移到下一行來,而不是只移動一個單字下來,這樣就會單字不分割了
setFont(Font f)
設定字體
insert(String str, int pos)
將指定文字插入指定位置。
replaceRange(String str, int start, int end)
用給定的新文字取代從指示的起始位置到結尾位置的文字。
setRows(int rows)
設定此 TextArea 的行數。
JScrollPane()
建立一個空的(無視口的視圖)JScrollPane,需要時水平和垂直滾動條都可顯示。
JScrollPane(Component view)
建立一個顯示指定元件內容的 JScrollPane,只要元件的內容超過視圖大小就會顯示水平和垂直捲軸。
JScrollPane(Component view, int vsbPolicy, int hsbPolicy)
建立一個JScrollPane,它將視圖元件顯示在一個視窗中,視圖位置可使用一對滾動條控制。 vsbPolicy和hsPolicy是用來控制捲軸何時出現的,其中的值如下:
HORIZONTAL_SCROLLBAR_ALAWAYS
: 總是顯示水平滾動軸。
HORIZONTAL_SCROLLBAR_AS_NEEDED
:當元件內容水平區域大於顯示區域時出現水平滾動軸。
HORIZONTAL_SCROLLBAR_NEVER
: 總是不顯示水平滾動軸。
VERTICAL_SCROLLBAR_ALWAYS
: 總是顯示垂直捲動軸。
VERTICAL_SCROLLBAR_AS_NEEDED
: 當元件內容垂直區域大於顯示區域時出現垂直捲動軸。
VERTICAL_SCROLLBAR_NEVER
: 總是不顯示垂直滾動軸。
常用的方法
JScrollPane(int vsbPolicy, int hsbPolicy)
建立一個具有指定捲軸策略的空(無視口的視圖)JScrollPane。
實例
#setHorizontalScrollBarPolicy(int policy)
決定水平捲軸何時顯示在捲動窗格上。
setVerticalScrollBarPolicy(int policy)
決定垂直捲軸何時顯示在捲動窗格上。
setColumnHeaderView(Component view)
建立一個列標題視窗(如果有必要),設定其視圖然後將此列標題視窗新增至捲動窗格。設定水平表頭
setRowHeaderView(Component view)
設定垂直表頭,也就是建立一個行標題視窗
#setViewportBorder(Border viewportBorder)
圍繞視窗新增一個邊界。
package demo;import javax.swing.*;import javax.swing.border.Border;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class demo extends JFrame {private JTextField textField;public demo() {super();this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setBounds(100, 100, 400, 300); JPanel panel_North = new JPanel();this.getContentPane().add(panel_North, BorderLayout.NORTH); FlowLayout flowLayout = (FlowLayout) panel_North.getLayout(); flowLayout.setAlignment(FlowLayout.LEFT); JLabel label = new JLabel("name:"); label.setFont(new Font("微雅软黑", Font.BOLD + Font.ITALIC, 20)); panel_North.add(label); textField = new JTextField(20); textField.setFont(new Font("微雅软黑", Font.BOLD + Font.ITALIC, 20)); panel_North.add(textField); JTextArea textArea = new JTextArea(6, 30); textArea.setFont(new Font("微雅软黑", Font.BOLD + Font.ITALIC, 20)); textArea.setWrapStyleWord(true); textArea.setLineWrap(true); JPanel panel_center = new JPanel(); FlowLayout flowLayout_center = (FlowLayout) panel_center.getLayout(); flowLayout_center.setAlignment(FlowLayout.LEFT);this.getContentPane().add(panel_center, BorderLayout.CENTER); //设置中间的组件JScrollPane scrollPane = new JScrollPane(textArea); scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); //设置水平滚动条出现的时间scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);//设置垂直滚动条出现的时间panel_center.add(scrollPane); JPanel panel_header = new JPanel(); JLabel label_header = new JLabel("水平表头"); panel_header.add(label_header); scrollPane.setColumnHeaderView(panel_header); //设置水平表头JPanel panel_v = new JPanel(); JLabel label_v = new JLabel("垂直表头"); panel_v.add(label_v); scrollPane.setRowHeaderView(panel_v); //设置垂直表头}public static void main(String[] args) { demo f = new demo(); f.setVisible(true); } }
滚动条的实现。用户在滚动条内移动滑块可确定显示区域中的内容。该程序通常将显示调整为滚动条的结束代表可显示内容的结束,或内容的 100%。滚动条的开始为可显示内容的开始,或 0%。然后滑块在其边界中的位置转换为可显示内容对应的百分比。
JScrollBar()
创建具有下列初始值的垂直滚动条
JScrollBar(int orientation)
创建具有指定方向和下列初始值的滚动条,其中的值为JScrollBar.VERTICAL(垂直滚动条),JScrollBar.HORIZONTAL(水平滚动条)
JScrollBar(int orientation, int value, int extent, int min, int max)
创建具有指定方向、值、跨度、最小值和最大值的一个滚动条。value为当前滚动条位于的位置,min和max共同组成了滚动条的范围,extent表示滚动条的跨越的宽度
*
addAdjustmentListener(AdjustmentListener l)
添加一个滚动条调整的事件侦听器,例子如下:
scrollBar_1.addAdjustmentListener(new AdjustmentListener() { //添加一个事件侦听器@Overridepublic void adjustmentValueChanged(AdjustmentEvent e) { scrollBar_1=(JScrollBar)e.getSource(); //获得监听的控件,这里要强制转换成滚动条类型的textField_North.setText(""+scrollBar_1.getValue()); //r如果滚动条移动了,那么就将刻度显示在文本域中} });
setModel(BoundedRangeModel newModel)
设置处理滚动条的以下四个基本属性的模型:minimum、maximum、value 和 extent。通过这个函数可以将滚动条与其他的控件绑定在一起,下面将会演示一下JTextField绑定滚动条
//获取文本字段的可见性,如果文本字段大小大于分配给他的大小那么可以对他进行调整BoundedRangeModel boundedRangeModel = textField.getHorizontalVisibility();//设置处理滚动条的以下四个基本属性的模型:minimum、maximum、value 和 extent。scrollBar.setModel(boundedRangeModel); //通过这个的绑定,就将滚动条和文本域绑定在一起了
setOrientation(int orientation)
将滚动条的方向设置为 VERTICAL 或 HORIZONTAL。
setMaximum(int maximum)
设置模型的 maximum 属性。
setMinimum(int minimum)
设置模型的 minimum 属性。
setValue(int value)
设置当前的值
setUnitIncrement(int unitIncrement)
设置 unitIncrement 属性,设置拖曳滚动轴时,滚动轴刻度一次的变化量。
setBlockIncrement(int blockIncrement)
设置 blockIncrement 属性, 设置当鼠标在滚动轴列上按一下是,滚动轴一次所跳的区块大小
setVisibleAmount(int extent)
; 设置extent值
可以用以图形方式表示的属性来标记的文本组件,相当于处理文本的工具word文档一样,可以在其中为文本设置不同的属性
JTextPane()
创建一个新的 JTextPane。
JTextPane(StyledDocument doc)
创建具有指定文档模型的新 JTextPane。
setCharacterAttributes(AttributeSet attr, boolean replace)
将给定属性应用于字符内容,这个是将样式应用到文本的函数
getStyledDocument()
获取与编辑器关联的模型。
package demo;import javax.swing.*;import javax.swing.text.*;import java.awt.*;/** * Created by chenjiabing on 17-5-22. */public class TextPane extends JFrame {public TextPane() {super();this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setBounds(100, 100, 400, 500); JTextPane textPane = new JTextPane();// textPane.setBackground(Color.black);// textPane.setFont(new Font("微软雅黑",Font.ITALIC,20));JScrollPane scrollPane = new JScrollPane(textPane); scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); SimpleAttributeSet simpleAttributeSet = new SimpleAttributeSet(); //创建一个属性StyleConstants.setForeground(simpleAttributeSet, Color.GREEN); //设置前景色StyleConstants.setBold(simpleAttributeSet, true); //设置加粗StyleConstants.setUnderline(simpleAttributeSet, true); //设置下划线StyleConstants.setFontFamily(simpleAttributeSet, "微软雅黑"); //设置字体StyleConstants.setFontSize(simpleAttributeSet, 20); //设置字体大小StyleConstants.setItalic(simpleAttributeSet, true); //设置倾斜StyleConstants.setStrikeThrough(simpleAttributeSet, true); //设置删除线StyleConstants.setFirstLineIndent(simpleAttributeSet, 2.5f); //设置首行缩进StyleConstants.setLineSpacing(simpleAttributeSet, 20); StyleConstants.setRightIndent(simpleAttributeSet, 2.4f); textPane.setCharacterAttributes(simpleAttributeSet, true);// Document doc=textPane.getStyledDocument(); //获得关联的文本// try {// doc.insertString(doc.getLength(), "陈加兵", simpleAttributeSet); //向文本中插入字符串// }catch (BadLocationException e)// {// e.printStackTrace();// }this.getContentPane().add(scrollPane, BorderLayout.CENTER); }public static void main(String[] args) { TextPane text = new TextPane(); text.setVisible(true); } }
以上是java值Swing系列之控件一的詳細內容。更多資訊請關注PHP中文網其他相關文章!