一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java Swing中的表格(JTable)和樹(JTree)組件使用實例

Java Swing中的表格(JTable)和樹(JTree)組件使用實例

2019-12-02 14:11Java教程網 JAVA教程

這篇文章主要介紹了Java Swing中的表格(JTable)和樹(JTree)組件使用實例,本文同時講解了表格和樹的基本概念、常用方法、代碼實例,需要的朋友可以參考下

一:表格(JTable):

1.基本概念:

表格(JTable)是Swing 新增加的組件,主要是為了將數據以表格的形式顯示.給顯示大塊數據提供了簡單的機制.

2.常用構造方法:

 * JTable():使用系統默認的模型創建一個JTable 實例.
 * JTable(int numRows,int numColumns):創建一個使用DefaultTableModel 指定行、列的空表格。
 * JTable(Object[ ][ ] rowData,Object[ ][ ] columnNames):創建一個顯示二維數據的表格。

可以直接使用表格列名數組和表格數據數組來創建表格.

 * JTable(TableModel dm):創建一個指定數據模式和默認字段模式的JTable 實例。

通常用數據模型類的對象來保存數據,而表格模型是通過表格列名數組和表格數據數組來創建的.

3.常用方法:

4.綜合案例:

代碼1:

復制代碼代碼如下:

public class JTableDemo1 extends JFrame {  
  
    //定義表格  
    JTable table;  
    //定義滾動條面板(用以使表格可以滾動)  
    JScrollPane scrollPane;  
    //定義數據模型類的對象(用以保存數據),  
    DefaultTableModel tableModel;  
  
    public JTableDemo1() {  
        super();  
        setTitle("表格模型與表格");  
  
        scrollPane = new JScrollPane();  
          
        // 定義表格列名數組  
        String[] columnNames = { "A", "B","C" };  
        // 定義表格數據數組  
        String[][] tableValues = { { "A1", "B1","C1" }, { "A2", "B2","C2" },  
                { "A3", "B3","C3" }, { "A4", "B4","C4" } };  
  
        // 創建指定表格列名和表格數據的表格模型類的對象  
        tableModel = new DefaultTableModel(tableValues, columnNames);  
        // 創建指定表格模型的表格  
        table = new JTable(tableModel);  
  
        //設置 RowSorter(RowSorter 用于提供對 JTable 的排序和過濾)。  
        table.setRowSorter(new TableRowSorter<DefaultTableModel>(tableModel));  
        scrollPane.setViewportView(table);  
        getContentPane().add(scrollPane, BorderLayout.CENTER);  
  
        setBounds(300, 200, 400, 300);  
        setVisible(true);  
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
    }  
  
    public static void main(String args[]) {  
        new JTableDemo1();  
    }  

 

截圖1:

Java Swing中的表格(JTable)和樹(JTree)組件使用實例

代碼2:

 

復制代碼代碼如下:

import java.awt.*;  
import javax.swing.*;  
  
public class JTableDemo3 {  
  
    JFrame frame;  
    JPanel panel;  
    JScrollPane scrollPane1, scrollPane2, scrollPane3;  
    JTable jtable1, jtable2, jtable3;  
  
    public JTableDemo3() {  
        frame = new JFrame("JTableDemo");  
  
        jtable1 = new JTable(8, 6);  
  
        final Object[] columnNames = { "姓名", "性別", "家庭地址",// 列名最好用final修飾  
                "電話號碼", "生日", "工作", "收入", "婚姻狀況", "戀愛狀況" };  
        Object[][] rowData = {  
                { "ddd", "男", "江蘇南京", "1378313210", "03/24/1985", "學生", "寄生中",  
                        "未婚", "沒" },  
                { "eee", "女", "江蘇南京", "13645181705", "xx/xx/1985", "家教", "未知",  
                        "未婚", "好象沒" },  
                { "fff", "男", "江蘇南京", "13585331486", "12/08/1985", "汽車推銷員",  
                        "不確定", "未婚", "有" },  
                { "ggg", "女", "江蘇南京", "81513779", "xx/xx/1986", "賓館服務員",  
                        "確定但未知", "未婚", "有" },  
                { "hhh", "男", "江蘇南京", "13651545936", "xx/xx/1985", "學生", "流放中",  
                        "未婚", "無數次分手后沒有" } };  
  
        jtable2 = new JTable(rowData, columnNames);  
  
        jtable3 = new JTable(rowData, columnNames);  
        jtable3.setPreferredScrollableViewportSize(new Dimension(600, 100));// 設置表格的大小  
        jtable3.setRowHeight(30);// 設置每行的高度為20  
        jtable3.setRowHeight(0, 20);// 設置第1行的高度為15  
        jtable3.setRowMargin(5);// 設置相鄰兩行單元格的距離  
        jtable3.setRowSelectionAllowed(true);// 設置可否被選擇.默認為false  
        jtable3.setSelectionBackground(Color.white);// 設置所選擇行的背景色  
        jtable3.setSelectionForeground(Color.red);// 設置所選擇行的前景色  
        jtable3.setGridColor(Color.red);// 設置網格線的顏色  
        jtable3.selectAll();// 選擇所有行  
        jtable3.setRowSelectionInterval(0, 2);// 設置初始的選擇行,這里是1到3行都處于選擇狀態  
        jtable3.clearSelection();// 取消選擇  
        jtable3.setDragEnabled(false);// 不懂這個  
        jtable3.setShowGrid(true);// 是否顯示網格線  
        jtable3.setShowHorizontalLines(true);// 是否顯示水平的網格線  
        jtable3.setShowVerticalLines(true);// 是否顯示垂直的網格線  
        jtable3.setValueAt("tt", 0, 0);// 設置某個單元格的值,這個值是一個對象  
        jtable3.doLayout();  
        jtable3.setBackground(Color.cyan);  
  
        // JTable最好加在JScrollPane上以實現滾動效果  
        scrollPane1 = new JScrollPane(jtable1);  
        scrollPane2 = new JScrollPane(jtable2);  
        scrollPane3 = new JScrollPane(jtable3);  
  
        panel = new JPanel(new GridLayout(0, 1));  
        panel.setPreferredSize(new Dimension(600, 400));  
        panel.setBackground(Color.black);  
        panel.add(scrollPane1);  
        panel.add(scrollPane2);  
        panel.add(scrollPane3);  
  
        frame.setContentPane(panel);  
        frame.pack();  
        frame.setVisible(true);  
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
    }  
  
    public static void main(String[] args) {  
        new JTableDemo3();  
    }  
}

 

截圖2:

Java Swing中的表格(JTable)和樹(JTree)組件使用實例

二:(JTree):

1.基本概念:

  樹(JTree):將分層數據集顯示為輪廓的控件。

2.常用構造方法:

   JTree():返回帶有示例模型的JTree。

   JTree(Object[] value):返回JTree,指定數組的每個元素作為不被顯示的新根節點的子節點。

   //只有這個構造函數可以創建多個根結點
   JTree(Object[] value):返回 JTree,指定數組的每個元素作為不被顯示的新根節點的子節點。

   JTree(TreeNode root):返回 JTree,指定的 TreeNode 作為其根,它顯示根節點。

   JTree(TreeNode root, boolean asksAllowsChildren):返回 JTree,指定的 TreeNode 作為其根,
   它用指定的方式顯示根節點,并確定節點是否為葉節點。(true設置為可添加孩子結點,再添加孩子結點).

3.代碼演示:

示例1:

 

復制代碼代碼如下:

public class JTreeDemo1 {  
      
    JFrame f;   
    Box box;  
    JTree jTree1,jTree2;  
      
    public JTreeDemo1()  
    {  
        f = new JFrame(" JTreeDemo1 ");  
        box = Box.createHorizontalBox(); //創建Box 類對象  
          
        jTree1 = new JTree();  
        jTree2 = new JTree();  
          
        //向此組件添加任意的鍵/值  
        jTree1.putClientProperty("JTree.lineStyle", "Angled");   
          
        //向Box 容器添加滾動面板  
        box.add(new JScrollPane(jTree1), BorderLayout.WEST);  
        box.add(new JScrollPane(jTree2), BorderLayout.EAST);  
          
        f.getContentPane().add(box, BorderLayout.CENTER);  
          
        f.setSize(300, 240);  
        //f.pack();  
        f.setLocation(300, 200);  
        f.setVisible(true);  
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
    }  
      
    public static void main(String[] args) {  
        new JTreeDemo1();  
    }  
}

 

截圖1:

Java Swing中的表格(JTable)和樹(JTree)組件使用實例

示例2:

 

復制代碼代碼如下:

public class JTreeDemo2 {  
  
    JFrame f;   
    JPanel p;   
    JTree jTree1,jTree2,jTree3,jTree4,jTree5,jTree6,jTree7;  
      
    public JTreeDemo2() {  
          
        f = new JFrame(" JTreeDemo2 ");  
          
        // 構造函數:JTree()  
        jTree1 = new JTree();  
          
        // 構造函數:JTree(Object[] value)  
        Object[] letters = { " a ", " b ", " c ", " d ", " e " };  
        jTree2 = new JTree(letters);  
  
        // 構造函數:JTree(TreeNode root)(TreeNode空)  
        // 用空結點創建樹  
        DefaultMutableTreeNode node1 = new DefaultMutableTreeNode(); // 定義樹結點  
        jTree3 = new JTree(node1); // 用此樹結點做參數調用 JTree的構造函數創建含有一個根結點的樹  
  
        // 構造函數:JTree(TreeNode root)(同上,只是TreeNode非空)  
        // 用一個根結點創建樹  
        DefaultMutableTreeNode node2 = new DefaultMutableTreeNode(" Color ");  
        jTree4 = new JTree(node2); // 結點不可以顏色,默認為白面黑字  
        jTree4.setBackground(Color.lightGray);  
  
          
        // 構造函數:JTree(TreeNode root, boolean  
        // asksAllowsChildren)(同上,只是TreeNode又有不同)  
        // 使用DefaultMutableTreeNode類先用一個根結點創建樹,設置為可添加孩子結點,再添加孩子結點  
        DefaultMutableTreeNode color = new DefaultMutableTreeNode(" Color ",  
                true);  
          
        DefaultMutableTreeNode gray = new DefaultMutableTreeNode(" Gray ");  
        gray.add(new DefaultMutableTreeNode(" Lightgray "));  
        gray.add(new DefaultMutableTreeNode(" Darkgray "));  
          
        color.add(gray);  
          
        color.add(new DefaultMutableTreeNode(" Red "));  
        color.add(new DefaultMutableTreeNode(" Green "));  
  
        jTree5 = new JTree(color);  
  
          
        // 構造函數:JTree(TreeNode root)(同上,只是TreeNode非空)  
        // 通過逐個添加結點創建樹  
        DefaultMutableTreeNode biology = new DefaultMutableTreeNode(" Biology ");  
        DefaultMutableTreeNode animal = new DefaultMutableTreeNode(" Animal ");  
        DefaultMutableTreeNode mammal = new DefaultMutableTreeNode(" Mammal ");  
        DefaultMutableTreeNode horse = new DefaultMutableTreeNode(" Horse ");  
        mammal.add(horse);  
        animal.add(mammal);  
        biology.add(animal);  
          
        jTree6 = new JTree(biology);  
        horse.isLeaf();  
        horse.isRoot();  
  
          
        // 構造函數:JTree(TreeModel newModel)  
        // 用DefaultMutableTreeNodel類定義一個結點再用這個結點做參數定義一個用DefaultTreeMode  
        // 創建一個樹的模型,再用JTree的構造函數創建一個樹  
        DefaultMutableTreeNode root = new DefaultMutableTreeNode(" Root1 ");  
        DefaultMutableTreeNode child1 = new DefaultMutableTreeNode(" Child1 ");  
        DefaultMutableTreeNode child11 = new DefaultMutableTreeNode(" Child11 ");  
        DefaultMutableTreeNode child111 = new DefaultMutableTreeNode(  
                " Child111 ");  
        root.add(child1);  
        child1.add(child11);  
        child11.add(child111);  
  
        DefaultTreeModel model = new DefaultTreeModel(root);  
  
        jTree7 = new JTree(model);  
  
          
        p = new JPanel();  
        p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));  
        p.setPreferredSize(new Dimension(700, 400));  
          
        // JTree必須放在JScrollPane上  
        p.add(new JScrollPane(jTree1));   
        p.add(new JScrollPane(jTree2));  
        p.add(new JScrollPane(jTree3));  
        p.add(new JScrollPane(jTree4));  
        p.add(new JScrollPane(jTree5));  
        p.add(new JScrollPane(jTree6));  
        p.add(new JScrollPane(jTree7));  
  
          
        f.setContentPane(p);  
        f.pack();  
        f.setLocation(300, 200);  
        f.setVisible(true);  
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
    }  
  
    public static void main(String[] args) {  
          
        new JTreeDemo2();  
      
    }  
}

 

截圖2:

Java Swing中的表格(JTable)和樹(JTree)組件使用實例

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 我将她侵犯1~6樱花动漫在线看 | 丝瓜黄瓜茄子西红柿秋葵榴莲 | 亚洲欧美另类综合 | 国色天香社区在线视频免费观看 | fistingvideos头交尿眼 | 蜜桃影像传媒破解版 | 日本一区二区不卡久久入口 | h日本漫画全彩在线观看 | 美女扒开腿让男人桶爽动态图片 | 国产欧美一区二区三区免费 | 亚洲 欧美 偷自乱 图片 | 午夜A级理论片左线播放 | 欧美坐爱| 国产精品成人麻豆专区 | 免费一区在线观看 | 精品一区二区三区免费视频 | 国产亚洲精品激情一区二区三区 | 国产视频久久久久 | 91影视永久福利免费观看 | 色哟哟久久 | freesex1718处xx | 热99在线视频 | 7777奇米四色 | 国产高清在线观看 | 国产乱子伦真实china | 美女被扣逼| 欧美精品一区二区在线观看 | 精品国产成a人在线观看 | 爽新片xxxxxxx| 免费亚洲视频 | 欧美午夜精品久久久久久黑人 | 欧美一级视频免费观看 | 亚洲阿v天堂2018在线观看 | 九九99九九精彩网站 | 我半夜摸妺妺的奶C了她软件 | 美女国内精品自产拍在线播放 | 日韩高清在线免费观看 | 大学生特黄特色大片免费播放 | 性美国人xxxxx18 | 欧美成人v视频免费看 | 亚洲天天做夜夜做天天欢 |