본문 바로가기

Programming/JAVA

[Swing]JTable 에 체크박스 넣기


  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4. import javax.swing.table.*;
  5. public class JTableTesterII extends JFrame {
  6.  private final Object [] colNames = {"ChkBox","이름","나이","성별"};
  7.  private Object [][] datas = {{false,"홍길동","20","남"},{true,"김말자","18","여"}};
  8.  public JTableTesterII(){
  9.   super("JTable Tester");  
  10.   setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  11.   JPanel panel = new JPanel(new BorderLayout());
  12.    DefaultTableModel dtm = new DefaultTableModel(datas, colNames);
  13.    JTable table = new JTable(dtm);
  14.    table.getColumn("ChkBox").setCellRenderer(dcr);
  15.    JCheckBox box = new JCheckBox();
  16.    box.setHorizontalAlignment(JLabel.CENTER);
  17.    table.getColumn("ChkBox").setCellEditor(new DefaultCellEditor(box));
  18.    JScrollPane jsp = new JScrollPane(table);
  19.    panel.add(jsp,"Center");
  20.   setContentPane(panel);
  21.   pack();
  22.   setVisible(true);
  23.  }
  24.  
  25.  public static void main(String[] args) {  
  26.   new JTableTesterII();
  27.  }
  28.  {
  29.   public Component getTableCellRendererComponent  // 셀렌더러
  30.    (JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
  31.   {
  32.    JCheckBox box= new JCheckBox();
  33.    box.setSelected(((Boolean)value).booleanValue());  
  34.    box.setHorizontalAlignment(JLabel.CENTER);
  35.    return box;
  36.   }
  37.  };
  38. }

'Programming > JAVA' 카테고리의 다른 글

[자바] NaN, Infinity  (0) 2012.10.13
[Swing] 스크린 가운데 배치  (0) 2012.10.07
[Swing] JTree의 이벤트들  (0) 2012.10.07
[Swing]JSplitPane 반으로 쪼개는 판넬  (0) 2012.10.07
[Swing] JTree를 이용해 트리 구성하기  (0) 2012.10.07