import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
class EvenOddRenderer extends DefaultTableCellRenderer {
private static final long serialVersionUID = 1L;
private List<String[]> positioins;
public EvenOddRenderer(List<String[]> _positioins){
this.positioins = _positioins;
}
public Component getTableCellRendererComponent(JTable table, Object value,boolean isSelected, boolean hasFocus,
int row, int col) {
for(int i=0; i<table.getRowCount(); i++){
if (row == i){
this.setBackground(Color.white);
}
}
for(String[] rowAndCol : this.positioins){
int _row= Integer.valueOf(rowAndCol[0]);
int _col= Integer.valueOf(rowAndCol[1]);
if( _row == row && _col == col) {
this.setBackground(Color.yellow);
}
}
this.setText(value.toString());
return this;
}
}
public class ResizeTable {
public static void main(String args[]) {
final String columnNames[] = { "#", "English", "Roman" };
final Object rowData[][] = { { "1", "one", "I" },{ "2", "two", "II" }, { "4", "tahree", "III" },{ "3", "three", "III" },{ "5", "thasdfree", "III" }};
final JTable table = new JTable(rowData, columnNames);
JScrollPane scrollPane = new JScrollPane(table);
//坐标值
String [] arr0= {"1","1"};
String [] arr1= {"1","0"};
String [] arr2= {"0","2"};
String [] arr3= {"2","2"};
String [] arr4= {"3","2"};
List<String[]> _list= new ArrayList<String[]>();
_list.add(arr0);
_list.add(arr1);
_list.add(arr2);
_list.add(arr3);
_list.add(arr4);
EvenOddRenderer tablecellRender = new EvenOddRenderer(_list);
table.setDefaultRenderer(Object.class,tablecellRender);
JFrame frame = new JFrame("Resizing Table");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(scrollPane, BorderLayout.CENTER);
frame.setBounds(400, 200, 600, 200);
frame.setVisible(true);
}
}
分享到:
相关推荐
实现设置JTable中某些单元格的背景色
然后,在`getTableCellRendererComponent`方法中,我们根据单元格的状态(是否被选中、是否有焦点)设置背景色和前景色,并将单元格的值赋给`JTextArea`的文本。 要使用这个自定义渲染器,你需要在`JTable`的列模型...
JTable的尺寸可以通过`setPreferredScrollableViewportSize()`方法来设定,该方法接收一个`Dimension`对象作为参数,用来指定表格的理想大小。 ```java table.setPreferredScrollableViewportSize(new Dimension...
本文档将详细介绍如何在Java Swing框架下使用`JTable`组件进行经典列设置以及表格颜色的自定义设置,并通过一个实际的例子展示如何实现这些功能。 #### 二、基础知识 在开始之前,我们需要了解几个基本概念: - *...
在这个例子中,我们将深入探讨如何使用`JTable`来实现单元格的合并、设置字体、字号、背景色和前景色。 首先,让我们了解`JTable`的基本用法。`JTable`通常与`DefaultTableModel`一起使用,`DefaultTableModel`负责...
要在一个单元格内放置多个按钮,我们不能直接使用默认的TableCellRenderer,因为它只能渲染单一组件。我们需要创建自定义的TableCellRenderer,覆盖`getTableCellRendererComponent`方法,返回包含多个按钮的组件,...
在Java Swing框架中,`JTable`是一个非常重要的组件,用于展示表格数据。为了更好地控制表格的表现形式及功能,`JTable`提供了多种属性设置方法。以下是对给定内容中提到的一些关键属性进行详细解析。 #### 1. `...
Java Swing中JTable渲染器与编辑器用法示例是Java Swing中一个重要的组件,主要用于显示和编辑表格数据。在Java Swing中,JTable是最基本的表格组件,渲染器和编辑器是JTable的两个重要组件。渲染器负责单元格的外观...
Java JTable 是一个非常常用的 GUI 组件,经常用于展示大量的数据。然而,在实际应用中,我们经常需要根据不同的条件来设置 JTable 的行颜色,以便更好地展示数据。下面,我们将介绍如何根据数据来设置 JTable 的行...
在Java Swing中,`JTable` 是一个非常重要的组件,常用于展示表格数据。这个文档介绍了一个方法,使得`JTable`的奇数行和偶数行可以显示不同的颜色,以增强视觉效果和用户体验。以下是对这个示例代码的详细解释: ...
在Java Swing中,JTable是一个非常有用的组件,常用于展示数据并允许用户进行交互。这个例子展示了如何创建一个具有特定列设置和颜色引用的JTable,尤其适用于GUI应用程序,如邮件程序。以下是对该文件内容的详细...
《一个复杂的JTable(转)》这篇博文主要探讨了Java Swing中的JTable组件,这是一个用于显示和编辑表格数据的重要组件。在Swing的GUI设计中,JTable经常被用来展示结构化数据,如数据库记录或者二维数组。这篇博客...
在Java Swing库中,`JTable`是一个非常重要的组件,用于展示二维数据集,通常用于创建数据表或电子表格。`JTable`是基于模型-视图-控制器(MVC)设计模式,允许用户交互地查看和编辑数据。在给定的代码段中,我们...
- 主界面:自定义JTable渲染器,根据内容改变单元格背景色。动态更新房间和客户信息表,通过model更新数据,确保信息实时性。 通过这个课程设计,学生能够深入理解数据库基础理论,掌握Java语言进行管理信息系统...
例如,可以通过实现`getTableCellRendererComponent`方法来自定义不同条件下的单元格背景色或前景色。 - **行渲染器**:对于整个行的颜色定制,可以通过覆盖`JTable`的`prepareRenderer`方法来实现。这种方式可以...
在Java Swing中,`JTable`是一个非常重要的组件,用于展示二维数据集,通常用于创建数据表格。它允许用户查看和编辑数据,是GUI应用中的常见元素。在给定的代码片段中,展示了`JTable`的一些常用方法,以及如何将`...
调整选中单元格的背景色和前景色: ```java table.setSelectionBackground(Color.yellow); table.setSelectionForeground(Color.red); ``` 此外,还可以隐藏网格线: ```java table.setShowHorizontalLines(false);...
在这个方法中,我们可以根据当前行的索引和颜色数组来决定行的背景色。 ```java public Component prepareRenderer(TableCellRenderer renderer, int row, int column) { Component c = super.prepareRenderer...