【发布时间】:2011-03-29 10:21:24
【问题描述】:
我有一个 JTable 实例,其中包含许多行。此表中的列是包含 HTML 格式字符串的 JLabel 实例。
我的一个要求是这些列中的所有数据都应该显示出来。如果列宽(无论出于何种原因)不足以显示所有数据,则文本应换行到下一行。目前文本刚刚被截断。
这段代码说明了问题:
导入 javax.swing.JFrame; 导入 javax.swing.JTable; 导入 javax.swing.table.DefaultTableModel; 公共类 TableTest { 公共静态无效主要(最终字符串[]参数){ 最终 JTable jTable = new JTable(); jTable.setModel(new DefaultTableModel() { 私有静态最终长序列版本UID = 1L; @覆盖 public Object getValueAt(final int row, final int column) { final StringBuffer sb = new StringBuffer(); sb.append(""); sb.append("这个文本是红色的 "); sb.append("这个文本是绿色的!"); sb.append(""); 返回 sb.toString(); } @覆盖 公共 int getColumnCount() { 返回 2; } @覆盖 公共 int getRowCount() { 返回 2; } }); 最终的 JFrame jFrame = new JFrame(); jFrame.getContentPane().add(jTable); jFrame.setSize(120, 80); jFrame.pack(); jFrame.setTitle("表格测试"); jFrame.setLocationRelativeTo(null); jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jFrame.setVisible(true); } }运行上面的 SSCCE 时,我的问题可能会变得更加清晰。如果调整 JFrame 的大小,我希望自动修改行高以允许显示 JPanel 的全部内容。
由于 HTML 的要求,我无法使用 JTextArea。
谢谢,
本
【问题讨论】: