2009-02-05 6 views
5

Swing 인터페이스에서 토글 이미지 버튼을 만들려면 어떻게해야합니까? 두 이미지 imageon.jpg와 imageoff.jpg가 있습니다. 기본적으로 이미지를 토글하고 이벤트를 발생시키는 클릭 가능한 요소가 필요합니다.Java : 토글 버튼으로 이미지

업데이트 : 이미지 주변의 일반적인 '크롬'을 무시할 수있는 방법이 있습니까? 나는 내부에 이미지가있는 버튼에 간단한 이미지를 선호합니다.

답변

10

ImageIcon으로 이미지를로드하십시오. JToggleButton을 만듭니다. 그런 다음 AbstractButton.setIcon/setPressedIcon/setSelectedIcon과 함께 아이콘을 적용하십시오. 테두리를 AbstractButton.setBorderPainted(false)으로 제거하십시오.

+2

음, 그 방법을 잊어 버렸습니다. (그리고 그들은 Javadoc에 존재하지 않는다는 것을 기억하지 않는 한 Javadoc에 나타나지 않습니다.) +1 –

+2

정말 이상합니다 ... 나는 또한 borderpainted를 false로 만들려고했으나 여전히 이미지의 경계선이나 토글을 가지고 있습니다. 그것을 해결하는 방법? :( – gumuruh

3

어때 대략 JToggleButton? 하위 클래스를 선택하고 paint()을 재정 의하여 선택 여부에 따라 올바른 이미지를 그릴 수 있습니다.

또 다른 방법은 JPanel을 서브 클래스 화하고 마우스 클릭을 catch하여 paintComponent()을 무시하여 올바른 이미지를 그릴 수 있습니다. 이렇게하면 그려지는 유일한 것은 실제 이미지입니다 (JToggleButton 옵션과 달리).

+0

JPanel 도움말 주셔서 감사합니다! 이 자료를 찾았습니다. 필요한 자료를 만들 수 있기를 바랍니다. http://java.sun.com/docs/books/tutorial/uiswing/painting/index.html – Dan

1

가장 좋은 방법은 AbstractButton을 하위 클래스로 설정하고 border 및 background와 같은 속성을 생성자에서 설정하는 것입니다.

MyButton() { 
    setBorder(null); 
    setBackground(null); 
    } 
2

JButton에도 동일한 문제가있었습니다. 이것을 시도하십시오 :

버튼 주위에 추가 공간을 없애기 위해 기본 크기를 설정해야합니다. 이것은 Windows 7 및 Mac OS X 10.6에서 저에게 효과적이었습니다.

관련 문제