자바 JTable 매개변수에 ArrayList배열은 넣지 못하는건가요?
데이터 베이스를 연동하여 2차원 ArrayList에 값을 저장하여 JTable에 넣고싶습니다. 2차원 배열 생성 후 값을 넣으려니 데이터에따라 유동적으로 변해서 ArrayList로 코드를 구성했습니다.
ArrayList<User> list = new ArrayList<User>();
User u = new User (매개변수);
list.add(u);
이런식으로 코드 작성하고 JTable에 list를 넣고싶은데
JTable jt = new JTable(list,header);
이렇게 하면 오류가 뜨네요 .. ArrayList를 배열로 바꿔 넣어보려해도 방법을 모르겠어서 질문 올립니다!
#자바
JTable 생성자의 매개변수로는 2차원 배열(Object[][])이나 벡터(Vector)만을 받기 때문에 ArrayList를 직접 넣을 수는 없습니다.
하지만 ArrayList를 2차원 배열로 변환하여 JTable 생성자의 매개변수로 전달할 수 있습니다. 이를 위해서는 다음과 같이 ArrayList의 크기를 이용하여 2차원 배열을 생성하고, ArrayList에 저장된 값을 2차원 배열에 복사해야 합니다.
cssCopy code
ArrayList<User> list = new ArrayList<User>(); // list에 데이터 추가하는 코드 Object[][] data = new Object[list.size()][]; for (int i = 0; i < list.size(); i++) { User u = list.get(i); data[i] = new Object[] {u.getField1(), u.getField2(), ...}; } JTable jt = new JTable(data, header);
위 코드에서 getField1(), getField2() 등은 User 클래스에서 필드값을 가져오는 메소드로 대체되어야 합니다. 또한, 각 필드값이 JTable에 표시될 자료형에 맞게 Object 타입으로 변환되어야 합니다.
만족스러운 답변이었나요?간단한 별점을 통해 의견을 알려주세요.