本文主要介绍一下如何给表格增加行头的问题。默认的JTable已经支持为表格设置列头啦,但是对于行头却没有提供对应的接口。要实现给表格增加行头可以从下面两种方式来考虑。
方法1:将表格的第一列作为行头,然后对其进行伪装处理,使其看起来和其他列不一样,表现起来像是一个行头。使用这种方式需要将行头的数据也作为表格里的普通数据来处理,可能会造成表头和数据划分不清晰,但是有时候这也是一种快捷的解决问题的方法。可以参考下面的示例代码
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.table.TableCellRenderer;
public class TableWithRowHeader {
public static void main(String[] args) {
final JFrame f = new JFrame("有行头的表格");
String[][] tableData = {
{"张三", "90" , "89" , "67" , "88"},
{"李四", "80" , "99" , "77" , "58"},
{"王二", "80" , "99" , "77" , "58"}
};
String[] columnNames = {"姓名\\课程", "数学", "语文", "英语", "化学"};
JTable table = new JTable(tableData, columnNames);
// 将表格的第一列作为表头,使用渲染器改变其外观,看起来像表头
table.getColumnModel().getColumn(0).setCellRenderer(new RowHeaderRenderer());
f.add(new JScrollPane(table));
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run() {
f.setVisible(true);
}
});
}
}
class RowHeaderRenderer implements TableCellRenderer
{
private JLabel label = new JLabel();
// 获取表头的字体、前景色和背景色,用来将Label伪装成表头的样子
private static Font font = (Font) UIManager.get("TableHeader.font");
private static Color fgc = (Color) UIManager.get("TableHeader.foreground");
private static Color bgc = (Color) UIManager.get("TableHeader.background");
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
// TODO Auto-generated method stub
label.setFont(font);
label.setHorizontalAlignment(SwingConstants.CENTER);
label.setText(value.toString());
label.setOpaque(true);
label.setForeground(fgc);
label.setBackground(bgc);
return label;
}
}
效果图如下:
方法2:真正为表格增加一下行头,行头里的数据将不再作为JTable的数据部分存在,而是在此JTable的外面,这里需要将JScrollPane的组件图搞出来,今天有点晚了,明天再补吧...
已经补充:
http://daimojingdeyu.iteye.com/blog/419309
- 大小: 10.7 KB
分享到:
相关推荐
JTable使用 JTable使用JTable使用JTable使用
JTable的显示效果
需要注意的是,在刷新数据时,需要避免 NullPointerException 的出现,这可以通过检查 TableModel 是否为空来避免。在刷新数据时,也可以使用 updateUI() 方法来更新组件的外观,但是这方法可能会导致性能问题。 在...
3. **设置`JTable`的行头和列头**: 如果你需要合并行头或列头,`JTableHeader`提供了`setResizingModel`和`setHeaderView`方法,你可以自定义这些部分的行为。对于列头,可以使用`DefaultTableColumnModel`的`...
实现jTable和jTree的双向联动,点击jTree会选中jTable单元格,点击jTable会选中jTree节点。
JTable的使用收藏 1.JTable与TableModel ...3.新加列,将列设为下拉框 4.表格排序 3. JTable事件响应和项目设想 4.一个游戏:《java连连看》 1.需求分析 2.编写TableModel和界面实现 3.连连看事件监听 总结和任务
### Swing之JTable详解 #### 类层次结构图 在Swing框架中,`JTable`是构建GUI应用程序中表格的主要组件。它继承自`JComponent`类,这使得`JTable`能够支持丰富的图形用户界面功能。下面展示了`JTable`的类层次结构...
在Java Swing库中,`JTable`是一个非常重要的组件,用于在GUI应用程序中展示表格数据。它是`javax.swing.JTable`类的实例,提供了一个可交互的二维数据视图,允许用户浏览、编辑和操作表格中的数据。这个"JTable ...
5. **将ResultSet转换为TableModel**:为了让`JTable`能显示`ResultSet`的数据,我们需要将`ResultSet`的内容转换为`TableModel`。这通常涉及到遍历`ResultSet`,获取列名和值,然后添加到`TableModel`中。 6. **...
`autoResizeMode`属性可以设置为自动调整列宽以适应内容。 4. **隐藏/显示列**:可以通过修改`DefaultTableColumnModel`来隐藏或显示列。 5. **排序列**:`RowSorter`也可以用来对列进行排序,只需要设置适当的`...
### Java中的JTable用法详解 #### 一、概述 JTable是Swing框架中用于显示和编辑表格数据的关键组件之一。它不仅提供了强大的数据管理功能,还支持丰富的定制选项,使得开发者能够根据具体需求创建出高度个性化的...
在Java的Swing库中,`JTable`是用于创建二维数据展示的组件,它类似于电子表格。在处理`JTable`时,我们有时需要使其单元格内容支持自动换行,以便更好地显示长文本。标题“JTable自动换行”正是指向这个功能,即...
在Controller中,你需要为jTable的四个基本操作(列出、创建、更新、删除)编写对应的Action。例如: ```csharp public JsonResult GetEmployees() { var employees = db.Employees.ToList(); return Json(new { ...
在Java Swing库中,`JTable`是一个非常重要的组件,用于在GUI应用程序中展示数据集。它是`javax.swing.JTable`类的一个实例,可以用来显示和编辑表格数据。本教程将针对`JTable`的初步编程进行讲解,尤其适用于...
在Java Swing库中,JTable是一个非常重要的组件,用于显示和操作二维数据集。这个组件在用户界面设计中广泛使用,因为它提供了丰富的交互性,包括排序、选择和编辑表格数据。"复杂JTable-跨列表头"是一个特殊实现,...
`JFrame`的`contentPane`添加了`JScrollPane`,并设置布局管理器为`BorderLayout.CENTER`,使得表格居中显示。最后,`JFrame`设置了标题、调整大小并显示出来。 表格由两部分构成:行标题(Column Header)和行对象...
Swing中的JTable组件是Java GUI开发中用于展示表格数据的重要工具,它是Swing库中的一个核心组件。JTable能够方便地创建和管理表格数据,同时也支持用户交互,如编辑单元格、排序、选择行等操作。下面我们将深入探讨...
### Swing之JTable详解 在Java的图形用户界面(GUI)开发中,Swing库提供了丰富的组件以构建桌面应用程序,其中`JTable`是用于展示和编辑表格数据的关键组件。以下是对`JTable`的深入解析,包括其构造、属性、事件...
同时,我们还需要为表头添加一个可选的`JCheckBox`,这可以通过自定义`TableCellRenderer`实现。`CheckHeaderCellRenderer.java`应该包含了这个自定义渲染器的实现。 ```java public class TestFrame extends ...
在某些情况下,你可能需要将`JTree`或`JTable`中的数据解析为格式化的文本并显示在`JTextPane`中。而`JSplitPane`是一个布局管理器,用于将两个组件(如`JTree`和`JTable`)放置在一个可调整大小的分隔面板中,用户...