龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

Java Swing中的表格(JTable)和树(JTree)组件使用实例

时间:2014-10-14 11:11来源:网络整理 作者:网络 点击:
分享到:
这篇文章主要介绍了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:

代码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,指定数组的每个元素作为不被显示的新根节点的子节点。

精彩图集

赞助商链接