我想我得到的imageIcon在每個單元格中顯示方式不同,但由於某種原因,當我編譯它時,圖像不顯示。它顯示圖像的名稱,但圖像本身不顯示。這是一張圖片。 http://i49.tinypic.com/r9ibrn.jpgJTable中的不同單元格中的不同imageIcon
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;
}
我沒有足夠的動機現在破譯你的代碼,看看到底出了什麼問題,但我會說,如果我是你,這種行爲將利用我的注意力轉向如何引用類型正在傳遞和設置。 – 2012-07-17 17:16:17
使用'getClass()。getResource(「1.jpg」)'顯然你會在單元格上獲得相同的圖像。你需要做一些動態! – elias 2012-07-17 17:59:07
我是Java新手,所以我可能需要更多的幫助。 :D – 2012-07-17 18:09:57