import javax.swing.table.AbstractTableModel;
public class DataModel extends AbstractTableModel {
//컬럼의 이름
String[] columNames = {"col1","col2"};
//데이터
Object[][] data = {{"값1", "값2"}};
public DataModel(){
}
public DataModel(Object[][] data) {
this.data = data;
}
@Override
public int getColumnCount() {
// TODO Auto-generated method stub
System.out.println("getColumnCount");
return columNames.length;
}
@Override
public int getRowCount() {
// TODO Auto-generated method stub
System.out.println("getRowCount");
return data.length; //2차 배열의 길이
}
@Override
public Object getValueAt(int arg0, int arg1) {
// TODO Auto-generated method stub
System.out.println("getValueAt");
return data[arg0][arg1];
}
@Override
public String getColumnName(int arg0) {
// TODO Auto-generated method stub
System.out.println("getColumnName");
return columNames[arg0];
}
}
실행 클래스
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;
import javax.swing.JButton;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class JTableEx01 extends JFrame {
private JPanel contentPane;
private JTable table;
private JButton btnNewButton;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
JTableEx01 frame = new JTableEx01();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public JTableEx01() {
setTitle("JTable");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(null, "JPanel title", TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel.setBounds(12, 10, 412, 165);
contentPane.add(panel);
panel.setLayout(null);
table = new JTable();
table.setRowSelectionAllowed(false);
table.setBounds(6, 17, 400, 167);
panel.add(table);
table.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
table.setModel(new DataModel());
btnNewButton = new JButton("데이터 확인");
btnNewButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
System.out.println(table.getSelectedRow());
System.out.println(table.getSelectedColumn());
// System.out.println(table.getValueAt(table.getSelectedRow(), table.getSelectedColumn()));
Object[][] data = {
{"값1", "값2"},
{"값1", "값2"},
{"값1", "값2"},
{"값1", "값2"},
{"값1", "값2"}
};
table.setModel(new DataModel(data));
}
});
btnNewButton.setBounds(155, 199, 130, 31);
contentPane.add(btnNewButton);
}
}
결과물
실행
'JAVA' 카테고리의 다른 글
Socket, ServerSocket 기본실습 : 포트 개방여부 스캐너 (0) | 2013.02.28 |
---|---|
[실습]야구게임 만들기 (0) | 2013.02.08 |
스윙 관련 강의자료 (pdf) (0) | 2013.02.07 |
JOptionPane 기본 실습 -메세지창 띄우기 (0) | 2013.02.07 |
[실습]주민등록번호 검사기 -GUI구현 (0) | 2013.02.06 |