java – 在JTable中设置列标题
发布时间:2020-12-14 23:57:29 所属栏目:Java 来源:网络整理
导读:我有以下JTable使用表模型: http://s17.postimage.org/7zfh3l4lr/Screen_Shot_2012_03_10_at_15_11_31.png 而不是使用,A,B,C,D等我如何定义自己的表名.这是我的代码 这是我的表模型的代码,框架从该表模型创建一个对象并将其显示在JFrame中. package uk.ac.k
|
我有以下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);
}
}
这是输出: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读
