我想让imageIcon在每个单元格中以不同的方式显示,但是由于某种原因,当我对其进行编译时,图像不会显示。它显示图像的名称,但是图像本身不显示。这是一张图片。http://i49.tinypic.com/r9ibrn.jpg
public class movies extends JFrame {
public movies() {
initComponents();
}
private void initComponents() {
panel = new JPanel();
logo = new JLabel();
pane = new JScrollPane();
setDefaultCloseOperation(EXIT_ON_CLOSE);
setBackground(new Color(255, 255, 204));
setResizable(false);
panel.setBackground(new Color(51, 51, 51));
panel.setPreferredSize(new Dimension(290, 75));
logo.setIcon(new ImageIcon(getClass().getResource("logo.png")));
logo.setName("logo");
logo.setRequestFocusEnabled(false);
logo.setVerifyInputWhenFocusTarget(false);
logo.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
ImageIcon icon1 = new ImageIcon("1.jpg");
ImageIcon icon2 = new ImageIcon("2.jpg");
ImageIcon icon3 = new ImageIcon("3.jpg");
String[] columnNames = {"Section 1", "Section 2"};
Object[][] data =
{
{icon1 + " Music", icon2 + " News"},
{icon2 + " Movies"},
{icon3 + " Games"},
};
DefaultTableModel model = new DefaultTableModel(data, columnNames);
JTable table = new JTable( model )
{
public Class getColumnClass(int column)
{
return getValueAt(0, column).getClass();
}
};
table.setPreferredScrollableViewportSize(table.getPreferredSize());
table.setBackground(new Color(255, 255, 204));
JScrollPane scrollPane = new JScrollPane( table );
getContentPane().add( scrollPane );
table.setRowHeight(50);
pane.setViewportView(table);
table.getColumnModel().getColumn(0).setResizable(false);
table.getColumnModel().getColumn(1).setResizable(false);
}
public static void main(String args[]) {
public void run() {
new movies().setVisible(true);
}
});
}
private JLabel logo;
private JScrollPane pane;
private JPanel panel;
}
您可以在调用new ImageRenderer
构造函数时传递图像的名称(请阅读)。
public class Movies extends javax.swing.JFrame {
public Movies() {
initComponents();
table.getColumnModel().getColumn(1).setCellRenderer(new ImageRenderer("1.jpg"));
table.getColumnModel().getColumn(0).setCellRenderer(new ImageRenderer("2.jpg"));
}
}
class ImageRenderer extends DefaultTableCellRenderer {
ImageIcon icon = null;
ImageRenderer(String iconName) {
icon = new ImageIcon(getClass().getResource(iconName));
}
}
我正试图将每个列单元格具有不同值的组合框加载到我的JTable中,但我找不到任何实现这一点的方法。第一列的代码如下: 根据返回的系列名称,将执行一个新的查询,以获取每个系列的所有插曲。所以他们都是不同的。下面的图片让我们了解一下我的意思: 第二列现在应该包含根据第一列的系列的剧集,但它们都是相同的。
假设我使用了两次“put”函数:
问题内容: 我有一张table 我如何使两行具有不同的单元格宽度? 问题答案: 据我所知,这是不可能的,这是有道理的,因为您要尝试做的事情与表格数据表示的想法背道而驰。但是,您可以将数据放在多个表中,并删除它们之间的任何填充和边距,以至少在视觉上达到相同的结果。类似于以下内容: 我不知道您的要求,但是我敢肯定有一个更优雅的解决方案。
问题内容: 我不知道如何对齐JTable中单元格的值。 例如,Jtable显示姓名工资X.先生100000.50 XXXX 234.34 YYYy 1205.50 我想以以下格式对齐“薪水”。 如何在JTable上方对齐 问题答案: 无需为此创建自定义类,只需使用默认渲染器即可: 或者更好的方法是在表中实际存储Double值,然后使用适当的数字渲染器,数字渲染器将自动右对齐。然后,您可以使用表格格
问题内容: 我想在JTable中将不可编辑的单元格显示为灰色。我正在使用这样的TableCellRenderer: 这有效,但有一个令人讨厌的伪像:最初,“复选框”是“左排列的”,当我按鼠标左键时,它移到“居中”,而当我释放鼠标按钮时,它又移回“左排列”。 如何避免这种令人讨厌的伪像,并且可能对我的问题有更好的简单解决方案? 问题答案: 返回的实例中。 附录:从美学角度,你可能想调理渲染的和基于编
我的代码有一个特殊的问题。 然后它会发生在图像上出现的事情。我需要汉字列是CENTER对齐,但出于某种原因,'tcr,不工作,因为它应该是,但默认渲染器正在做它应该是。 有什么建议/帮助吗?