现在我成功地将对象从文件放入ArrayList
中,我必须将它们显示到JTable
中。
这是我的ArrayList
中包含的3个对象
Lieu<Double, String>(45.573715, -73.900295, "p1");
Lieu<Double, String>(45.573882, -73.899748, "p2");
Lieu<Double, String>(45.574438, -73.900099, "p3");
在Lieu
类中,我有getX()
和getY()
方法
但是我不知道如何在JTable
中显示它们。
Longitude Latitude
45.573715 -73.900295
45.573882 -73.899748
45.574438 -73.900099
这是我的开始:
public class MonModel extends AbstractTableModel{
@Override
public int getColumnCount() {
return 2;
}
@Override
public int getRowCount() {
return l.size();//l is the arraylist that contains the 3 elements
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
if(columnIndex==0){
return l.get(rowIndex).getX();
}
else if(columnIndex==1){
return l.get(rowIndex).getY();
}
return null;
}
使用TableModel
创建JTable
并将其添加到JFrame
。还可以考虑重写getColumnName()
,如下所示。参见如何使用表。
MonModel model = new MonModel();
JTable table = new JTable(model);
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new JScrollPane(table), BorderLayout.CENTER);
f.pack();
f.setLocationByPlatform(true);
f.setVisible(true);
使用TableModel
来显示JTable
中的数据。例如:
在UI类中,将表模型设置为表。
JTable table = new JTable(new MonModel());
Table Model class
class MonModel extends AbstractTableModel {
private List<LatNLon> l;
private String[] columnNames = {"Longitude", "Latitude"};
public MonModel() {
l = new ArrayList<LatNLon>();
l.add(new LatNLon("45.573715", "-73.900295"));
l.add(new LatNLon("45.573715", "-73.900295"));
l.add(new LatNLon("45.573715", "-73.900295"));
}
@Override
public String getColumnName(int column) {
return columnNames[column];
}
public int getColumnCount() {
return 2;
}
public int getRowCount() {
return l.size();
}
public Object getValueAt(int rowIndex, int columnIndex) {
if(columnIndex==0){
return l.get(rowIndex).getX();
}
else if(columnIndex==1){
return l.get(rowIndex).getY();
}
return null;
}
}
纬度和经度类。
class LatNLon {
private String x;
private String y;
public LatNLon(String x, String y) {
this.x = x;
this.y = y;
}
// Code: For Getters and Setters.
}