기은P
시간이 멈추는 장소
기은P
  • Programming (272)
    • 개발노트 (1)
    • FrontEnd (56)
      • ES&JS 문법 (14)
      • HTML&CSS (4)
      • React 기본 (18)
      • React 심화 (12)
      • React 이슈 (2)
      • Project 연습 (1)
      • Next.js (5)
    • Backend&Devops (33)
      • AWS (2)
      • Docker (9)
      • Jenkins (6)
      • Nginx (6)
      • Node.js (1)
      • ElasticSearch (5)
      • 프레임워크&아키텍처 (2)
      • 암호화 (0)
      • 기타 (2)
    • 알고리즘 (3)
    • C# (8)
      • WPF (8)
    • Java (51)
      • 순수 Java (18)
      • RDF&Jena (12)
      • RCP&GEF (9)
      • JMX (5)
      • JMapper (3)
      • 오류해결 (4)
    • Database (21)
      • RDBMS (9)
      • NoSQL (2)
      • TSDB (1)
      • GraphQL (1)
      • Hibernate (3)
      • 데이터베이스 이론 (4)
      • Redis (1)
    • 프로토콜 (11)
      • Netty (4)
      • gRPC (5)
      • 프로토콜 개념 (2)
    • Server (4)
      • Linux (4)
    • 2020 정보처리기사 필기 (43)
      • 목차 (1)
      • 기출문제 (1)
      • 1과목 - 소프트웨어 설계 (6)
      • 2과목 - 소프트웨어 개발 (7)
      • 3과목 - 데이터베이스 구축 (8)
      • 4과목 - 프로그래밍 언어 활용 (7)
      • 5과목 - 정보시스템 구축 관리 (10)
    • 2020 정보처리기사 실기 (31)
      • 목차 (4)
      • 기출예상문제 (19)
      • 실기요약 (8)
    • 빅데이터분석기사 필기 (4)
      • 목차 (0)
      • 필기 요약 (3)
    • 전기 공학 (1)
      • CIM (1)
    • 산업자동화시스템 (3)
      • SCADA (1)
      • OPC UA (2)
    • 디자인패턴 (1)
    • 휴지통 (0)

공지사항

  • 공지사항/포스팅 예정 항목

최근 댓글

최근 글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
기은P

시간이 멈추는 장소

[Java] SWT Table Checkbox 상태 확인하는 방법
Java/순수 Java

[Java] SWT Table Checkbox 상태 확인하는 방법

2020. 5. 11. 10:58
반응형

[Java] SWT Table Checkbox 상태 확인하는 방법

 

 

1. Table 컴포넌트를 먼저 생성한다.
Table monitorTable = new Table(composite, SWT.BORDER | SWT.CHECK | SWT.FULL_SELECTION | SWT.MULTI);


// 테이블 컬럼 설정
TableColumn tblclmnIndex = new TableColumn(monitorTable, SWT.NONE);
tblclmnIndex.setWidth(50);
tblclmnIndex.setText("인덱스");
TableColumn tblclmnProcess = new TableColumn(monitorTable, SWT.NONE);
tblclmnProcess.setWidth(200);
tblclmnProcess.setText("프로세스");
TableColumn tblclmnStatus = new TableColumn(monitorTable, SWT.NONE);
tblclmnStatus.setWidth(50);
tblclmnStatus.setText("상태");

 

보통 Table을 사용할 때의 SWT 속성으로는 SWT.None을 사용하지만, 체크박스 기능을 추가하려면 위와 같이 CHECK, FULL_SELECTION, MULTI 같은 속성을 사용하겠다고 명시를 해주어야 한다.

 

 

 

2. Table Item을 추가한다.

 

public void addTableItem() {
		boolean status = false;
		try {
			status = mbeanModel.getProcessStatus(txtProcessName.getText());
		} catch (Exception ex) {
			ex.printStackTrace();
			status = false;
		}
		System.out.println(status);
		monitorIndex += 1;

		TableItem item = new TableItem(monitorTable, SWT.INSERT);
		item.setText(0, Integer.toString(monitorIndex));
		item.setText(1, txtProcessName.getText());
//		item.setImage(1, ModelFunction.getImageToConnectableModel(model.getSourceModel()));
		item.setText(2, String.valueOf(status));
//		item.setImage(2, ModelFunction.getImageToConnectableModel(model.getTargetModel()));
	}

 

setImage에 주석이 달린 것은 아이콘을 추기하기 위함이었는데 굳이 사용할 필요가 없어서 주석으로 대체했다.

인덱스와 ProcessName의 이름, status의 상태 값, 총 3개의 컬럼에 item.setText로 추가했다.

 

 

 

3. 체크 박스가 선택된 아이템을 삭제하는 기능이다.

 

	/**
	 * 체크박스 선택된 아이템 삭제
	 */
	public void deleteTableItem() {
		for(int i = 0 ; i<monitorTable.getItems().length;i++) {
			TableItem item = monitorTable.getItem(i);
			
			if (item.getChecked() == true) {
				monitorTable.remove(i);
				i--;
			}
			monitorTable.redraw();			
		}
	}

 

체크박스를 확인하는 방법은 의외로 간단하다.

처음엔 listener를 등록해서 별도의 맵을 만들어서, 어쩌구 저쩌구... 할 뻔하다가

item.getChecked()로 테이블 아이템이 체크박스에 선택이 되어있는지 아닌지를 확인 할 수 있었다.

마지막 redraw()는 있어도 되고 없어도 된다. (지웠으면 다시 그려야 할 것 같아서 의미심장해서 넣었음)

 

 

 

4. 실행 결과

 

 

 

 

중간에 있는 3,4를 지워서 5개의 아이템이 총 3개 아이템으로 줄었다.

반응형
저작자표시 변경금지 (새창열림)

'Java > 순수 Java' 카테고리의 다른 글

[Java] Java Cpu 사용량, 메모리 사용량, 디스크 사용량 구하기  (3) 2020.05.12
[Java] n번째 소숫점 자리 출력  (0) 2020.05.11
[Java] Eclipse 텍스트 더블 클릭시 하이라이트 유지하는 방법  (0) 2020.04.07
[Java] Java Project에 Maven 설치(컨버트)  (0) 2020.03.19
[Java] Java Bean이란?  (0) 2020.03.16
    'Java/순수 Java' 카테고리의 다른 글
    • [Java] Java Cpu 사용량, 메모리 사용량, 디스크 사용량 구하기
    • [Java] n번째 소숫점 자리 출력
    • [Java] Eclipse 텍스트 더블 클릭시 하이라이트 유지하는 방법
    • [Java] Java Project에 Maven 설치(컨버트)
    기은P
    기은P
    기은P의 블로그 일상과 개발 관련 포스팅 #React #Typescript #Next #Nest https://github.com/kimdongjang

    티스토리툴바