2013-12-17 4 views

답변

3

테이블이 적절한 렌더러를 선택할 수 있도록 getColumnClass() 메서드를 재정의해야합니다. 간단한 예제 :

import java.awt.*; 
import javax.swing.*; 
import javax.swing.table.*; 

public class TableIcon extends JFrame 
{ 
    public TableIcon() 
    { 
     ImageIcon aboutIcon = new ImageIcon("about16.gif"); 
     ImageIcon addIcon = new ImageIcon("add16.gif"); 
     ImageIcon copyIcon = new ImageIcon("copy16.gif"); 

     String[] columnNames = {"Picture", "Description"}; 
     Object[][] data = 
     { 
      {aboutIcon, "About"}, 
      {addIcon, "Add"}, 
      {copyIcon, "Copy"}, 
     }; 

     DefaultTableModel model = new DefaultTableModel(data, columnNames); 
     JTable table = new JTable(model) 
     { 
      // Returning the Class of each column will allow different 
      // renderers to be used based on Class 
      public Class getColumnClass(int column) 
      { 
       return (column == 0) ? Icon.class : Object.class; 
      } 
     }; 
     table.setPreferredScrollableViewportSize(table.getPreferredSize()); 

     JScrollPane scrollPane = new JScrollPane(table); 
     getContentPane().add(scrollPane); 
    } 

    public static void main(String[] args) 
    { 
     TableIcon frame = new TableIcon(); 
     frame.setDefaultCloseOperation(EXIT_ON_CLOSE); 
     frame.pack(); 
     frame.setVisible(true); 
    } 

} 
+0

위의 내 페이지를 보면, 배열 열과 행의 이름이 없으므로 DefaultTableModel의 매개 변수는 무엇입니까 ?? –

+0

요구 사항에 맞게 예제를 사용자 정의하십시오. 오직 당신 만이 정확한 요구 사항을 알고 있습니다. – camickr

관련 문제