2017-07-15 6 views
-1

私はSwing Appを持っています。私はSwing AppでRetrofitを使用してRest Serviceを消費します。GET REST Webサービスの応答でスイングするJTableを作成する

今、私はサービスの応答をJtableに入れたいと思っています。

タイ人、私は私の従業員MODELL

ここ
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(); 
    } 
} 

でJTableの

に私がしたいことを移入したいレトロフィット

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

を使用して取得し、すべての従業員のためのリストテーブルを作成する

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) 

誰かが私を助けてくださいすることができますか?

+0

1)[なぜ誰かが私を助けることができますか?実際の質問ではありませんか?](http://meta.stackoverflow.com/q/284236)2)あなたは何を試しましたか? ?あなたはどこにいるのですか? 3)もっと早い時期に、[MCVE]または[短く、自己完結型の正しい例](http://www.sscce.org/)を投稿してください。現在のコードがデータを正常にフェッチしている場合は、そのコードをハードコードされたデータで除外します。 –

+0

@AndrewThompson私は投稿を編集しています。私は従業員のArraylistを持っています。私はそれを休憩サービスを使って得る。私はJtableでpopuläreにしたい –

+0

なぜコンパイル不可能なコードスニペットを含むように質問を編集しましたか?リンクをたどって、実際に**コンテンツを読んでください**! –

答えて

0

それは今すぐ動作します。私はそれのようにする

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); 
    } 
関連する問題