Tag: cellrenderer

如何让JComboBox中的内容显示在中心?

目前我有这个JComboBox ,我怎样才能将内容集中在里面? String[] strs = new String[]{“15158133110”, “15158133124”, “15158133458”}; JComboBox com = new JComboBox(strs);

JTable的单元格渲染器 – 彩色行

我一直在四处寻找解决方案,我不能从不同的地方做头或尾,如何让我的桌子做有色行而不问我自己的问题。 从我看过的每一个地方,我都需要使用一个细胞渲染器,但问题是我不知道如何将它应用到我自己的情况。 所以我有一个简单的JTable 3列,我只想让每一行以绿色,黄色或红色突出显示,具体取决于单独变量的值(表中未显示)。 看起来它应该非常简单,但我无法做到这一点。 如果它有助于我的表定义如下: studentTableModel = new DefaultTableModel(new Object[]{“Name”, “StudentNo”, “Part”}, 0); jt_studentTable = new JTable(studentTableModel); jt_studentTable.getColumnModel().getColumn(2).setPreferredWidth(10); studentTableModel.addRow(new Object[]{“(empty)”, “(empty)”, “(empty)”}); JScrollPane jsp_tableScroller = new JScrollPane(jt_studentTable); jsp_tableScroller.setPreferredSize(new Dimension(200,190)); middleCentrePanel.add(jsp_tableScroller); 表中的行根据combobox的选择而变化。 提前致谢。

JTable使用TableCellRenderer更改单元格颜色

我在我的GUI应用程序中使用JTable作为网格来表示游戏的位置。 我希望表格的单元格表示对象的某个位置具有某种颜色,并且在某些动作上,要移动的对象(即颜色单元格在Grid / JTable中移动)。 我知道我可以通过创建一个扩展DefaultTableCellRenderer的类来改变单元格颜色,这是唯一的方法吗? 或者是否有更简单的方法来切换单元格颜色?对于这样的应用程序,JXTable是否比JTable更好? 编辑:我没有包括我需要某些单元格颜色动态更改的事实,即按钮单击,键盘点击等等,是否仍然可以使用任何TableCellRenderer ,以防我仍在使用JTable? 谢谢,

自定义TableCellRenderer不工作(表行渲染)

我正在尝试渲染我的jtable的特定行(它应该有不同的背景颜色,它应该有粗体字符)。 我发现了几个关于如何实现自定义TableCellRenderer ( 此处和此处 )以及如何使用表和本教程( 表行渲染 )的教程的问题。 我正在使用JInternalFrame来显示JTable 。 我试图实现这两个解决方案,但是没有getCellRenderer和prepareRenderer 。 在调试时,我可以看到我的新jtable正在创建,但是,我的方法中的断点没有被调用。 我的代码看起来像: this.add(createData(model)); private JComponent createData(ProfitLossTableModel model) { JTable table = new JTable(model) { public TableCellRenderer getCellRenderer(int row, int column) { if ((row == 0) && (column == 0)) { DefaultTableCellRenderer renderer = new DefaultTableCellRenderer(); renderer.setHorizontalAlignment(JLabel.RIGHT); renderer.setBackground(Color.red); return renderer; } else { return super.getCellRenderer(row, […]

如何在JTable列中设置图标?

我能够设置列的标题,但无法在JTable的第一列的所有行中设置图标。 public class iconRenderer extends DefaultTableCellRenderer{ public Component getTableCellRendererComponent(JTable table,Object obj,boolean isSelected,boolean hasFocus,int row,int column){ imageicon i=(imageicon)obj; if(obj==i) setIcon(i.imageIcon); setBorder(UIManager.getBorder(“TableHeader.cellBorder”)); setHorizontalAlignment(JLabel.CENTER); return this; } } public class imageicon{ ImageIcon imageIcon; imageicon(ImageIcon icon){ imageIcon=icon; } } 以及我的BuildTable()方法中的以下行。 public void SetIcon(JTable table, int col_index, ImageIcon icon){ table.getTableHeader().getColumnModel().getColumn(col_index).setHeaderRenderer(new iconRenderer()); table.getColumnModel().getColumn(col_index).setHeaderValue(new imageicon(icon)); } 我们如何为第一列的所有行设置它? 我已尝试使用for循环,但还没有得到行迭代来设置图标。 或者还有其他方法吗?