Tag: tablecellrenderer

jTable细胞背景颜色

在任何人告诉我去谷歌搜索它之前,我已经做到了,到目前为止每一种方法都没有用。 我曾尝试使用渲染器为jTable的单元格着色,但它们没用,因为它们落后于桌面而无法看到。 这是我的代码: TableCellRenderer Tcr = jTable1.getCellRenderer(x, y); Component c = Tcr.getTableCellRendererComponent(jTable1, jTable1.getValueAt(x, y), false, false, x, y); if(x > 0 && x 1 && y 24){ setBackground(java.awt.Color.red); } } } } 我没有把它放到渲染器类中因为它滞后,我把它放在一个双重的cicle中,特别是放入第二个cicle中。 我希望它为超过24的单元格着色,就像现在一样,如果我写的话,它不起作用 c.setBackground(Color.red); 它完全为桌子着色 编辑 如我所知,我创建了一个描述我的问题的小例子,我不知道是否有一个特定的方式来发布一个可运行的例子,但是下面的代码(在netbeans中)代表完整的程序: /* * To change this license header, choose License Headers in Project Properties. * To change this […]

未调用特定于类的渲染器组件

我有一个JTable设置为在同一列中显示String和Boolean值。 我有以下代码来为这两种对象类型设置渲染器。 table.setDefaultRenderer(Boolean.class, new BooleanHandler()); table.setDefaultRenderer(String.class, new StringHandler()); table.setDefaultRenderer( Object.class, new DefaultTableCellRenderer() { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { System.out.println(“Inside overridden function”); return super.getTableCellRendererComponent(table, value, isSelected, hasFocus,row, column); } } ); 我面临的问题是,Object的渲染器总是被调用而不是布尔或String。 我尝试删除Object的渲染器,但仍然没有运气。

getTableCellRendererComponent参数的含义

这是我的第一个StackOverflow问题,所以如果我做了一些非常愚蠢的事情,请宽容一点! 对于Java,我是一个菜鸟,特别是swing,我无法理解TableCellRenderer接口的getTableCellRendererComponent函数(与TableCellEditor接口的getTableCellEditorComponent函数类似)。 具体来说,我不明白第二个参数(对象类型)的要点。 这个值是不是来自给定行和列的给定JTable? 如果是这样,为什么还要为第二个参数烦恼呢? 我已经做了很多谷歌搜索,但似乎没有人回答这个问题(或者我的大脑有一些故障的神经元,鉴于过去的历史,这不是一个不太可能的解释……) 我很感激你的帮助! 谢谢

一起使用TableCellRenderer和getColumnClass

当我将getcolumn类添加到我的abstracttablemodel时,我无法使用我的自定义TableCellRenderer来设置背景颜色。 (我用它来排序,对齐数字列) public Class getColumnClass(int columnIndex) { Object o = getValueAt(0, columnIndex); if (o == null) { return Object.class; } else { return o.getClass(); } } 这充满了我的代码。 import java.awt.*; import java.text.DecimalFormat; import javax.swing.*; import static javax.swing.JFrame.EXIT_ON_CLOSE; import javax.swing.table.*; public class DemoRenderer extends JFrame { public static void main( String[] args ) { DemoRenderer frame = […]

更改JTable中特定行的颜色

我正在寻找如何更改我的JTable中某些行的颜色,这些行在一个名为Notfoundrow的整数向量中有索引,但是我得到的问题是表中的所有行都将颜色变为红色!! 这是我的代码: package essai_trafficclass; import java.awt.Color; import java.awt.Component; import java.util.ArrayList; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; public class MonCellRenderer extends DefaultTableCellRenderer { public static ArrayList Notfoundrow1 = OneWayRelation.Notfoundrow; public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { Component cell = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); int L = 0; while […]

Swing:在计算表中闪烁特定单元格的计算效率最高的方法

我需要一种方法来引起对大型JTable(20×16!)中特定单元的注意,我想知道文本闪烁需要什么,例如900毫秒开启和100毫秒关闭。 (我熟悉TableCellRenderer的概念) 有没有办法只针对相关单元格执行此操作,而不会导致所有单元格重绘?

找到JTable单元并绘制它

我有这些数据: 行号 列号 细胞价值 我的问题是: 如何使用这些数据找到单元格? 如何在鼠标按下事件上更改JTable单元格的背景,并在鼠标释放事件中更改回正常背景? 我可以在没有用户交互的情况下突出显示JTable,意味着点击其他一些JTable单元我想通过使用给定的信息突出显示另一个JTable单元,是否可能?

如果单元格值相同,则更改JTable中的单元格背景

我有一个JTable的问题。 当我选择一个单元格然后在我选择的JTable中有相同的值单元格时,该单元格突出显示背景红色。 我不知道该怎么办…. PS:对不起,我不知道如何在这里输入代码…… ;;

JTable-绘制单元格中的内容(文本)

我有一个JTable,我有一个方法,在表行和列中实现搜索,我使用正则表达式,我想绘制(例如黄色)与单元格中的正则表达式匹配的文本。 我想绘制文本而不是单元格的背景,只绘制与reg表达式匹配的单词部分。 我的搜索方法的代码是: for (int row = 0; row <= table.getRowCount() – 1; row++) { for (int col = 0; col <= table.getColumnCount() – 1; col++) { Pattern p = Pattern.compile("(?i)" + search_txt.getText().trim()); Matcher m = p.matcher(table.getValueAt(row, col).toString().trim()); if (m.find()){ isFound = true; table.scrollRectToVisible(table.getCellRect(row, 0, true)); table.setRowSelectionInterval(row, row); break; } } }

Swing – 根据单元格的值设置单元格的颜色

我想根据单元格的值设置单元格的颜色。 谷歌搜索了一下我发现我可以使用这样的东西: public class TableCellRenderer extends DefaultTableCellRenderer { @Override public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col) { // get the DefaultCellRenderer to give you the basic component Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, col); // apply your rules if (value.toString().equals(“Red”)) c.setBackground(Color.RED); else c.setBackground(Color.GRAY); return c; […]