Create JTable from ArrayList

こ雲淡風輕ζ 提交于 2019-12-02 08:20:39
trashgod

Use your TableModel to create a JTable and add it to a JFrame. Also consider overriding getColumnName(), as shown here. See also 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);

Use a TableModel for showing data in the JTable. For Example:

In UI class, set the table model to the table.

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

Latitude and Longitude class.

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

Also read How to use Tables.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!