我有以下JTable使用表模型:
http://s17.postimage.org/7zfh3l4lr/Screen_Shot_2012_03_10_at_15_11_31.png
而不是使用,A,B,C,D等我如何定义自己的表名.这是我的代码
这是我的表模型的代码,框架从该表模型创建一个对象并将其显示在JFrame中.
package uk.ac.kcl.inf._4css1pra.spreadsheet; import java.awt.Dimension; import java.util.HashMap; import java.util.Map; import javax.swing.table.AbstractTableModel; /** * @author imdad * */ public class Spreadsheet extends AbstractTableModel{ private Map data = new HashMap(); public int getColumnCount() { return 7; } /* (non-Javadoc) * @see javax.swing.table.TableModel#getRowCount() */ public int getRowCount() { return 250; } public Object getValueAt(int row,int col) { return data.get(new Dimension(row,col)); } public void setValueAt(Object data,int row,int col) { Dimension coord = new Dimension(row,col); this.data.put(coord,data); fireTableCellUpdated(row,col); } }
解决方法
不知道这个东西有多好,但你可以使用
DefaultTableModel而不是AbstractTableModel,它扩展了AbstractTableModel.
以下是用于示例目的的代码:
包装jtable;
import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.UIManager; import javax.swing.table.DefaultTableModel; public class TableIcon extends JFrame { public TableIcon() { ImageIcon backIcon = getImage("/images/bac.png"); ImageIcon exitIcon = getImage("/images/exit.png"); ImageIcon forwardIcon = getImage("/images/forward.png"); String[] columnNames = {"Picture","Description"}; Object[][] data = { {backIcon,"BACK"},{exitIcon,"EXIT"},{forwardIcon,"FORWARD"},}; DefaultTableModel model = new DefaultTableModel(data,columnNames); JTable table = new JTable( model ) { // Returning the Class of each column will allow different // renderers to be used based on Class public Class getColumnClass(int column) { return getValueAt(0,column).getClass(); } }; ImageIcon icon = new ImageIcon(getClass().getResource("/images/appIcon.png")); //model.addRow(new Object[]{icon,"Text"}); //model.addRow(data[0]); table.setPreferredScrollableViewportSize(table.getPreferredSize()); JScrollPane scrollPane = new JScrollPane( table ); getContentPane().add( scrollPane ); } private ImageIcon getImage(String path) { java.net.URL url = getClass().getResource(path); if (url != null) return (new ImageIcon(url)); else { System.out.println(url); return null; } } public static void main(String[] args) { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch(Exception e) { e.printStackTrace(); } TableIcon frame = new TableIcon(); frame.setDefaultCloSEOperation( EXIT_ON_CLOSE ); frame.pack(); frame.setVisible(true); } }
这是输出: