public class JTable_01 extends JFrame{
Container cp;
JTable tb1,tb2,tb3;
JTextArea area;
public JTable_01(String title) {
super(title);
cp=this.getContentPane();
cp.setBackground(new Color(171,190,190));
this.setBounds(700,100,800,800);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.initDesign();
this.setVisible(true);
}
public void initDesign() {
this.setLayout(new GridLayout(2, 2, 5, 5)); //그리드로 2행2열
//1번째 테이블 행,열 지정
tb1=new JTable(5,4);
this.add(new JScrollPane(tb1)); //this는 프레임인데 table 바로 못 올라옴,JScrollPane 안에 넣어서 올라와야 함
//2번째 테이블은 생성시 데이터 넣기
//행과 열 한번에 넣으려면 배열의 초기값 이용
String []title1= {"이름","나이","주소"};
String [][]data1= {
{"유재석","23","서울시 서초구"},{"박명수","30","강원도 원주시"},
{"강호동","44","경기도 김포시"}
}; //다중배열
//string 두개를 테이블에 담기
tb2=new JTable(data1, title1); //담을내용,제목
this.add(new JScrollPane(tb2)); //this는 프레임인데 table 바로 못 올라옴,JScrollPane 안에 넣어서 올라와야 함
//3번째 테이블 Model을 이용해서 생성..model은 추가,삭제 가능
DefaultTableModel model1=new DefaultTableModel(data1, title1);
tb3=new JTable(model1);
this.add(new JScrollPane(tb3));
//tb3에 추가가능..model 사용했기에 가능
String[] addData1= {"정준하","37","서울시 광진구"};
model1.addRow(addData1);
//벡터로 생성후 추가
Vector<String>addData2=new Vector<String>(); //벡터 string만을 담겠다
addData2.add("홍길동");
addData2.add("33");
addData2.add("서울시 종로구");
model1.addRow(addData2);
//출력창
area=new JTextArea();
this.add(area);
//jtable과 model 메서드 확인
//행 개수
int rowCount=tb3.getRowCount();
int rowCount2=model1.getRowCount();
area.append("tb3의 행 개수: "+rowCount+"\n");
area.append("tb3의 행 개수: "+rowCount+"\n");
//열 개수
int columnCount=tb3.getColumnCount();
area.append("tb3의 열 개수: "+columnCount+"\n");
area.append("1행 1열: "+tb3.getValueAt(1, 1)+"\n");
area.append("3행 2열: "+tb3.getValueAt(3, 2)+"\n");
area.append("3행 2열: "+model1.getValueAt(3, 2)+"\n"); //값 같음
//tb3에 마우스클릭 이벤트를 추가해서 area에 출력
tb3.addMouseListener(new MouseAdapter() {
}); //adapter는 메서드 꾸러미라서 원하는 거 뽑아 쓰면 됨
// @Override
// public void mouseClicked(MouseEvent e) {
//
// //클릭한 행번호 얻기
// int row=tb3.getSelectedRow();
//
// //클릭한 열번호 얻기
// int col=tb3.getSelectedColumn();
//
// //해당열,행에 있는 데이터를 얻어서 area에 출력
// area.append(row+","+col+"==>"+tb3.getValueAt(row, col));
//
// super.mouseClicked(e);
// }
}
public static void main(String[] args) {
new JTable_01("테이블");
}
}
'Swing' 카테고리의 다른 글
210826_JLabel+JTable+JTextArea (0) | 2021.08.26 |
---|---|
210826_JTable+JLabel+JButton+DefaultTableModel (0) | 2021.08.26 |
210824_Swing+label+Icon+Date (0) | 2021.08.24 |
210824_Swing+Checkbox+ActionListener+ItemListener (0) | 2021.08.24 |
210824_Swing+Label+Button+Arrays+Random (0) | 2021.08.24 |