관리 메뉴

nkdk의 세상

자바 Language 25일째 jtable값 받아 오기 본문

My Programing/JAVA

자바 Language 25일째 jtable값 받아 오기

nkdk 2008. 3. 8. 01:19
package BookTest;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
public class JtableValue extends JFrame{
TableModel model;
JTable table;
public JtableValue() {
model=new TableModel();
table=new JTable(model);
table.getColumnModel().getColumn(2).setPreferredWidth(150);

table.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
//객체 얻기
table=(JTable)e.getComponent();
//테이블의 모델 얻기
model=(TableModel)table.getModel();
//선택된 행, 열 인덱스 출력
System.out.print("열 번호:" + table.getSelectedColumn());
System.out.print(" 행 번호:" + table.getSelectedRow());
//선택된 열, 행 값 출력
System.out.print(" 열 이름:" + table.getColumnName(table.getSelectedColumn()));
System.out.println(" 값:" +
model.data[table.getSelectedRow()][table.getSelectedColumn()]);
}
});

getContentPane().add(new JScrollPane(table),"Center");
setBounds(300,300,300,200);
setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new JtableValue();
}
}
class TableModel extends AbstractTableModel{
Object [][]data={
{"홍길동",new Integer(22),"hong@korea.com",new Boolean(false)},
{"고길동",new Integer(29),"go@korea.com",new Boolean(true)},
{"나길동",new Integer(21),"na@korea.com",new Boolean(false)}
};
String []columnName={"이름","나이","이메일","결혼여부"};

public int getColumnCount(){
return columnName.length;
}
public int getRowCount(){
return data.length;
}
public Object getValueAt(int row,int col){
return data[row][col];
}
public String getColumnName(int col){
return columnName[col];
}
}