2014-01-22 6 views
2

저는 메모리 일치 게임을 만들려고합니다. 클릭 할 때 JButton 위에 놓는 아이콘 이미지가 있습니다. 내 질문은 JButton에서 아이콘을 제거 할 수있는 방법이 있습니까? 사용자가 클릭 할 때 이미지가 표시되고 사용자가 두 번째 버튼을 클릭해도 첫 번째 버튼과 동일한 이미지가 나타나지 않으면 사라지게 만들려고합니다. 아이디어가 있습니까?JButton에서 아이콘을 제거하는 방법?

+0

귀하의 질문은 질문을 명확하게 몇 가지 코드를 사용할 수 있습니다. – rene

답변

7

간편한 아이콘을 null으로 설정하십시오. 아이콘이 없으므로 아이콘이 제거됩니다.

button.setIcon(null); 
+2

완벽하게 작동합니다. 나는 단지 그것을 overthinking하는 것 같았다. 도움에 감사드립니다. –

3

다음 코드를 사용하여

JButton button = new JButton(); 
    button.setIcon(null); 
2

그것을 할 수있는 가장 좋은 방법을, 같은 크기의 투명 아이콘으로 기존의 아이콘을 교체하는 것입니다. 이렇게하면 버튼이 크기를 변경하지 않고 레이아웃에서 발생하는 다른 GUI 요소의 배치를 방해 할 수 있습니다. E.G.

BufferedImage ourIcon = ... 
BufferedImage invisibleIcon = new BufferedImage(
    ourIcon.getWidth(), ourIcon.getHeight(), BufferedImage.TYPE_INT_ARGB); 

그런 다음, 단순히 :

// use a JToggleButton instead of a JButton - it will remain pressed 
JToggleButton button = new JToggleButton(new ImageIcon(ourIcon)); 
button.setPressedIcon(new ImageIcon(invisibleIcon)); 
// start a timer to change the state back, if required.. 
관련 문제