일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 클래스
- 언박싱
- wrapper
- maven
- 박싱
- 무한
- 내장객체
- Short
- 루프
- Java
- 인텔리제이
- 빌드
- 싱글톤
- 자동형변환
- 콜렉션
- start.spring.io
- dependency
- Scanner
- 메소드
- bootstrap
- 제네릭
- 제너릭
- 컬렉션
- 스프링
- unboxing
- Jenkins
- suvlet
- https://start.spring.io
- boxing
- 싱글턴
Archives
- Today
- Total
Developer Gonie
[5주차] 99. AWT+SWING, JTable 만들기(Vector배열을 이용하는 생성자를 이용한 방법-> 파일로부터 읽어와서 만들때 유용) + 만들어진JTable에서 데이타 접근 본문
K-DigitalTraining 강의/1. Java
[5주차] 99. AWT+SWING, JTable 만들기(Vector배열을 이용하는 생성자를 이용한 방법-> 파일로부터 읽어와서 만들때 유용) + 만들어진JTable에서 데이타 접근
이대곤 2022. 6. 9. 12:38table.txt
이름/국어/영어/수학
써니/33/44/55
윤아/66/77/22
수영/54/98/99
티파니/11/22/33
효연/99/88/77
예시코드
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
class Sub10 extends JFrame{
JTable table;
JScrollPane sPane;
Container contentPane;
Vector<String> columnName = null; // String을 원소로 갖는 갖는 리스트
Vector<Vector<String>> data = null; // String 여러개를 갖는 백터들을 원소로 갖는 리스트
int cnt = 1;
Sub10(String title){
super(title);
columnName = new Vector<String>();
data = new Vector<Vector<String>>();
getFile(); // 파일에서 한줄씩 읽어와 columnName과 data 객체를 완성시킴
compose(); // 위에서 만들어진 JTable을 생성하고 Scrollbar panel에 올리고, 작업 영역에 올리는 메소드
setSize(500,300);
//setResizable(false); // 크기변경을 할수 없게 고정크기로
setVisible(true);
}
private void compose() { // JTable을 생성하고 Scrollbar panel에 올리고, 작업 영역에 올리는 메소드
table = new JTable(data, columnName);
sPane = new JScrollPane(table);
contentPane = getContentPane();
contentPane.add(sPane, BorderLayout.CENTER);
JButton btn = new JButton("출력");
contentPane.add(btn, BorderLayout.SOUTH);
btn.addActionListener(new TablePrint(table));
}
public void getFile() {
File file = new File("C:\\Java_ldg\\12__AWT\\src\\table.txt");
FileReader fr;
try {
fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String line;
while((line = br.readLine()) != null) { // 1줄씩 읽어들임
tableMake(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private void tableMake(String line) {
// line: 이름/국어/영어/수학
// line: 써니/33/44/55
String[] tokens = line.split("/");
if (cnt++ == 1) { // 파일내용중 첫번째 줄은 column 명으로 사용
for(int i = 0; i < tokens.length; i++) {
columnName.add(tokens[i]);
}
}else {
Vector<String> one = new Vector<String>();
for(int i = 0; i < tokens.length; i++) {
one.add(tokens[i]);
}
data.add(one);
}
}
}
class TablePrint implements ActionListener {
JTable table;
TablePrint(JTable table) {
this.table = table;
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("버튼눌림");
int rowCount = table.getRowCount();
int columnCount = table.getColumnCount();
System.out.println("rowCount:" + rowCount + " columnCount:" + columnCount);
for (int i = 0; i < columnCount; i++) {
String colName = table.getColumnName(i);
System.out.print(colName + "\t");
}
System.out.println();
for (int i = 0; i < rowCount; i++) {
for(int j =0; j< columnCount; j++){
Object obj = table.getValueAt(i, j);
System.out.print(obj + "\t");
}
System.out.println();
}
}
}
public class Ex12_10_JTable {
public static void main(String[] args) {
new Sub10("JTable");
}
}
'K-DigitalTraining 강의 > 1. Java' 카테고리의 다른 글
Comments