今天帮为了给同学讲如何些Swing程序,今天还专门研究了一下怎么在JTable中添加别的组件。一般情况下JTable只认String之类的,对Swing中的组件是不认的。后来到网上搜了下,看到还是有不少人有这样的迷惑。不过也有人提出了解决之道。
JTable中有一个TableModel接口,默认情况下,有一个DefaultTableModel实现。可以通过对TableModel行列数据操作来达到对表格操作。
对于每一个Column还有个TableColumnModel。可以用table.getColumnModel()取得,这样再在getColumn( num ),就能取得TableColumn,然后设置setCellEditor(new DefaultCellEditor(new JCheckBox())),当你当TableModel单元格中可编码返回的是True,那么你就会看到选择的效果了。
但是这样还不够,因为这样的话,在表格里,显示的还是true和false这样的字符串。并不会出现JCheckBox那个框和钩。
再设置setCellRenderer(new MyTableRenderer()) 这是一个实现了TableCellRenderer接口的JCheckBox。这样Table就会把内容显示绘制交给JCheckBox了。
完整的代码是
private JTable initTable(JTable table) {
DefaultTableModel dtm = new DefaultTableModel(
new Object [] {"","姓名", "年龄", "班级", "性别"},0);
dtm.addRow(new Object[] {new Boolean(false),"fox","12","050101","男"});
table.setModel(dtm);
TableColumnModel tcm = table.getColumnModel();
tcm.getColumn(0).setCellEditor(new DefaultCellEditor(new JCheckBox()));
tcm.getColumn(0).setCellRenderer(new MyTableRenderer());
tcm.getColumn(0).setPreferredWidth(20);
tcm.getColumn(0).setWidth(20);
tcm.getColumn(0).setMaxWidth(20);
return table;
}
private class MyTableRenderer extends JCheckBox implements TableCellRenderer {
//此方法可以查考JDK文档的说明
public Component getTableCellRendererComponent( JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column ) {
Boolean b = (Boolean) value;
this.setSelected(b.booleanValue());
return this;
}
}
分享到:
相关推荐
在上面的代码中,我们实现了getTableCellRendererComponent方法,该方法负责将表格单元格中的数据渲染成可视化的组件。在这个方法中,我们首先检查是否有值,如果没有值则返回null,否则返回一个JCheckBox组件。 ...
在JavaGUI开发中,有一些可视化的插件和工具可以帮助开发者快速创建界面。例如,Eclipse的WindowBuilder和IntelliJ IDEA的Form Designer,这些工具允许开发者通过拖放方式添加组件,并实时预览界面效果,减少了编写...
【Java.GUI可视化界面编辑器 Designer v5.0.0 for Eclipse3.1】是一个专为Eclipse集成开发环境设计的GUI界面设计工具。它提供了一种直观、可视化的界面来帮助开发者创建Java图形用户界面(GUI)。在Java编程中,GUI...
在Java编程环境中,`JTable`是Swing库中的一个核心组件,用于展示二维数据集,通常用于创建表格视图。这个组件对于用户界面(UI)设计尤其重要,尤其是在需要显示和编辑数据库或其他数据源数据时。下面我们将深入...
在Java图形可视化中,我们通常会先从txt文本文件中读取成绩数据。这种文本文件通常包含学生的姓名、学号以及各科目的成绩。读取这些数据时,我们会使用`BufferedReader`或`Scanner`类来逐行读取文件内容,并将其存储...
4. 可视化操作:为了直观展示数据库中的数据,可以使用JTable或TableView组件展示数据集。这些组件可以绑定到TableModel或TableView的Items源,当数据库数据发生变化时,界面自动更新。用户可以直接在表格中编辑数据...
5. **将JTable添加到JScrollPane**:为了在窗口中正确显示`JTable`,通常需要将其放入`JScrollPane`中。 ```java JScrollPane scrollPane = new JScrollPane(table); ``` 6. **将JScrollPane添加到容器**:最后...
- `java.awt.Component`: 提供了基本的可视化组件功能。 - `java.awt.Container`: 继承自`Component`,提供了容器功能,可以包含其他组件。 - `javax.swing.JComponent`: 扩展了`Container`,提供了更高级的GUI...
Swing可视化开发插件是专门针对Swing应用设计的工具,它通常集成在集成开发环境(IDE)中,如Eclipse、IntelliJ IDEA或NetBeans。这些插件提供了一个可视化的布局编辑器,允许开发者通过拖放的方式来设计和构建Swing...
在Java编程领域,Swing库是用于创建图形用户界面(GUI)的重要工具,而`JTable`是Swing中一个核心组件,它用于显示和编辑表格数据。`JTable`实例大全提供了各种实用示例,涵盖了`JTable`的高级功能,如合并表头和...
在系统中,开发者可能会用到`JFrame`的构造函数来初始化窗口,`setVisible(true)`方法来显示窗口,以及`add()`方法来添加组件如按钮、文本框等。此外,事件监听器的使用也是窗体交互的关键,例如`ActionListener`...
4. **可视化设计工具**:在Eclipse或MyEclipse中集成的Swing GUI插件,如WindowBuilder,提供了可视化的GUI设计界面。开发者可以通过拖放组件,调整它们的属性,预览布局效果,然后自动生成Java代码。这种方法极大地...
这个工程提供了一个实际操作的例子,帮助开发者理解和学习如何在Swing应用程序中使用自定义`TableCellRenderer`和`TableCellEditor`,以提高用户界面的交互性和可视化效果。 总结一下,本示例主要涉及以下几点: 1...
总的来说,无论是Java的`JTable`还是C#的`DataGridView`,它们都是用于可视化二维数据的强大工具,提供了丰富的功能和高度的可定制性。理解和掌握这些组件的使用对于进行桌面应用开发是至关重要的。
`JTable`是用于显示和编辑表格数据的组件,它在GUI(图形用户界面)设计中非常常见,尤其适用于数据展示和交互。本资料集合了25个已经调试通过的`JTable`例子,涵盖了多种高级特性和用法,如多级表头、多级行头以及...
Java的GUI(图形用户界面)实现可视化学生管理系统是一种利用Java编程语言构建的桌面应用程序,它提供了直观的图形界面,使得用户能够通过鼠标和键盘交互来管理学生数据。在这个系统中,开发者通常会使用Java的Swing...
### Java 实现的可视化统计商品销售程序解析 #### 核心功能概述 本文将深入解析一个基于Java语言编写的可视化统计商品销售系统的核心代码及其实现逻辑。该系统旨在通过图形用户界面(GUI)的方式,方便地统计商品的...
在Java编程领域,可视化编程是一种将用户界面设计与程序逻辑分离的方法,使得开发者可以通过图形化组件来构建应用程序,而非仅仅依赖纯文本输入。本压缩包包含的资源是关于使用Java进行可视化的相关代码示例,我们...
`TreeWin.java` 文件则包含了`TreeWin` 类的定义,这个类继承自`JFrame`,并实现了`TreeSelectionListener`接口,这意味着它能够监听树组件中的节点选择变化。 在`TreeWin` 类的构造函数中,首先创建了一个`...
在实际应用中,我们有时需要根据数据的特性或者用户交互来改变表格中行的背景颜色,以提高可视化效果。在示例代码中,通过自定义 `StyleTable` 类来实现这一功能。`StyleTable` 扩展了 `JTable`,并接收一个颜色数组...