大佬教程收集整理的这篇文章主要介绍了着色jTable行,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是有关如何组合列颜色和行颜色的示例。您基本上是在tableCellRenderer中执行测试,以查看背景是否应为一种颜色或另一种颜色。
import java.awt.color;
import java.awt.Component;
import java.util.Enumeration;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JscrollPane;
import javax.swing.Jtable;
import javax.swing.SwingUtilitIEs;
import javax.swing.table.DefaulttableCellRenderer;
import javax.swing.table.DefaulttableModel;
import javax.swing.table.tableCellRenderer;
import javax.swing.table.tablecolumn;
public class Testtable {
public class myTableCellRenderer extends DefaulttableCellRenderer implements tableCellRenderer {
@OverrIDe
public Component gettableCellRendererComponent(Jtable table, Object value, Boolean isSELEcted, Boolean hasFocus, int row, int column) {
setBACkground(null);
super.gettableCellRendererComponent(table, value, isSELEcted, hasFocus, row, column);
setText(String.valueOf(value));
Boolean interesTingRow = row % 5 == 2;
Boolean secondcolumn = column == 1;
if (interesTingRow && secondcolumn) {
setBACkground(color.oRANGE);
} else if (interesTingRow) {
setBACkground(color.YELLOW);
} else if (secondcolumn) {
setBACkground(color.RED);
}
return this;
}
}
private JFrame f;
private Jtable table;
protected voID initUI() {
Vector<Vector<Object>> data = new Vector<Vector<Object>>();
Vector<String> columnames = new Vector<String>();
columnames.add("Col 0");
columnames.add("Col 1");
columnames.add("Col 2");
for (int i = 0; i < 20; i++) {
Vector<Object> v = new Vector<Object>();
v.add(i % 3 == 0 ? "Hello" : "World");
v.add("Some data in row " + (i + 1));
v.add("Some other data in row " + (i + 1));
data.add(v);
}
table = new Jtable(new DefaulttableModel(data, columnames));
Enumeration<tablecolumn> en = table.getcolumnModel().getcolumns();
while (en.hasMoreElements()) {
tablecolumn tc = en.nextElement();
tc.setCellRenderer(new myTableCellRenderer());
}
f = new JFrame();
f.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);
f.setLOCATIOnrelativeTo(null);
f.add(new JscrollPane(tablE));
f.pack();
f.setVisible(true);
}
public static voID main(String[] args) {
SwingUtilitIEs.invokelater(new Runnable() {
@OverrIDe
public voID run() {
new Testtable().initUI();
}
});
}
}
我想为jTable中的特定行着色..i通过使用此代码对列进行了处理,
private class CustomcatellRenderer extends DefaultTableCellRenderer {
/* (non-JavadoC)
* @see
javax.swing.table.DefaultTableCellRenderer#getTableCellRendererComponent(javax.swing.JTable,java.lang.object,Boolean,int,int)
*/
@Override
public Component getTableCellRendererComponent(JTable table,Object value,Boolean isSELEcted,Boolean hasFocus,int row,int column) {
Component rendererComp = super.getTableCellRendererComponent(table,value,isSELEcted,hasFocus,row,column);
//Set foreground color
// rendererComp.setForeground(Color.red);
//Set BACkground color
rendererComp .setBACkground(Color.pink);
return rendererComp ;
}
}
我使用上面的代码调用
jTable1.getcolumnModel().getcolumn(3).setCellRenderer(new CustomcatellRenderer());
但是我想对jTable中的行执行相同的操作。对于行,则没有getcolumnModel()或getcolumn()。那么替代方法是什么呢?我正在使用Java
Swing在Netbeans中进行此操作。
以上是大佬教程为你收集整理的着色jTable行全部内容,希望文章能够帮你解决着色jTable行所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。