心法领悟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; } }
相关推荐
实例034 用数组设置JTable表格的 列名与列宽 49 实例035 使用按钮控件数组实现 计算器界面 51 实例036 通过复选框控件数组实现 添加多个复选框控件 52 实例037 使用选择排序法对数组排序 53 实例038 使用冒泡排序法...
- **实例化**:通过`new JTable(data, columnNames)`创建JTable实例,第一个参数是表格数据,第二个参数是列名数组。 - **列选择允许**:`table.setColumnSelectionAllowed(true)`表示允许用户只选中一列而不选中...
Java表格组件JTable是Swing库中的核心组件之一,它用于在GUI应用程序中展示数据集。JTable不仅可以显示数据,还允许用户与数据进行交互,如编辑、排序和选择。在Java编程中,掌握JTable的使用对于创建功能丰富的图形...
为了创建一个JTable实例,我们需要准备两个主要的数据结构:一个是表示列名的`String`数组,另一个是存储数据的二维对象数组。 ##### 示例代码分析 ```java // 定义列名 String[] columnNames = {"Product", ...
实例045 用数组设置JTable表格的列名与列宽 55 3.2 数组操作 57 实例046 数组的下标界限 57 实例047 按钮控件数组实现计数器界面 58 实例048 复选框控件数组 59 实例049 用数组反转字符串 60 3.3 数组排序与查询 61 ...
通过`new JTable(data, columnNames)`创建JTable实例,即可将数据和列名关联起来。 JTable的布局和大小可以进行调整。例如,`table.setPreferredScrollableViewportSize(new Dimension(300, 80))`设定了表格的理想...
例如,定义一个二维对象数组cells存储数据,然后创建JTable实例,如`JTable jTable1 = new JTable(cells, columns);`。 为了实际操作JTable,学习者需要创建一个新的Java应用项目,比如名为TableDemo。在Eclipse或...