Daily coding

Java Basic : day 15 - AWT & SWING 9 : Table과 ScrollPane 본문

Language/Java_basic

Java Basic : day 15 - AWT & SWING 9 : Table과 ScrollPane

sunnnkim 2019. 12. 8. 16:07

Table과 ScrollPane

 

테이블 만들기

1. JTable 객체 생성시에 테이블 데이터와 컬럼 데이터를 넣어준다!

 

< 예시 > 

// row data는 2차원 배열로, 테이블 데이터를 작성해준다.

// 2차원배열의 열의 개수 (데이터 항목의 갯수) 는 컬럼 데이터와 개수를 맞춰줘야 한다.

String[][] rowData = {    // -----> 행데이터 값 : 4 , 열 데이터 값 : 3

          { "1001" , "가", "데이터1" } ,

          { "1002" , "나", "데이터2" } ,

          { "1003" , "다", "데이터3" } ,

          { "1004" , "라", "데이터4" } 

};

String[] columnData = {

         "번호", "이름",  "값"   // ----> 열데이터 값 3개

};

JTable tabel = new JTabel( rowData, columnData );

 

 

package day15.Lecture01_AWT.test14_table;

import java.awt.FlowLayout;
import java.awt.Label;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;


// JTable
// 게시판
public class WindowTest extends JFrame implements WindowListener, MouseListener {

	JTable table;
	JScrollPane scrPane;
	
	String columnNames[] = {
			"상품번호", "상품명", "상품가격", "상품회사"
	};
	
	Object rowDatas[][] = {
			{ 1001,"맛동산",1000,"오리온"},
			{ 1002,"초코파이",1200,"해태"},
			{ 1003,"감자깡",1500,"롯데"}
	}; 	// 데이터를 삽입하는 배열
	
	
	
	public WindowTest() {
		setLayout(new FlowLayout());
		table = new JTable(rowDatas, columnNames);	
        //(object) rowData: 테이블안에 자료, ColumName: 테이블의 참조
        
        
		table.addMouseListener(this);
		// 테이블 데이터 클릭 시 반응 만들기
        // 마우스 리스너 추가해서 마우스 클릭했을 때 이벤트
        // 반응하는 건 테이블이기 때문에 테이블에 마우스 리스너 달아야함
        
        
		scrPane = new JScrollPane(table);
		add(scrPane);
		
		
		
        
        
		// 상품명 나오게 하기
		Label label = new Label();
		label.setSize(200, 100);
		label.setLocation(10, 400);
		add(label);
		
		
		
		
		setSize(800,600);
		setLocation(0, 0);
		addWindowListener(this);
		setVisible(true);	

		
	}
	@Override
	public void windowOpened(WindowEvent e) {
		// TODO Auto-generated method stub

	}

	@Override
	public void windowClosing(WindowEvent e) {
		// TODO Auto-generated method stub
		System.exit(0);
	}

	@Override
	public void windowClosed(WindowEvent e) {
		// TODO Auto-generated method stub

	}

	@Override
	public void windowIconified(WindowEvent e) {
		// TODO Auto-generated method stub

	}

	@Override
	public void windowDeiconified(WindowEvent e) {
		// TODO Auto-generated method stub

	}

	@Override
	public void windowActivated(WindowEvent e) {
		// TODO Auto-generated method stub

	}

	@Override
	public void windowDeactivated(WindowEvent e) {
		// TODO Auto-generated method stub

	}
	
	@Override
	public void mouseClicked(MouseEvent e) {
		// TODO Auto-generated method stub
		
        // 마우스 클릭 시 이벤트 (데이터 정보 나오도록 메세지 창 만들기)
		int rowNum = table.getSelectedRow();
		String str = (int)rowDatas[rowNum][0] +"-"+ 
					(String)rowDatas[rowNum][1] + "-" +(int)rowDatas[rowNum][2] +"-" +(String)rowDatas[rowNum][3];
		JOptionPane.showMessageDialog(null, str);
		
	
	}
	@Override
	public void mousePressed(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}
	@Override
	public void mouseReleased(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}
	@Override
	public void mouseEntered(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}
	@Override
	public void mouseExited(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}
	
}