gpt4 book ai didi

Java Swing : How does using a JTable work?

转载 作者:行者123 更新时间:2023-12-01 16:05:06 24 4
gpt4 key购买 nike

我正在尝试构建一个小表来显示约会。这是我到目前为止所拥有的。也许你可以给我一些提示,告诉我我做错了什么,或者该走哪条路。

            public class AppointmentTable extends JFrame{


public static void main(String[] args) {
JTable table = new JTable(new AppointmentTableModel(10, 6, new ArrayList<Appointment>()));
JScrollPane scrollPane = new JScrollPane(table);
table.setFillsViewportHeight(true);
AppointmentTable frame = new AppointmentTable();
frame.add(scrollPane);
frame.setVisible(true);
}
public class AppointmentTable extends JFrame{


public static void main(String[] args) {
JTable table = new JTable(new AppointmentTableModel(10, 6, new ArrayList<Appointment>()));
JScrollPane scrollPane = new JScrollPane(table);
table.setFillsViewportHeight(true);
AppointmentTable frame = new AppointmentTable();
frame.add(scrollPane);
frame.setVisible(true);
}
}

public class AppointmentTableModel extends AbstractTableModel {
private int columns;
private int rows;
ArrayList<Appointment> appointments;

public AppointmentTableModel(int columns, int rows,
ArrayList<Appointment> appointments) {
this.columns = columns;
this.rows = rows;
this.appointments = appointments;
}

@Override
public int getColumnCount() {

return columns;
}

@Override
public int getRowCount() {

return rows;
}

@Override
public Object getValueAt(int rowIndex, int columnIndex) {

return appointments.get(rowIndex).getByColumn(columnIndex);
}
}

public class Appointment {

private Date date;
private Sample sample;
private String comment;
private ArrayList<Action> history;

public Appointment(Date date, Sample sample, String comment) {
this.date = date;
this.sample = sample;
this.comment = comment;
this.history = new ArrayList<Action>();
}

public Object getByColumn(int columnIndex) {
switch (columnIndex) {
case 0: return date;

case 1: return date;

case 2: return sample;

case 3: return sample;

case 4: return history;

case 5: return comment;


}
return null;
}

}
public class Action {
String action;

public Action(String act){
this.action=act;
}

}

最佳答案

首先,您模型的 getRowCount() 方法不正确,应该是

public int getRowCount() {
return appointments.size();
}

然后,您将一个空的约会列表传递给您的模型,因此表格不显示任何内容!

JTable table = new JTable(new AppointmentTableModel(10, 6, new ArrayList<Appointment>()));

在创建表格之前使用一些数据初始化您的列表。

关于Java Swing : How does using a JTable work?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2775508/

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