首頁  >  文章  >  Java  >  java值Swing系列之控件一

java值Swing系列之控件一

怪我咯
怪我咯原創
2017-06-25 10:22:571544瀏覽

Swing系列之控制項

JTextArea

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。

常用的方法

  • #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,需要時水平和垂直滾動條都可顯示。

  • 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。

常用的方法

  • #setHorizo​​​​ntalScrollBarPolicy(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);

    }

}

JScrollBar

滚动条的实现。用户在滚动条内移动滑块可确定显示区域中的内容。该程序通常将显示调整为滚动条的结束代表可显示内容的结束,或内容的 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值

JTextPanel

可以用以图形方式表示的属性来标记的文本组件,相当于处理文本的工具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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn