2013-04-11 1 views
0

Теперь, когда мне удалось помещать объекты из файла в ArrayList, я должен отображать их в JTable.Создать JTable из ArrayList

Эти 3 объекты, содержащиеся в моем ArrayList

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()

Но я не могу понять, как Diplay их в 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; 
    } 

ответ

1

Используйте TableModel создать JTable и добавить его к JFrame. Также рассмотрите переопределение getColumnName(), как показано here. См. Также How to Use Tables.

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); 
1

Используйте TableModel для отображения данных в JTable. Пример:

В классе UI установите таблицу таблицы в таблицу.

JTable table = new JTable(new MonModel()); 

Таблица Модель класса

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. 
} 

Также читайте How to use Tables.