본문 바로가기

자바공부

자바 Swing JButton, 버튼 컴포넌트, 명품자바프로그래밍11장

728x90
반응형

* JButton은 버튼 모양의 컴포너트를 생성하는 데 이용된다.

버튼을 마우스로 클릭하거나 키로 선택하면 Action 이벤트가 발생한다.

이미지와 문자열을 가진 버튼 컴포넌트

생성자:

1) JButton()

문자열이나 이미지가 없는 빈 버튼 생성

2) JButton(Icon image)

이미지만을 가진 버튼 생성

3) JButton(String text)

문자열만을 가진 버튼 생성

JButton btn = new JButton("hello");

4) JButton(String text, Icon image)

문자열과 이미지를 모두 가진 버튼 생성

 

* JButton은 사용자의 버튼 조작에 대한 시각적 효과를 극대화하기 위해 마우스 접근에 따라 3개의 서로 다른 버튼 이미지를 출력한다.

1) normalIcon

버튼이 보통 상태에 있을 때 출력되는 이미지로서 생성자를 통해 전달된다.

2) rolloverIcon

버튼 위에 마우스가 올라가면 출력되는 이미지로서 JButton의 setRolloverIcon(Icon image) 메소드를 호출하여 이미지를 설정한다.

3) pressedIcon

마우스 버튼이 눌러져 있는 동안 출력되는 이미지로서 JButton의 setPressedIcon(Icon image) 메소드를 호출하여 이미지를 설정한다.

ImageIcon normalIcon = new ImageIcon("images/normalIcon.gif");
ImageIcon normalIcon = new ImageIcon("images/rolloverIcon.gif");
ImageIcon normalIcon = new ImageIcon("images/pressedIcon.gif");

JButton button = new JButton("테스트버튼", normalIcon);
button.setRolloverIcon(rolloverIcon);
button.setPressedIcon(pressedIcon);

 

* 버튼과 레이블 컴포넌트는 정렬을 이용하여 자신의 영역 내에 문자열과 이미지의 위치를 결정한다.

수평 정렬과 수직 정렬이 가능하다.

 

1) 수평 정렬

왼쪽, 중앙, 오른쪽 중 하나의 기준으로 정렬 가능 하다.

void setHorizontalAlignment(int align)
// * align : 정렬의 기준을 지정한는 값으로 다음과 같다.
// SwingConstants.LEFT, SwingConstants.CENTER, SwingConstants.RIGHT

// 왼쪽 정렬을 위한 소스
contentPane.setLayout(new BorderLayout());
ImageIcon normalIcon = new ImageIcon("images/normalIcon.gif");
JButton btn = new JButton("call~~", normalIcon);
btn.setHorizontalAlignment(SwingConstants.LEFT); // 왼쪽 정렬
contentPane.add(btn);

 

2) 수직 정렬

수직 정렬은 위쪽, 중앙, 아래쪽 중 하나의 기준으로 정렬 가능 하다.

void setVerticalAlignment(int align)
// * align : 정렬의 기준을 지정한는 값으로 다음과 같다.
// SwingConstants.TOP, SwingConstants.CENTER, SwingConstants.BOTTOM

// 위쪽 정렬을 위한 소스
contentPane.setLayout(new BorderLayout());
ImageIcon normalIcon = new ImageIcon("images/normalIcon.gif");
JButton btn = new JButton("call~~", normalIcon);
btn.setVerticalAlignment(SwingConstants.TOP); // 위쪽 정렬
contentPane.add(btn);

반응형