Tag: tablecellrenderer

Jtable具有不同类型的单元格,具体取决于数据类型

如何根据特定行显示的输入类型实现具有不同类型的单元格编辑器的JTable? 例如 一些行可以是复选框(对于布尔类型) 有些行可能是combobox(如果我想提供一组固定的选项可供选择) 某些行可以是文本字段(如果我允许任意数据)。 目前我已经实现了AbstractTableModel ,它从我的对象中获取一组自定义字段对象,并向表中添加行。 我想通过设置特定类型的单元格来进一步自定义我的表格。 我可以根据行包含的字段类型确定要使用的单元格类型。 表模型是在运行时动态创建的。

根据JTable中的第一列值着色特定行?

我正在尝试根据JTable的第一列值为特定行着色,但下面的代码根据行的索引对行进行着色。 我的表只有四列。 第一列有ID号。 我需要根据这些ID号对行进行着色。 例如,如果第一个ID为0而第二个ID也为0,则它​​们都应为“lightGray”。 好吗,拜托? table_1 = new JTable(){ public Component prepareRenderer(TableCellRenderer renderer,int Index_row, int Index_col) { Component comp = super.prepareRenderer(renderer,Index_row, Index_col); //even index, selected or not selected if (Index_row % 2==0 && !isCellSelected(Index_row, Index_col)) { comp.setBackground(Color.lightGray); } else { comp.setBackground(Color.white); } return comp; } }; 以下是它现在的样子:

Java – 是否可以将图像和String放在同一个JTable单元中?

我知道如何将String放入JTable单元格,我知道如何将图像放入JTable单元格。 但是可以将图像和字符串放入SAME JTable单元格中吗? 原因是我的JTable中有一个’status’列,目前包含绿色,琥珀色或红色图像。 并且为了满足设计要求,我需要在每个图像旁边添加一些解释性文本(因此绿色图像旁边的文本将是“在线”,琥珀色图像旁边的文本将是“未知”,文本接下来红色图像将是“离线”)。 我需要在单个列中执行此操作(或者看起来/行为类似于单个列)而不是两列。 我研究了这个,但没有找到任何信息。

如何根据单元格中的值为JTable的单个单元着色?

我正在尝试制作俄罗斯方块克隆。 游戏使用JTable作为棋盘的代表。 该板是2D整数数组。 我试图这样做,当某个单元格具有一定的值时,单元格将变为某种颜色。 我以为我的工作正常,但它无法正常工作。 我真的很感激一些帮助。 谢谢。 这是我的代码: 板: import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import javax.swing.Timer; import javax.swing.table.*; /** * @author _______________ * * Board.java * * The Board class gives information to the InitializeJTable class regarding * the data-type of the JTable elements, how many rows/columns are in the JTable, etc; * * […]

如何使用Renderer for TableHeader

甚至我也阅读并测试了@kleopatra的答案 如何正确使用客户渲染器绘制JTable中的特定单元格? 特别是一个表头颜色java swing 关于super.getTableCellRendererComponent(…)必须是返回之前的最后一行代码行,我无法通过这些建议编写正确的渲染器,因为我只能这样工作 为Borders,Horizo​​ntalAlignment和Foreground添加了JLabel ,特别是后台通过使用Component而不是JLabel引起了一些非句子,(这里不重要) 来自SSCCE import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.table.*; public class SelectedTableHeader { private JFrame frame = new JFrame(“Table Demo”); private JTableHeader header; private Object selectedColumn = null; private String[] columnNames = {“String”, “Integer”, “Float”, “Double”, “Locale & Double”, “Boolean”}; private Object[][] data = { {“aaa”, new Integer(12), […]

根据列值更改JTable行的背景颜色

嗨,我是java jtable cellrendered的新手。 我正在寻找一种适用于我的程序的方法,但我找不到运气。 这是我的Jtable Employee ID | Name | Status | Position 00565651 Roger Active Manager 00565652 Gina Active Crew 00565652 Alex Inactive Crew 00565652 Seph Active Manager 数据来自ms访问数据库,但我想更改状态列中值为“非活动”的行的背景/前景。 我在互联网上找到了很多例子,但在我的程序中都不可能。 有人能帮我吗? 这是我的模特 String[] columnNames = {“Employee ID”,”Name”, “Status”, “Position”}; DefaultTableModel model = new DefaultTableModel(columnNames, 0); 这是创建我的表以及如何从数据库中获取数据的方法 public MyList(){//my constructor frame(); loadListFromDB(); } public void […]

jtable cellrenderer在运行时更改单元格的背景颜色

我正在尝试创建一个表格和颜色特定的单元格,黄色,红色或白色,具体取决于其他列的内容。 为此,我循环填充值的行,然后检查内容。 对于当前显示在屏幕上的每一行都可以正常工作,但是当程序到达未显示的行时,或者如果用户尝试滚动每个单元格,则将其背景颜色更改为白色。 我在网上搜索了解决方案,唯一合情合理的想法是在每次循环后重置cellRenderer,这不起作用,因为它也会重置每个单元格。 我希望有人知道这方面的解决方案,或者可以让我知道我在哪里搞砸了什么。 我正在使用这个循环 for(int e = 0; e < modules.size(); e++) { gui.clearOutputStream(); gui.getOutputStream().setText("Load Modul " + modules.get(e) + "\r\n"); version = getVersion(modules.get(e)); //Update current Row updateRow(gui.getReleaseTabelle(), e); } 它调用这种方法 public void updateRow(JTable target, int row){ //… //insert Values here //… CustomRenderer cr = new CustomRenderer(); cr.tab = target; if(!target.getValueAt(row, 2).equals(target.getValueAt(row, 3))) […]

JTable Cell Renderer

我正在按照我发现的一些代码,(是的我理解它是如何工作的)它来自这里: Code Link 如果单元格值设置为“黄色”,我正在尝试设置单元格前景色 这是我的代码: public class Board extends JPanel{ private static final long serialVersionUID = 1L; int boardHeight = 20; int boardWidth = 10; JTable table; public Board() { table = new JTable(this.boardHeight, this.boardWidth); table.setDefaultRenderer(String.class, new BoardTableCellRenderer()); table.setFocusable(false); table.setShowGrid(false); table.setRowMargin(0); table.setIntercellSpacing(new Dimension(0,0)); table.setRowSelectionAllowed(false); table.setVisible(true); this.add(table); this.setPreferredSize(new Dimension(table.getPreferredSize().width, (table.getPreferredSize().height + 85))); } public void paint(Graphics […]

更改JTable中行的背景颜色

我有一个有3列的JTable。 我已经像这样为所有3列设置了TableCellRenderer (可能不是很有效?)。 for (int i = 0; i < 3; i++) { myJTable.getColumnModel().getColumn(i).setCellRenderer(renderer); } getTableCellRendererComponent()返回每行具有随机背景颜色的Component。 在程序运行时如何将背景更改为其他随机颜色?

如何使用自定义JTable单元格编辑器和单元格渲染器

我创建了一个带有自定义表格渲染和自定义单元格编辑器的JTable,它可以在图像中显示结果 我使用扩展JPanel的单独类创建了第一个表格单元格中显示的面板。 并将表值添加为, tbl.setCellEditor(new customCell()); tbl.getColumnModel().getColumn(0).setCellRenderer(new customCell()); DefaultTableModel dtm = (DefaultTableModel) tbl.getModel(); Vector v = new Vector(); v.add(new Panel()); v.add(“Test”); dtm.addRow(v); v.clear(); v.add(new Panel()); v.add(“Test 2”); dtm.addRow(v); 这是我的表自定义类来创建这个表, class customCell extends DefaultTableModel implements TableCellRenderer, TableCellEditor { public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { Panel p = new […]