如何设置JTable列宽?照搬示例代码仍报错求解答
问题解析与修复
你的代码核心错误是错误使用了不存在的JString类,Java标准库中没有JString这个类型,定义列名数组应该用String[],这个语法错误会导致后续所有代码无法正常编译,表现为列宽设置语句报错。
修正后的代码如下:
import javax.swing.table.TableColumn; import javax.swing.table.TableColumnModel; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; // 修正:将JString改为String String[] columnNames = {"New Line Name", "Point1", "Point2", "Angle", "Parallel Line Name", "Distance From Line", "Group"}; DefaultTableModel linesTableModel = new DefaultTableModel(null, columnNames); JTable tblLines = new JTable(linesTableModel); TableColumnModel colModel = tblLines.getColumnModel(); colModel.getColumn(0).setPreferredWidth(100); colModel.getColumn(1).setPreferredWidth(50); colModel.getColumn(2).setPreferredWidth(80); colModel.getColumn(3).setPreferredWidth(150); colModel.getColumn(4).setPreferredWidth(200); colModel.getColumn(5).setPreferredWidth(100); colModel.getColumn(6).setPreferredWidth(90);
额外注意:确保这段代码在Swing的**事件调度线程(EDT)**中执行,避免线程安全问题,比如通过SwingUtilities.invokeLater()包裹代码逻辑。
内容的提问来源于stack exchange,提问作者Edelweiss Monville
相关产品推荐
相关产品推荐

