gpt4 book ai didi

java - 为什么我无法使用表列设置 JTable

转载 作者:行者123 更新时间:2023-12-01 18:42:26 24 4
gpt4 key购买 nike

我在项目中使用 JTable、JTableModel。我无法使用列标题和空数据启动表格。你可以帮我吗?谢谢。这是我的代码

主代码类

  public class MainCode extends JFrame{
public MainCode(){
...........other codes here........
MyTableModel tm= new MyTableModel();
MyTable table=new MyTable(tm);
//JTable table=new JTable(tm); if I write this line,I see column names.
table.setPreferredScrollableViewportSize(new Dimension(480,80));
table.setFillsViewportHeight(true);
JScrollPane scrollPanetable=new JScrollPane(table);
frame.getContentPane().add(scrollPanetable)
........another codes...........

}
}

MyTable 类

public class MyTable extends JTable{
public MyTable(){

}
public MyTable(int row,int col){
super(row,col);
}
@Override
public void tableChanged(TableModelEvent e){
super.tableChanged(e);
repaint();
System.out.println("public void tableChanged(TableModelEvent e)");
}

}

MyTableModel 类

public class MyTableModel extends AbstractTableModel{
private String[] columnNames;
private Object[][] data;
public MyTableModel(){
super();
columnNames=new String[]{"A","B","C"};
data=new Object[][]{ {null,null,null}};
}
public int getColumnCount() {
return columnNames.length;
}

public int getRowCount() {
return data.length;
}

public String getColumnName(int col) {
return columnNames[col];
}

public Object getValueAt(int row, int col) {
return data[row][col];
}
}

它不是以列名开头。这段代码有什么问题。我看到下图。 enter image description here

最佳答案

因为 MyTable 中没有采用参数 MyTableModel 的构造函数。

您正在创建这样的表:

MyTable table=new MyTable(tm);

所以你必须在 MyTable 中有这样的构造函数:

class MyTable extends JTable {

public MyTable(MyTableModel tm){
super(tm);
}
}

如果您在此处发布了 MyTable 代码,您的代码将无法编译!

关于java - 为什么我无法使用表列设置 JTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19410812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com