【问题标题】:Make a JTable in Swing with Response of GET REST Webservices使用 GET REST Web 服务的响应在 Swing 中创建 JTable
【发布时间】:2017-07-15 13:01:06
【问题描述】:

我有一个 Swing 应用程序,我使用 Retrofit 在我的 Swing 应用程序中使用 Rest 服务。

现在我想在 Jtable 中填充 m Get Service 的响应。

这是我使用 Retrofit 获得的所有员工的列表

 ArrayList<Employee> employees = EmployeesData.getInstance().getEmployees();

我想在 Jtable 中填充它

这是我的员工模型

public class Employee {

    private long empno;
    private String ename;
    private String job;
    private Date hiredate;
    private long mgr;
    private long sal;
    private long deptno;

    public long getEmpno() {
        return empno;
    }

    public void setEmpno(long empno) {
        this.empno = empno;
    }

    public String getEname() {
        return ename;
    }

    public void setEname(String ename) {
        this.ename = ename;
    }

    public String getJob() {
        return job;
    }

    public void setJob(String job) {
        this.job = job;
    }

    public Date getHiredate() {
        return hiredate;
    }

    public void setHiredate(Date hiredate) {
        this.hiredate = hiredate;
    }

    public long getMgr() {
        return mgr;
    }

    public void setMgr(long mgr) {
        this.mgr = mgr;
    }

    public long getSal() {
        return sal;
    }

    public void setSal(long sal) {
        this.sal = sal;
    }

    public long getDeptno() {
        return deptno;
    }

    public void setDeptno(long deptno) {
        this.deptno = deptno;
    }

    @Override
    public String toString() {
        return empno + " \t"
                + ename + " \t"
                + deptno + " \t"
                + mgr + " \t"
                + sal + " \t"
                + hiredate.toString();
    }
}

我想在这里填充表格

public void updateConsole() {
        ArrayList<Employee> employees = EmployeesData.getInstance().getEmployees();
        StringBuilder builder = new StringBuilder();
        for (Employee employee : employees) {
            builder.append(employee.toString());


            columns.add("col1");
            columns.add("col2");
            columns.add("col3");

            TableModel tableModel = new DefaultTableModel(employees.toArray(new Object[][] {}), columns.toArray());

            table = new JTable(tableModel);

            builder.append("\n");
        }

        textPane.setText(builder.toString());
    }

我有那个错误

java.lang.ArrayStoreException
    at java.lang.System.arraycopy(Native Method)
    at java.util.Arrays.copyOf(Arrays.java:3213)
    at java.util.ArrayList.toArray(ArrayList.java:407)
    at View.Console.updateConsole(Console.java:43)
    at application.Main.updateConsole(Main.java:54)

有人可以帮帮我吗?

【问题讨论】:

标签: java json swing jtable retrofit


【解决方案1】:

它现在工作正常。我是这样的

public void updateConsole() {
        ArrayList<Employee> employees = EmployeesData.getInstance().getEmployees();
        Object[] columnNames = { "Deptno", "Empno", "Name","Hiredate","Job","Management","Salary"};
        DefaultTableModel model = new DefaultTableModel(new Object[0][0], columnNames);
        StringBuilder builder = new StringBuilder();
        for (Employee employee : employees) {
            //builder.append(employee.toString());

            Object[] o = new Object[7];
            o[0] = employee.getDeptno();
            o[1] = employee.getEmpno();
            o[2] = employee.getEname();
            o[3] = employee.getHiredate();
            o[4] = employee.getJob();
            o[5] = employee.getMgr();
            o[6] = employee.getSal();
            model.addRow(o);



            //builder.append("\n");
        }

        //textPane.setText(builder.toString());
        table.setModel(model);
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-09
    • 2018-07-30
    • 2011-04-29
    • 1970-01-01
    相关资源
    最近更新 更多