<div>public class RecuruitTest {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>static class ButtonInJTable extends JFrame implements ActionListener</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>private JPanel topPanel, buttonPanel;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>private JTable table;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>private JScrollPane scrollPane;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>private String[] columnNames= new String[3];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>private String[][] dataValues ;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>private<span class="Apple-tab-span" style="white-space:pre;"> </span>EmployeeDAO eDAO = new EmployeeDAO();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>private EmployeeVo emVo;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>private ArrayList<String> title;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>private ArrayList<EmployeeVo> list = new ArrayList<EmployeeVo>();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>private JButton[] pageButton;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>private PagingProcess pn;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>TableModel model;</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>JButton button = new JButton();</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>public ButtonInJTable()</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>setTitle("Button in JTable Cell");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>setSize(600,700);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>topPanel= new JPanel();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>topPanel.setLayout(new BorderLayout());</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>getContentPane().add(topPanel);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>button.addActionListener(this);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>pageButton = new JButton[25];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>buttonPanel = new JPanel();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>buttonPanel.setLayout(new FlowLayout());</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>pn = new PagingProcess();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>eDAO = new EmployeeDAO();</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>pn.setPageNum(0);</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int startPage = pn.getStartPage();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int endPage = pn.getEndPage();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>list = eDAO.getEmployeeTotal(pn);</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int rowCount=list.size();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>columnNames=new String[] {"No","이름" , "직급" , "부서","이메일", "지원여부"};</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>dataValues = new String[25][columnNames.length];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for(int index = 0; index<rowCount; index++){</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>emVo=list.get(index);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>dataValues[index][0]=emVo.getNo()+"";</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>dataValues[index][1]=emVo.getName();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>dataValues[index][2]=emVo.getJobGrade();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>dataValues[index][3]=emVo.getDepartment()+"";</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>dataValues[index][4]=emVo.getEmail();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>dataValues[index][5]="지원하기";</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for(int i = startPage; i<=endPage; i++){</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>pageButton[i] = new JButton((i)+"");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>pageButton[i].addActionListener(this);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>buttonPanel.add(pageButton[i]);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>model=new DefaultTableModel(dataValues,columnNames);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>table =new JTable( );</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>table.setModel(model);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>table.getColumn("지원여부").setCellRenderer(new ButtonRenderer());</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>table.getColumn("지원여부").setCellEditor(new ButtonEditor(new JCheckBox()));</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>scrollPane=new JScrollPane(table);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>topPanel.add(scrollPane,BorderLayout.CENTER); </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>topPanel.add(buttonPanel,BorderLayout.SOUTH);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>public static void main(String args[])</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>ButtonInJTable mainFrame=new ButtonInJTable();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>mainFrame.setVisible(true);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>@Override</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>public void actionPerformed(ActionEvent e) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// TODO Auto-generated method stub</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>JButton source = (JButton)e.getSource();</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(e.getSource().equals(button)){</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int row = table.getSelectedRow();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>Object value = table.getValueAt(row, 0);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>System.out.println("값 "+value);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(e.getSource().equals(source) && e.getSource()!=button){</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int pageNum=Integer.parseInt(source.getActionCommand());</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>pn.setPageNum(pageNum);<span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>list = eDAO.getEmployeeTotal(pn);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int startPage = pn.getStartPage();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int endPage = pn.getEndPage();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int rowCount=list.size();<span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>System.out.println("rowCount "+rowCount);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>System.out.println("startPage "+startPage);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>System.out.println("endPage "+endPage);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>columnNames=new String[] {"No","이름" , "직급" , "부서","이메일", "지원여부"};</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>dataValues = new String[25][columnNames.length];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for(int index = 0; index<rowCount; index++){</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>emVo=list.get(index);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>dataValues[index][0]=emVo.getNo()+"";</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>dataValues[index][1]=emVo.getName();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>dataValues[index][2]=emVo.getJobGrade();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>dataValues[index][3]=emVo.getDepartment()+"";</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>dataValues[index][4]=emVo.getEmail();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>dataValues[index][5]="지원하기";</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}<span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>class ButtonRenderer extends JButton implements TableCellRenderer {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>public ButtonRenderer() {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>setOpaque(true);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>public Component getTableCellRendererComponent(JTable table, Object value,</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>boolean isSelected, boolean hasFocus, int row, int column) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>setText((value == null) ?"" : value.toString());</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return this;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>class ButtonEditor extends DefaultCellEditor {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>private String label;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>public ButtonEditor(JCheckBox checkBox) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>super(checkBox);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>public Component getTableCellEditorComponent(JTable table, Object value,</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>boolean isSelected, int row, int column) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>label = (value == null) ? "" : value.toString();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>button.setText(label);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return button;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>public Object getCellEditorValue() {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return new String(label);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>} </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div>}</div> <div><br></div> <div>jframe을 상속 받고 jtable에 default Table Model을 집어 넣어서 테이블 셀 내에 버튼을 생성하는 형식입니다. 화면 아래에 버튼을 누르면 DAO 에서 List를 받아 와서 다시 뿌릴려고 하는데 리플레쉬가 제대로 안 먹히네요.</div> <div><br></div> <div>이거 해결 방법이 없을까요? </div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.