首页 > 解决方案 > 难以将图像添加到 JTable 单元格中

问题描述

我一直在编写一个简单的 JTable (Java) 来存储姓名、食物、饮料等。我试图将图像插入 JTable 但输出看起来很奇怪

这是用于从我的计算机中选择图像的按钮。

   public static ImageIcon ResizeImage(String ImagePath)
{   JLabel text1 = new JLabel();
   
    ImageIcon MyImage = new ImageIcon(ImagePath);
    Image img = MyImage.getImage();
    Image newImg = img.getScaledInstance(10,10, Image.SCALE_SMOOTH);
    ImageIcon image = new ImageIcon(newImg);
    
    return image;
}

btnChoose.addActionListener(new ActionListener(){
    
    @Override
    public void actionPerformed(ActionEvent e)
    {
       JFileChooser file = new JFileChooser();
      file.setCurrentDirectory(new File(System.getProperty("user.home")));
      //filter the files
      FileNameExtensionFilter filter = new FileNameExtensionFilter("*.Images", "jpg","gif","png");
      file.addChoosableFileFilter(filter);
      int result = file.showSaveDialog(null);
          File selectedFile = file.getSelectedFile();
          String path = selectedFile.getAbsolutePath();
           text1.setIcon(ResizeImage(path));
           
        
    }
    }      );

之后,这是我用来将数据插入 JTable 的添加按钮

 Object[] row = new Object[6];
    
    // button add row
    btnAdd.addActionListener(new ActionListener(){

        @Override
        public void actionPerformed(ActionEvent e) {
           
           row[0]=text1.getIcon();
            ImageIcon icon = new ImageIcon(row[0].toString());
            
            text1.setIcon(icon);
   
           
            row[1] = textName.getText();
            row[2] = textFoodG.getText();
            row[3] = textDate.getText();
    row[4] = textDay.getText();
    row[5] = textDrink.getText();
            
            
           
            
            // add row to the model
           
            model.addRow(row);}});

样本输出:

在此处输入图像描述

为什么图片栏会出现“javax.swing...”?有没有办法让图像出现在单元格内?对于我在研究中出现的任何错误,我深表歉意,但我感到非常沮丧,以至于我无法弄清楚我的代码出了什么问题。

标签: javaimageswingbuttonjtable

解决方案


推荐阅读