Java JTable中图像的html问题
我扩展了AbstractTableModel以创建自定义TableModel。这样做的原因是将hashmap绑定到JTable 在我的TableModel中,我在其中一行返回如下html代码:Java JTable中图像的html问题,java,html,swing,file-io,jtable,Java,Html,Swing,File Io,Jtable,我扩展了AbstractTableModel以创建自定义TableModel。这样做的原因是将hashmap绑定到JTable 在我的TableModel中,我在其中一行返回如下html代码: @Override public Object getValueAt(int rowIndex, int columnIndex) { switch (columnIndex) { case 0:
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0:
String sTest = "<div style=\"margin-left:100px;\"><img src='" + new ImageIcon(Wds.class.getResource("/resources/video.png"))+ "'</div>";
return "<html>" + sTest + sTest + "hello" + "</html>";
default:
throw new IndexOutOfBoundsException();
}
}
例如,您应该在
TableCellRenderer
中处理对齐。该示例显示了一个ListCellRenderer
,但原理相同
附录:我需要添加几个图标,并在单元格中以不同的位置放置它们
TableCellRenderer
的实现可以返回任何所需的组件
——甚至是带有自己布局的JPanel
,如图所示的状态面板
。您可能还需要一个自定义的TableCellEditor
我不能这样做,因为我需要添加几个图标,并在单元格中以不同的位置放置它们。如果DefaultTableCellRenderer
中的HTML支持不足,我看不到其他选择;以上。
private Map<String, String> list = new LinkedHashMap<String,String>();
class MyTableModel extends AbstractTableModel {
private String[] columnNames = {"Column1"};
public void addElement(String sElement, String sElement2) {
list.put(sElement, sElement2);
fireTableRowsInserted(list.size(), list.size());
}
@Override
public int getColumnCount() {
return columnNames.length;
}
@Override
public int getRowCount() {
return list.size();
}
@Override
public String getColumnName(int col) {
return columnNames[col];
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
switch (columnIndex) {
case 1:
String sTest = "<div style=\"margin-left:100px;\"><img src='" + new ImageIcon(Wds.class.getResource("/resources/video.png"))+ "'</div>";
return "<html>" + sTest + sTest + "hello" + "</html>";
default:
throw new IndexOutOfBoundsException();
}
}
}