2009-03-08 2 views
4

Track 개체의 ArrayList가 있습니다. 각 행은의 인스턴스 인과JTable에서 Object의 ArrayList 내용을 표시하는 가장 쉬운 방법은 무엇입니까?

URL, 제목, 작성자, 앨범, 장르, 작곡가

내가 JTable로이 트랙을 표시하려면, : 각 트랙 개체는 다음 필드 (모든 문자열)있다 Track 개체 및 Track 개체의 속성 중 하나가 포함 된 각 열

어떻게이 데이터를 JTable을 사용하여 표시 할 수 있습니까? 나는 getValueAt() 메소드를 올바르게 구현 한 AbstractTableModel을 사용했다. 아직도, 나는 스크린에 아무것도 보지 않는다.

배열을 사용하는 것이 더 쉽습니까?

답변

10

표시 할 내용을 JTable에 추가하려면 TableModel을 사용하여 표시 할 항목을 추가하십시오.

DefaultTableModel에 데이터 행을 추가하는 방법 중 하나는 행의 개체를 나타내는 Object 배열을 취하는 addRow 메서드를 사용하는 것입니다. ArrayList의 내용을 직접 추가 할 방법이 없기 때문에 ArrayList의 내용에 액세스하여 Object의 배열을 만들 수 있습니다. 다음

class KeyValuePair 
{ 
    public String key; 
    public String value; 

    public KeyValuePair(String k, String v) 
    { 
     key = k; 
     value = v; 
    } 
} 

// ArrayList containing the data to display in the table. 
ArrayList<KeyValuePair> list = new ArrayList<KeyValuePair>(); 
list.add(new KeyValuePair("Foo1", "Bar1")); 
list.add(new KeyValuePair("Foo2", "Bar2")); 
list.add(new KeyValuePair("Foo3", "Bar3")); 

// Instantiate JTable and DefaultTableModel, and set it as the 
// TableModel for the JTable. 
JTable table = new JTable(); 
DefaultTableModel model = new DefaultTableModel(); 
table.setModel(model); 
model.setColumnIdentifiers(new String[] {"Key", "Value"}); 

// Populate the JTable (TableModel) with data from ArrayList 
for (KeyValuePair p : list) 
{ 
    model.addRow(new String[] {p.key, p.value}); 
} 
+0

굉장 !!!!! 한꺼번에 고마워. – Penchant

+0

당신은 환영합니다 :) – coobird

0

:

다음 예 DefaultTableModelJTable A와 같은 테이블을 표시하기 위해서 사용된다 (검색 Track 클래스 유사) 데이터의 소유자 인 KeyValuePair 클래스를 사용 내가 가진 문제는 전혀 문제를 볼 수 없다는 것입니다.

((DefaultTableModel)mainInterface.table.getModel()).addRow(
new String[] {t.location,t.title,t.creator,t.album,t.genre,t.composer}); 

t가 추적 개체입니다 :이 코드가 실행

public Interface(){ 

    setSize(1024, 768); 
    setBackground(new Color(0,0,0)); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    add(new MenuBar());//simple JMenuBar implementation 

    table= new JTable(); 
    table.setPreferredScrollableViewportSize(new Dimension(500, 500)); 

    JScrollPane jsp = new JScrollPane(table); 
    add(jsp); 

    pack(); 
    setVisible(true); 
} 

후, 나는이 여러 번 수행 다른 클래스에 코드를 가지고 : 여기에 내가 인터페이스를 만들기 위해 사용했던 코드입니다 그건 그렇고.

관련 문제