java - 将图标放入 JTable 单元格会更改其背面颜色

标签 java swing

我在 jtable 的单元格中放置了一些图标,但问题是它正在将其背景颜色更改为表格的背景颜色....我希望它将其更改为行的背景颜色...而且当它被选择时它也会这样做不显示选择...这是我的代码,我如何设置图标...

 Users user;
 ConsoleUsersListTbl.getColumnModel().getColumn(1).setCellRenderer(new ImageRender());


    DefaultTableModel userTableModel = (DefaultTableModel) ConsoleUsersListTbl.getModel();

    for (int i = 0; i < userList.size()-1; i++) {

        user = userList.get(i);
        javax.swing.ImageIcon image_icon = new javax.swing.ImageIcon(user.getUser_image());
        if (image_icon.getIconWidth() > 32 || image_icon.getIconWidth() > 32) {
            InputStream in = new ByteArrayInputStream(user.getUser_image());
            BufferedImage buff_image;
            try {
                buff_image = ImageIO.read(in);
                int type = buff_image.getType() == 0 ? BufferedImage.TYPE_INT_ARGB : buff_image.getType();
                BufferedImage resizedImage = resizeImage(buff_image, type);

                image_icon.setImage(resizedImage);
                userTableModel.setValueAt(image_icon, i, 1);

            } catch (IOException ex) {
                Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
            }
        } else {
            userTableModel.setValueAt(image_icon, i, 1);
        }

这是输出...... enter image description here

Edit1 here is my Image Render class ;and making setOpaque true makes my icons white..

public class ImageRender extends  DefaultTableCellRenderer {
JLabel lable = new JLabel();
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    lable.setIcon((ImageIcon)value);
    lable.setOpaque(true);
    return lable;
}
}

最佳答案

我认为您需要实现所讨论的自定义单元格渲染器 here并且还描述了here 。如果当前单元格处于焦点或选定状态,渲染器可以访问信息,因此您可以以任何您想要的方式调整背景、前景甚至内容。请注意,组件可能是不透明的(有自己的背景)或不透明(父背景或其他内容通过它可见)。这是通过 setOpaque(boolean) 控制的.

关于java - 将图标放入 JTable 单元格会更改其背面颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14152835/

相关文章:

java - 图形和小程序

Java JFrame .setSize(x, y) 不工作?

java - CardLayout - 使其占用最少的空间

Java : class org. apache.poi.openxml4j.util.ZipSecureFile$ThresholdInputStream 无法转换为类 java.util.zip.ZipFile$ZipFileInputStream

java - USACO 是否仍推荐使用 StringTokenizer?

java - 如何将C++中的反向函数代码转换成Java

java - 使用 gradle 3.0.0-alpha2 时 Android Studio 3.0 Canary 2 : Failed to apply plugin,

java - 将其他类的图像添加到 JFrame

java - 有没有办法让Jikes RVM通过GUI运行Java应用程序?

java - 使用并发类并行处理目录中的文件