当前位置: 首页 > 知识库问答 >
问题:

具有两种数据类型的JTable单元格

李建中
2023-03-14
class IconAndStringRenderer extends DefaultTableCellRenderer {

private static final long serialVersionUID = 3606788739290618405L;

public Component getTableCellRendererComponent(JTable table, Object value,
                          boolean isSelected, boolean hasFocus, int row, int column) {
    super.getTableCellRendererComponent(table, value,
                          isSelected, hasFocus, row, column);
    if (value instanceof Icon) {

      setIcon((Icon) value);
      setText("");
    } 
    return this;
  }
}
        private static final long serialVersionUID = 8058795799817761161L;

        public Class<?> getColumnClass(int column) {
            if (column == TARGET_COLUMN)
                return ImageIcon.class;
            else
                return super.getColumnClass(column);
        }
    };

如何设置文本颜色,我将使用setForebackground(color c),但如果我使用它,图像不会被打乱。

有可能使它与JLabel一起工作吗?在修改单元格的线程中设置所需的Jlabel(带有图像或文本),只需设置Valueat(label,row,column);

共有1个答案

东方俊力
2023-03-14

您需要一个自定义呈现器,它可以理解您使用的两种类型。

例如:

public class IconAndStringRenderer extends DefaultTableCellRenderer {
  public Component getTableCellRendererComponent(JTable table, Object value,
                          boolean isSelected, boolean hasFocus, int row, int column) {
    super.getTableCellRendererComponent(table, value,
                          isSelected, hasFocus, row, column);
    if (value instanceof Icon) {
      setText("");
      setIcon((Icon) value);
    }
    return this;
  }
}

尝试将该类设置为列呈现器

 类似资料:
  • 问题内容: 我可以用来存储多种不同类型的数据(整数/字符串/等)?我来自PHP背景,可以将不同类型的数据存储到数组中,但是我不知道如何在Java中进行操作。 举个例子: 如何用Java做类似的事情? 问题答案: Java是一种强类型语言。在PHP或Javascript中,变量没有严格的类型。但是,在Java中,每个对象和基元都有严格的类型。您可以将多种类型的数据存储在Array中,但只能将其作为对

  • 问题是: 创建一个名为Duo的泛型类,它有两个参数a和B。声明一个名为a类型的第一个变量,以及一个名为B类型的第二个变量。创建一个接受这两个参数的构造函数。在构造函数中,将这些参数分别分配给声明的变量。 这是我能想到的解决方案: 然后,当我继续问下一个问题时,我被绊住了。问题是: 使用问题4中的Duo类声明并创建两个对象,如下所示: a) 第一个名为sideShape的对象分别由字符串类型和整数类

  • 我正在使用recyclerView,我成功地扩展了两个视图,但每个视图的内容都来自不同的json数据类型。我尝试在适配器中传递这两个数据类型,但它们没有正确绑定 > 源代码 公共类SimpleStringRecycleWebAdapter:RecycleWebView。适配器{ } 公共类SimpleViewHolder:RecyclerView。ViewHolder{public string

  • 我有一个带参数的函数。此参数必须是两种接口之一。所以我这样写: 但我收到了以下错误。 以下是接口: 因特拉加: 内溶: 我不知道有什么问题。假设函数的参数可以有两种不同的结构。我不知道为什么Tslink会标记它。 提前感谢您的帮助。

  • 我有一个JTable,它应该是2列(String,JComboBox)。当我初始化表时,一切看起来都很好。只要一个I在表中选择了一个值,JComboBox单元格就会获取所选项的数据类型。 我想保持JCOmboBox在那里,让它触发数据更改事件,表忽略该列中的数据更改,并保持ComboBox填充。 我的表将此作为覆盖

  • 我在jtable中添加复选框时遇到了一点问题。我的jtable中有四列,最后两列有复选框。jtable中的数据来自我的数据库。这是我的错误“线程中的异常”AWT-EventQueue-0“java.lang.ClassCastException:java.lang.String无法强制转换为java.lang.Boolean”,在我的数据库中有两个“是/否”列,分别是“存在”和“超时”。如何解决此