Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

기록 저장소

JTable - DefaultTableModel 사용 본문

kitri 노트/java

JTable - DefaultTableModel 사용

resault 2019. 4. 8. 01:39

- DefaultTableModel를 사용한 JTable 생성 및 rowData 추가

	JPanel contentPane = new JPanel();
	JScrollPane scrollPane;
	
	String[] colName = {"이름", "전화번호", "주소"};
	String[][] rowData = {{"Oracle", "010-1234-5678", "서울"},
							{"Java", "010-5678-1234", "서울"}};

	DefaultTableModel model;
	JTable table;
	
	JButton btnAdd = new JButton("추가");
	
    
	public JTableTest1() {
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		contentPane.setLayout(new BorderLayout(0, 0));
		
//		table = new JTable(rowData, columnNames);//이렇게 생성하면, 추후에 데이터의 변경이 어려움
		model = new DefaultTableModel(rowData, colName);//모델생성
		table = new JTable(model);//모델을 사용해 테이블 생성
		
//		scrollPane = new JScrollPane();
//		scrollPane.add(table);//스크롤팬을 따로 생성하고 add()로 테이블 붙이면 나타나지 않음	//왜지?
//		scrollPane.setViewportView(table);//스크롤팬을 따로 생성했을 때는 setViewportView() 사용
	
		scrollPane = new JScrollPane(table);//테이블을 사용해 스크롤 팬 생성

		contentPane.add(scrollPane, BorderLayout.CENTER);
		contentPane.add(btnAdd, "South");
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		setContentPane(contentPane);
		setVisible(true);
		
		btnAdd.addActionListener(this);
	}

	
	@Override
	public void actionPerformed(ActionEvent e) {
		String[] add = {"HTML", "010-3333-3333", "서울"};
		model.addRow(add);//모델에 추가하면 테이블에 자동으로 추가됨
	}

 

- 테이블을 더블클릭해도 수정할 수 없게 설정하는 방법

	String[] colName = {"이름", "가격", "수량"};
	String[][] rowData = {{"꼬북칩", "1000","5"},
						{"새우깡", "800","3"}};
	
	public JTable table;
	
	public TableModel() {
		this.setDataVector(rowData, colName);
		table = new JTable(this);	
	}
	
	@Override //isCellEditable()을 override해서 return값을 false로 주면 됨
	public boolean isCellEditable(int row, int column) {
		return false;
	}

 

'kitri 노트 > java' 카테고리의 다른 글

정적 멤버  (0) 2019.05.11
JDBC  (0) 2019.04.09
[Java #22] util package  (0) 2019.03.27
[Java #21] lang package_StringBuffer Class  (0) 2019.03.27
[Java #20] lang package_String Class  (0) 2019.03.25