아핫뉴스실시간 인기검색어
아핫뉴스 화산 이미지
화산 아이콘 11
정청래 대표 기자회견
아하

학문

토목공학

슬기로운홍관조182
슬기로운홍관조182

자바 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를 배열로 바꿔 넣어보려해도 방법을 모르겠어서 질문 올립니다!



#자바

    1개의 답변이 있어요!
    • 튼튼한라마20
      튼튼한라마20

      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 타입으로 변환되어야 합니다.