亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

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

2019-11-26 15:23:39
字體:
來源:轉載
供稿:網友

一:表格(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:

代碼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:

二:樹(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:

示例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:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品99久久久久久久久| 欧美日韩一区二区在线播放| 欧美大胆a视频| 亚洲视频在线观看网站| 亚洲精品国精品久久99热一| 国产精品网站入口| 欧亚精品在线观看| 国产在线视频91| 久久国产精品电影| 久久久久久免费精品| 亚洲肉体裸体xxxx137| 亚洲天堂成人在线| 这里精品视频免费| 精品久久久在线观看| 热久久99这里有精品| 欧美性猛交xxxx免费看久久久| 日本精品久久久久影院| 欧美精品www| 欧美又大又硬又粗bbbbb| 精品自在线视频| 久久久精品日本| 亚洲中国色老太| 亚洲成avwww人| www亚洲精品| 色播久久人人爽人人爽人人片视av| 国产精品美女久久久免费| 中文字幕久久久av一区| 欧美亚洲第一区| 久久福利视频网| 欧美最猛性xxxxx(亚洲精品)| 精品久久久久久久久中文字幕| 久久精品久久久久| 亚洲精品久久7777777| 中文字幕亚洲欧美日韩2019| 亚洲欧美精品一区二区| 777午夜精品福利在线观看| 亚洲人成毛片在线播放| 91在线视频九色| 日韩欧美第一页| 亚洲美女中文字幕| 久久人91精品久久久久久不卡| 亚洲欧美国产视频| 日韩一区在线视频| 国产精品99久久久久久www| 欧美黄网免费在线观看| 亚洲电影中文字幕| 欧美性猛交丰臀xxxxx网站| 亚洲精品一区久久久久久| 亚洲日本aⅴ片在线观看香蕉| 欧美日韩免费在线| 亚洲网站视频福利| 久久中文字幕在线| 96国产粉嫩美女| 成人免费看片视频| 国产中文字幕91| 亚洲一区二区三区久久| 欧美极品少妇与黑人| 国产精品欧美日韩一区二区| 日本19禁啪啪免费观看www| 亚洲影院色在线观看免费| 久久人人97超碰精品888| 日本中文字幕不卡免费| 国内偷自视频区视频综合| 福利一区视频在线观看| 日韩精品视频免费在线观看| 中文字幕日韩在线播放| 日韩av电影中文字幕| 久久精品最新地址| 亚洲欧洲av一区二区| 亚洲天堂免费在线| 欧美肥臀大乳一区二区免费视频| 欧美性猛交xxxx黑人| 97国产一区二区精品久久呦| 热久久这里只有精品| 亚洲男人天堂久| 亚洲精品按摩视频| 久久精品亚洲国产| 亚洲偷熟乱区亚洲香蕉av| 欧美日韩国产一区中文午夜| 欧美激情视频在线| 九九精品在线播放| 久久久久久久一| 精品久久久久久久久久久久久久| 不卡av日日日| 伊人久久久久久久久久久久久| 中文字幕亚洲综合久久| 亚洲另类激情图| 亚洲xxxxx| 精品中文字幕久久久久久| 国产美女高潮久久白浆| 欧美亚洲在线视频| 在线观看精品自拍私拍| 精品中文字幕久久久久久| 欧美亚洲激情在线| 中文字幕视频一区二区在线有码| 欧美日韩国产综合新一区| 日韩精品在线免费观看视频| 中文字幕日韩有码| 久久久久久亚洲精品不卡| 亚洲视频国产视频| 欧美成人国产va精品日本一级| 亚洲a级在线播放观看| 久久久精品中文字幕| 亚洲美女性视频| 日本三级韩国三级久久| 亚洲一区二区在线播放| 国产精品久久久久av| 最近2019年中文视频免费在线观看| 亚洲国产精品福利| 日韩视频免费大全中文字幕| 91精品久久久久久久久久久久久久| 成人亚洲激情网| 麻豆国产精品va在线观看不卡| 久久久精品一区二区三区| 成人久久久久爱| 亚洲第一级黄色片| 色av吧综合网| 国产中文日韩欧美| 日韩视频―中文字幕| www.日韩av.com| 欧美亚洲日本黄色| 欧美午夜xxx| 亚洲黄页网在线观看| 4438全国成人免费| 日韩精品在线私人| 国产精品狠色婷| 精品呦交小u女在线| 日韩精品视频在线观看免费| 久久成人一区二区| 永久免费看mv网站入口亚洲| 亚洲人精选亚洲人成在线| 欧美在线观看视频| 亚洲精品久久久一区二区三区| 亚洲人成毛片在线播放| 精品国产一区二区三区久久久狼| 国产成人av在线| 亚洲欧美日韩爽爽影院| 日韩中文字幕网| 在线观看日韩www视频免费| 久久久av免费| 成人黄色免费网站在线观看| 日韩**中文字幕毛片| 亚洲bt天天射| 国产亚洲精品久久久久久777| 2018中文字幕一区二区三区| 高清亚洲成在人网站天堂| 66m—66摸成人免费视频| 91福利视频网| 日韩精品视频在线观看免费| 久久中文久久字幕| 91地址最新发布| 欧美另类交人妖| 日韩激情av在线播放| 97在线视频免费观看| 欧美日韩中国免费专区在线看| 国产精品高清在线观看| 欧美老少做受xxxx高潮| 国产中文日韩欧美| 国产精品久久久久高潮| 欧美性生交大片免费| 97色在线视频| 久久av.com| 日本欧美黄网站| 91精品在线国产|