java swing jtable 给指定的(一个或多个)单元格设置背景色
2015-01-29 11:41
323 查看
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);
}
}
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中某些单元格的背景色
- 设置一个JTable中某些单元格的背景色
- ExtJS指定行变背景色与取到一个单元格的值
- [VB.NET]如何给DATAGRIDVIEW控件中指定的单元格设置背景色????
- 把网页的焦点设置到一个指定的链接上
- Flex学习笔记:设置一个MC到指定MC的位置
- DevExpress GridControl 设置单元格 某一行的背景色
- vbs 对excel的操作 删除、修改单元格,设置字体、背景色
- Excel根据单元格背景色批量设置格式的宏
- 把网页的焦点设置到一个指定的链接上
- vbs 对excel的操作 删除、修改单元格,设置字体、背景色 .
- [求助]求将一个单元格中的数字以文本显示的最好方法(除了设置为文本格式)[复制链接]
- Extjs grid设置单元格字体颜色,及单元格背景色
- 纯属巧合,解决了一个困扰许久的问题,关于网卡设置时提示“系统找不到指定文件”。
- Oracle9i卸载后再次安装,设置的SID相同出现“指定的SID在本机上已经存在。请指定一个不同的SID。”
- 开机默认设置一个widge在指定的屏幕上和自动在桌面上创建一个应用的快捷方式的方法
- 一个使用iframe引入指定页面的指定区域并设置框架透明的例子
- 将DataGrid 中的指定值所在的单元格更改为一个控件
- vbs 对excel的操作 删除、修改单元格,设置字体、背景色
- apache poi 设置单元格背景色