관리 메뉴

취미개발 블로그와 마음수양

자바 - 추상테이블을 이용한 테이블 구현 from ArrayList 본문

Language/샘플-핵심코드

자바 - 추상테이블을 이용한 테이블 구현 from ArrayList

아라한사 2014. 5. 8. 18:53

으음.. 테이블 구현하는게 무슨 오브젝트를 하기도 하고..참 이상한 방법을 쓰더라.


나는 ArrayList에서 테이블을 구현하고 싶었는데.그래서 구글링해봤다. 역시 구글신 ㅋㅋ



class PeoplesModel extends AbstractTableModel {

		private ArrayList peoples;

		public PeoplesModel(ArrayList peoples) {
			this.peoples = new ArrayList(peoples);
		}

		@Override
		public int getRowCount() {
			return peoples.size();
		}

		@Override
		public int getColumnCount() {
			return 4;
		}

		@Override
		public String getColumnName(int column) {
			String name = "??";
			switch (column) {
			case 0:
				name = "자리번호";
				break;
			case 1:
				name = "닉네임";
				break;
			case 2:
				name = "시간";
				break;
			
			case 3:
				name = "요금";
				break;
			}
			return name;
		}

		@Override
		public Class getColumnClass(int columnIndex) {
			Class type = String.class;
			switch (columnIndex) {
			case 0:type = Integer.class;
			break;
			case 1:type = String.class; break;
			case 2: type = String.class; break;
			case 3: type = Integer.class;
			break;
			}
			return type;
		}

		@Override
		public Object getValueAt(int rowIndex, int columnIndex) {
			People people = peoples.get(rowIndex);
			Object value = null;
			switch (columnIndex) {
			case 0:
				value = people.getNum();
				break;
			case 1:
				value = people.getNick();
				break;
			case 2:
				value = people.getHour();
				break;
			case 3:
				value = people.getMoney();
				break;
			}
			return value;
		}
	}



여기서 참고할만한 클래스가 피플클래스인데 보면 다음과 같다.

public class People {
	int num;
	String nick;
	String hour;
	int money;


나머지 생략한 거고... 그리고 구현부에서는 이렇게 한다.
// 테이블
		PeoplesModel model = new PeoplesModel(peoples);
		JTable table = new JTable(model);
		panel.add(new JScrollPane(table));


미리 peoples라는 어레이리스트를 생성자건 뭐건 받아와야한다.

'Language > 샘플-핵심코드' 카테고리의 다른 글

자바 인코딩  (0) 2014.06.24
파일 직렬화 저장  (0) 2014.05.08
한글이 안 깨지는 PopupMenu -> JPopupMenu..  (0) 2014.04.30
자바 액션 세가지 방법~  (0) 2014.04.30
쓰레드 제대로 죽이기~  (0) 2014.04.29