728x90
Table Widget
테이블 위젯은 엑셀에서 볼 수 있는 형태와 유사하다. 각 항목을 여러 셀로 구성된 행 하나에 출력하고, 여러 열을 세로로 나열한다. 테이블의 열은 TableColumn으로 정의하며 옵션에 따라 헤더, 폭, 정렬방식을 정의할 수 있다.
Table Widget 예제
public class TableExample {
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setText("Table Example");
shell.setBounds(100, 100, 350, 200);
shell.setLayout(new FillLayout(SWT.VERTICAL));
/**
* Table 위젯의 스타일 종류<br>
*
* SWT.SINGLE : 단일 선택 테이블<br>
* SWT.MULTI : 다중 선택 테이블<br>
* SWT.CHECK : 체크박스 테이블<br>
* SWT.FULL_SELECTION : 셀 단위가 아닌 행 단위로 선택하는 테이블
*/
final Table studentTable = new Table(shell, SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION);
studentTable.setHeaderVisible(true);
studentTable.setLinesVisible(true);
final Label textLabel = new Label(shell, SWT.BORDER | SWT.CENTER);
// 테이블 컬럼 생성
TableColumn studentTableNameColumn = new TableColumn(studentTable, SWT.NONE);
studentTableNameColumn.setText("이름");
TableColumn studentTableAgeColumn = new TableColumn(studentTable, SWT.NONE);
studentTableAgeColumn.setText("나이");
// 테이블 아이템(데이터)
TableItem tableItem1 = new TableItem(studentTable, SWT.NONE);
tableItem1.setText(new String[] { "이광기", "28"});
TableItem tableItem2 = new TableItem(studentTable, SWT.NONE);
tableItem2.setText(new String[] { "서성현", "28"});
TableItem tableItem3 = new TableItem(studentTable, SWT.NONE);
tableItem3.setText(new String[] { "이지은", "25"});
// pack 메서드는 열의 크기를 출력 내용의 최대 크기로 설정한다
studentTableNameColumn.pack();
studentTableAgeColumn.pack();
studentTable.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
TableItem[] selectedTableItems = studentTable.getSelection();
if (selectedTableItems.length > 0) {
StringBuilder stringBuilder = new StringBuilder();
for (TableItem tableItem : selectedTableItems) {
stringBuilder.append("이름 : " + tableItem.getText(0) + " 나이 : " + tableItem.getText(1) + "\n");
}
textLabel.setText(stringBuilder.toString());
} else {
textLabel.setText("");
}
}
});
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
}
'Eclipse RCP' 카테고리의 다른 글
Eclipse Framework Eclipse 4 테마 변경 기능 (0) | 2019.04.07 |
---|---|
SWT Tree Widget (0) | 2019.04.07 |
SWT Button Widget (0) | 2019.04.07 |
Active Page에서 View 가져오기 (0) | 2019.04.07 |
Eclipse RCP 윈도우 크기와 위치 저장 (0) | 2019.04.07 |
댓글