본문 바로가기

자바공부

자바 고급 스윙컴포넌트 툴팁, ToolTip

728x90
반응형

* 스윙 컴포넌트에 마우스를 올리면 출력되는 문자열을 툴팁이라고 부른다.

툴팁은 사용자의 마우스가 있는 곳의 기능을 설명하기 위한 목적이며, 모든 컴포넌트가 툴팁을 가질 수 있다.

툴팁은 기본적으로 잠깐 나타났다가 사라진다.

 

툴팁 Example

* 모든 스윙 컴포넌트들이 툴팁을 가질 수 있으며 생성 방법 또한 단순하다.

간단히 JComponent의 setToolTipText(String msg) 메소드를 호출하여 툴팁 문자열 msg를 컴포넌트에 달아준다.

// New 버튼에 툴팁을 다는 Example
JButton b = new JButton("New");
b.setToolTipText("파일을 생성합니다.");

 

* ToolTipManager 클래스를 이용하여 툴팁과 관련된 시간을 제어할 수 있다.

툴팁에 관한 시간 제어는 모든 툴팁에 일괄적으로 적용되며 각 툴팁마다 관련 시간을 따로 제어할 수 없다.

1) ToolTipManager 객체 얻기

툴팁 시간 제어를 위해 우선 ToolTipManager 객체를 얻어야 한다.

ToolTipManager m = ToolTipManager.sharedInstance(); // ToolTipManager 객체 리턴

2) 툴팁 활성화

응용프로그램 내에 툴팁이 나타나도록 툴팁을 활성화할지 툴팁이 나타나지 않도록 툴팁을 비활성화할지 제어할 수 있다.

툴팁의 활성화/비활성화는 모든 툴팁에 일괄적으로 적용되며 개별 컴포넌트별로 제어할 수 없다.

ToolTipManager의 setEnabled(boolean b) 메소드를 이용한다.

m.setEnabled(false); // 툴팁이 나타나지 않도록 설정
// 인자를 true를 주면 모든 툴팁이 활성화 된다.

3) 초기 툴팁 출력 지연 시간 제어

사용자가 마우스를 컴포넌트 위에 올린 후, 툴팁이 출력되는 데까지 걸리는 지연 시간을 제어할 수 있다.

ToolTipManager의 setInitialDelay(int mills) 메소드를 호출하면 된다.

인자로 밀리초 단위의 시간을 지정한다.

이 시간 제어 역시 모든 컴포넌트에 일괄적으로 적용된다.

m.setInitialDelay(1000); // 마우스가 올라온 후 1000ms 후 툴팁이 출력되도록 설정

 

4) 툴팁 지속 시간 제어

툴팁이 켜져 있는 지속 시간을 제어할 수 있다.

ToolTipManager의 setDismissDelay(int mills)메소드의 인자로 밀리초 단위의 시간을 주어 제어한다.

m.setDismissDelay(1000); // 툴팁이 켜져 있는 지속 시간을 1000ms로 설정
반응형