带图片的JTable
来源:互联网 发布:java有多少个类 编辑:程序博客网 时间:2024/04/27 14:30
目录
- 源码
- 效果图
import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.Icon;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.SwingConstants;import javax.swing.table.AbstractTableModel;import javax.swing.table.DefaultTableCellRenderer;import javax.swing.table.TableColumnModel;public class IconCurrencyTable { public static void main(String[] args) { JFrame f = new JFrame("Icon Currency Table"); JTable tbl = new JTable(new CurrencyTableModel()); TableColumnModel tcm = tbl.getColumnModel(); tcm.getColumn(0).setPreferredWidth(150); tcm.getColumn(0).setMinWidth(250); TextWithIconCellRenderer renderer = new TextWithIconCellRenderer(); tcm.getColumn(0).setCellRenderer(renderer); tbl.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); tbl.setPreferredScrollableViewportSize(tbl.getPreferredSize()); JScrollPane sp = new JScrollPane(tbl); f.getContentPane().add(sp, "Center"); f.pack(); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent evt) { System.exit(0); } }); f.setVisible(true); }}class CurrencyTableModel extends AbstractTableModel { protected String[] columnNames = { "nick name", "user name", "password"}; protected static final int NICK = 1; protected static final int USERNAME = 2; protected static final int PASSWORD = 3; protected static final Class thisClass = CurrencyTableModel.class; public CurrencyTableModel() { } // Implementation of TableModel interface public int getRowCount() { return data.length; } public int getColumnCount() { return PASSWORD; } public Object getValueAt(int row, int column) { return data[row][column]; } public Class getColumnClass(int column) { return (data[0][column]).getClass(); } public String getColumnName(int column) { return columnNames[column]; } protected Object[][] data = new Object[][] { { new DataWithIcon("xiao ming", new ImageIcon(thisClass .getResource("user_16.png"))),"1111111","123456"}, { new DataWithIcon("xiao dong", new ImageIcon(thisClass .getResource("user_16.png"))),"2222222","234567"}, { new DataWithIcon("xiao hai", new ImageIcon(thisClass .getResource("user_16.png"))),"3333333","345678"}, { new DataWithIcon("xiao hui", new ImageIcon(thisClass .getResource("user_16.png"))),"4444444","456789"}, { new DataWithIcon("xiao zhi", new ImageIcon(thisClass .getResource("user_16.png"))),"5555555","567890"}, { new DataWithIcon("xiao xiao", new ImageIcon(thisClass .getResource("user_16.png"))),"6666666","678901"}, { new DataWithIcon("xiao li", new ImageIcon(thisClass .getResource("user_16.png"))),"7777777","789012"} };}class DataWithIcon { public DataWithIcon(Object data, Icon icon) { this.data = data; this.icon = icon; } public Icon getIcon() { return icon; } public Object getData() { return data; } public String toString() { return data.toString(); } protected Icon icon; protected Object data;}class TextWithIconCellRenderer extends DefaultTableCellRenderer { protected void setValue(Object value) { if (value instanceof DataWithIcon) { if (value != null) { DataWithIcon d = (DataWithIcon)value; Object dataValue = d.getData(); setText(dataValue == null ? "" : dataValue.toString()); setIcon(d.getIcon()); setHorizontalTextPosition(SwingConstants.RIGHT); setVerticalTextPosition(SwingConstants.CENTER); setHorizontalAlignment(SwingConstants.LEFT); setVerticalAlignment(SwingConstants.CENTER); } else { setText(""); setIcon(null); } } else { super.setValue(value); } }}效果图:
0 0
- 带图片的JTable
- 带CheckBox的JTable实现
- 带复选框的JTable
- 带JCheckBox的JTable的例子
- 带横向滚动条的JTable
- 带横向滚动条的JTable
- 带tooltip和checkbox的JTable
- JTable中插入图片
- JTable显示图片
- 带图片的Select
- 带图片的textview
- 带图片的Toast
- 带刻度尺的图片框
- 生成带水印的图片
- android 带图片的文本框
- 带图片的Post请求
- 获得带倒影的图片
- 带倒影图片的实现
- Java如何遍历Map的所有的元素
- 一个简单的CUDA程序
- Open gl 非矩阵和矩阵实现小动画
- poj 3016 K-Monotonic 左偏树+动态规划
- 操作系统实现----中断调用
- 带图片的JTable
- 备份&恢复诊断脚本集
- PHP之call_user_func函数和call_user_func_array函数
- Web Services--gSOAP 2.7.6 第七章(7.1.3)
- H.264率失真优化的模式选择问题
- grep 正则表达式及选项以及注意
- MFC 主界面函数中线程等待避免界面卡死的处理方法
- Working Practice-花些精力把东西放好,有助于提高效率
- Java 文本上传