Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
图像未在JTable(Java Swing)中显示_Java_User Interface_Swing_Jtable_Gui Designer - Fatal编程技术网

图像未在JTable(Java Swing)中显示

图像未在JTable(Java Swing)中显示,java,user-interface,swing,jtable,gui-designer,Java,User Interface,Swing,Jtable,Gui Designer,嗨,我已经创建了以下代码。问题是图像未显示在JTable列中 我扩展了DefaultTableModel并重写了getColumnClass方法。有人建议这是一种方法。有什么线索吗?代码如下 //package javaapplication12; import javax.swing.*; public class NewJFrame2 extends javax.swing.JFrame { /** Creates new form NewJFrame */ publi

嗨,我已经创建了以下代码。问题是图像未显示在JTable列中

我扩展了DefaultTableModel并重写了getColumnClass方法。有人建议这是一种方法。有什么线索吗?代码如下

//package javaapplication12;

import javax.swing.*;

public class NewJFrame2 extends javax.swing.JFrame {

    /** Creates new form NewJFrame */
    public NewJFrame2() {
        initComponents();
    }


    public class imageTableModel extends javax.swing.table.DefaultTableModel

   {
       imageTableModel(Object[][] data, Object[] columnNames)
       {
           super(data,columnNames);
       }

@Override
        public Class getColumnClass(int column)
         {

            if (column == 0)
         {

                return ImageIcon.class;
        }
            return Object.class;
    // other code; default to Object.class
       }
    }


    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jTable1.setModel(new imageTableModel(
            new Object [][] {
                {new ImageIcon("simply.jpg"), "pp"},

            },
            new String [] {
                "image", "name"
            }
        ));
        jScrollPane1.setViewportView(jTable1);


        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(19, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 275, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(19, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NewJFrame2().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    // End of variables declaration

}
//包javaapplication12;
导入javax.swing.*;
公共类NewJFrame2扩展了javax.swing.JFrame{
/**创建新表单NewJFrame*/
公共NewJFrame2(){
初始化组件();
}
公共类imageTableModel扩展了javax.swing.table.DefaultTableModel
{
imageTableModel(对象[][]数据,对象[]列名称)
{
超级(数据、列名称);
}
@凌驾
公共类getColumnClass(int列)
{
如果(列==0)
{
返回ImageIcon.class;
}
返回Object.class;
//其他代码;默认为Object.class
}
}
私有组件(){
jScrollPane1=newjavax.swing.JScrollPane();
jTable1=newjavax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTable1.setModel(新的imageTableModel(
新对象[][]{
{newImageIcon(“simply.jpg”),“pp”},
},
新字符串[]{
“图像”、“名称”
}
));
jScrollPane1.setViewportView(jTable1);
javax.swing.GroupLayout=newjavax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(布局);
layout.setHorizontalGroup(
createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1,javax.swing.GroupLayout.PREFERRED\u SIZE,375,javax.swing.GroupLayout.PREFERRED\u SIZE)
.addContainerGap(19,简称最大值))
);
layout.setVerticalGroup(
createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1,javax.swing.GroupLayout.PREFERRED_SIZE,275,javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(19,简称最大值))
);
包装();
}// 
/**
*@param指定命令行参数
*/
公共静态void main(字符串参数[]){
invokeLater(new Runnable()){
公开募捐{
新建NewJFrame2().setVisible(true);
}
});
}
//变量声明-不修改
私有javax.swing.JScrollPane-jScrollPane1;
私有javax.swing.JTable jTable1;
//变量结束声明
}

这是正确的方法,但是找不到正确的jpg。更改您的代码以将其作为资源URL进行查找,它应该能够正确地找到它。以下更改在我的机器上运行良好:

    jTable1.setModel(new imageTableModel(
        new Object [][] {
            {new ImageIcon(getClass().getClassLoader().getResource("simply.jpg")), "pp"},

        },
        new String [] {
            "image", "name"
        }
    ));

这是正确的方法,但是没有正确找到您的jpg。更改您的代码以将其作为资源URL进行查找,它应该能够正确地找到它。以下更改在我的机器上运行良好:

    jTable1.setModel(new imageTableModel(
        new Object [][] {
            {new ImageIcon(getClass().getClassLoader().getResource("simply.jpg")), "pp"},

        },
        new String [] {
            "image", "name"
        }
    ));

副本。你没有试过任何建议的答案吗?我试着走最简单的路线。如果你用谷歌搜索jtable图像单元格。它为您指向重复的。你没有试过任何建议的答案吗?我试着走最简单的路线。如果你用谷歌搜索jtable图像单元格。它指向你