Java Swing:如何使用 JTable?
我正在尝试构建一个小表来显示约会。 这是我到目前为止所拥有的。也许你可以给我一些提示,告诉我我做错了什么,或者该走哪条路。
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;
}
}
I am trying to build a little Table to show appointments.
Here is what I have so far. Maybe you can give me a hint about what I am doing wrong, or which way to go.
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;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,您的模型的
getRowCount()
方法不正确,它应该是然后,您将一个空的约会列表传递给您的模型,因此该表什么也没有显示!
在创建表之前使用一些数据初始化列表。
First, your model's
getRowCount()
method is incorrect, it should beThen, you're passing an empty appointment list to your model, so the table shows nothing!
Initialize your list with some data before creating the table.