`

实例045 - 用数组设置JTable表格的列名与列宽

 
阅读更多

心法领悟045:给表格列名留个位置。

如果直接将表格控件添加到滚动面板以外的容器中,首先应该通过JTable类的getTableHeader()方法获取表格的JTableHeader表头类的对象,然后再将该对象添加到容器的相应位置,否则表格将没有表头,无法显示任何列名称。

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.util.Arrays;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.UIManager;

public class ArrayCreateTable extends JFrame {
    
    private JPanel contentPane;
    private JScrollPane scrollPane;
    private JTable table;
    
    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        try {
            UIManager
                    .setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
        } catch (Throwable e) {
            e.printStackTrace();
        }
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    ArrayCreateTable frame = new ArrayCreateTable();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
    
    /**
     * Create the frame.
     */
    public ArrayCreateTable() {
        setTitle("\u7528\u6570\u7EC4\u8BBE\u7F6EJTable\u8868\u683C\u7684\u5217\u540D\u4E0E\u5217\u5BBD");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 557, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);
        contentPane.add(getScrollPane(), BorderLayout.CENTER);
    }
    
    private JScrollPane getScrollPane() {
        if (scrollPane == null) {
            scrollPane = new JScrollPane();
            scrollPane.setViewportView(getTable());
        }
        return scrollPane;
    }
    
    private JTable getTable() {
        if (table == null) {
            table = new JTable();
            // 定义列名数组
            String[] columns = { "星期一", "星期二", "星期三", "星期四", "星期五", "星期六",
                    "星期日" };
            // 定义列宽数组
            int[] columnWidth = { 10, 20, 30, 40, 50, 60, 70 };
            // 创建表格数据模型
            DefaultTableModel model = new DefaultTableModel(columns, 15);
            table.setModel(model);// 设置表格数据模型
            TableColumnModel columnModel = table.getColumnModel();// 获取列模型
            int count = columnModel.getColumnCount();// 获取列数量
            for (int i = 0; i < count; i++) {// 遍历列
                TableColumn column = columnModel.getColumn(i);// 获取列对象
                column.setPreferredWidth(columnWidth[i]);// 以数组元素设置列的宽度
            }
        }
        return table;
    }
}

 

 

  • 大小: 10.1 KB
分享到:
评论

相关推荐

    Java经典编程源码基础例程300.zip

    实例034 用数组设置JTable表格的 列名与列宽 49 实例035 使用按钮控件数组实现 计算器界面 51 实例036 通过复选框控件数组实现 添加多个复选框控件 52 实例037 使用选择排序法对数组排序 53 实例038 使用冒泡排序法...

    JTable颜色渲染代码

    - **实例化**:通过`new JTable(data, columnNames)`创建JTable实例,第一个参数是表格数据,第二个参数是列名数组。 - **列选择允许**:`table.setColumnSelectionAllowed(true)`表示允许用户只选中一列而不选中...

    java表格jtable源码

    Java表格组件JTable是Swing库中的核心组件之一,它用于在GUI应用程序中展示数据集。JTable不仅可以显示数据,还允许用户与数据进行交互,如编辑、排序和选择。在Java编程中,掌握JTable的使用对于创建功能丰富的图形...

    java 中 Jtable的用法

    为了创建一个JTable实例,我们需要准备两个主要的数据结构:一个是表示列名的`String`数组,另一个是存储数据的二维对象数组。 ##### 示例代码分析 ```java // 定义列名 String[] columnNames = {"Product", ...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例045 用数组设置JTable表格的列名与列宽 55 3.2 数组操作 57 实例046 数组的下标界限 57 实例047 按钮控件数组实现计数器界面 58 实例048 复选框控件数组 59 实例049 用数组反转字符串 60 3.3 数组排序与查询 61 ...

    Java中JTable的用法.doc

    通过`new JTable(data, columnNames)`创建JTable实例,即可将数据和列名关联起来。 JTable的布局和大小可以进行调整。例如,`table.setPreferredScrollableViewportSize(new Dimension(300, 80))`设定了表格的理想...

    北大青鸟第一学期JAVA课件第12章

    例如,定义一个二维对象数组cells存储数据,然后创建JTable实例,如`JTable jTable1 = new JTable(cells, columns);`。 为了实际操作JTable,学习者需要创建一个新的Java应用项目,比如名为TableDemo。在Eclipse或...

Global site tag (gtag.js) - Google Analytics