java中jtable的用法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

java中jtable的用法
一、JTable简介
JTable是Java Swing包中的一个组件,用于在图形用户界面(GUI)中显示和编辑表格数据。

它可以显示任何类型的数据,包括文本、数字、日期和图像等。

二、创建JTable
1. 创建一个空的JTable
可以通过以下代码创建一个空的JTable:
```
JTable table = new JTable();
```
2. 从二维数组创建JTable
可以通过以下代码从二维数组创建一个简单的JTable:
String[][] data = {{"John", "Doe"}, {"Jane", "Doe"}};
String[] columnNames = {"First Name", "Last Name"};
JTable table = new JTable(data, columnNames);
```
3. 从TableModel创建JTable
可以通过实现TableModel接口并使用它来创建一个定制的TableModel,然后将其传递给JTable构造函数来创建一个自定义的JTable。

4. 从数据库中获取数据并创建JTable
可以通过使用Java数据库连接(JDBC)API与数据库进行交互,并将结果集转换为TableModel,然后将其传递给JTable构造函数来从数据库中获取数据并创建一个自定义的JTable。

三、设置表格属性
1. 设置表头
可以使用以下代码设置表头:
```
String[] columnNames = {"First Name", "Last Name"};
table.setColumnIdentifiers(columnNames);
```
2. 设置表格行高和列宽
可以使用以下代码设置表格行高和列宽:
```
table.setRowHeight(30);
table.getColumnModel().getColumn(0).setPreferredWidth(100); ```
3. 设置表格背景色和前景色
可以使用以下代码设置表格背景色和前景色:
```
table.setBackground(Color.white);
table.setForeground(Color.black);
```
4. 设置表格字体
可以使用以下代码设置表格字体:
```
Font font = new Font("Arial", Font.PLAIN, 14);
table.setFont(font);
```
5. 设置表格边框
可以使用以下代码设置表格边框:
```
Border border = BorderFactory.createLineBorder(Color.black); table.setBorder(border);
```
四、渲染器和编辑器
1. 渲染器
渲染器用于将单元格中的值呈现为用户界面上的文本或图像。

默认情况下,JTable使用DefaultTableCellRenderer作为其默认渲染器。

可以通过实现TableCellRenderer接口并覆盖其getTableCellRendererComponent方法来创建自定义的渲染器。

例如,以下代码创建了一个简单的渲染器,将单元格中的值转换为大写字母:
```
class UpperCaseRenderer extends DefaultTableCellRenderer { public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
super.getTableCellRendererComponent(table, value, isSelected, hasFocus,
row, column);
setText(value.toString().toUpperCase());
return this;
}
}
```
然后可以将该渲染器应用于特定列或整个表格:
```
table.getColumnModel().getColumn(0).setCellRenderer(new UpperCaseRenderer());
// 或者
for (int i = 0; i < table.getColumnCount(); i++) {
table.getColumnModel().getColumn(i).setCellRenderer(new UpperCaseRenderer());
}
```
2. 编辑器
编辑器用于允许用户编辑单元格中的值。

默认情况下,JTable使用DefaultCellEditor作为其默认编辑器。

可以通过实现TableCellEditor接口并覆盖其getTableCellEditorComponent和getCellEditorValue方法来创建自定义的编辑器。

例如,以下代码创建了一个简单的编辑器,将单元格中的值转换为小写字母:
```
class LowerCaseEditor extends AbstractCellEditor implements TableCellEditor {
JTextField textField;
public LowerCaseEditor() {
textField = new JTextField();
}
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
textField.setText(value.toString().toLowerCase());
return textField;
}
public Object getCellEditorValue() {
return textField.getText();
}
}
```
然后可以将该编辑器应用于特定列或整个表格:
```
table.getColumnModel().getColumn(0).setCellEditor(new LowerCaseEditor());
// 或者
for (int i = 0; i < table.getColumnCount(); i++) {
table.getColumnModel().getColumn(i).setCellEditor(new LowerCaseEditor());
}
```
五、事件处理
1. 单元格选择事件
可以使用以下代码添加一个单元格选择事件监听器:
```
table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent event) {
// 处理选择事件
}
});
```
2. 单元格编辑事件
可以使用以下代码添加一个单元格编辑事件监听器:
```
table.getModel().addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent event) {
// 处理编辑事件
}
});
```
六、总结
本文介绍了JTable的基本用法,包括创建JTable、设置表格属性、渲染器和编辑器以及处理事件。

在实际应用中,可以根据需要进一步定制JTable,以满足特定的需求。

相关文档
最新文档