2017-09-08 22 views
0

많은 보이지 않는 JButton이 포함 된 프로그램을 만들었지 만 마우스를 움직이면 왼쪽 상단 JButton의 배경을 차지하게되어 실제로 사용하기가 어려워집니다. 또한 마우스를 오른쪽 하단에 놓으면 모든 것이 다시 설정됩니다. 왜 이런 일이 일어나는 지 아십니까? 감사. 이 역할 경우 When initiating the programWhen using the mouse투명한 JButton 다른 배경을 가지고, 그것을 고치는 방법?

에 대한

이미지는, 그런데 내가 (의 JButton의 확장이다) 버튼이 보이지 않는 페인트 오버라이드 기능은 아무것도 할 필요가 있는지 확인합니다.

public void paint(Graphics g) { 

} 
+2

'setVisible'의 잘못된 점은 무엇입니까? – MadProgrammer

+0

더 나은 도움을 받으려면 [MCVE] 또는 [짧은 내용, 자체 포함, 올바른 예] (http://www.sscce.org/)를 게시하십시오. –

답변

1

제쳐두고, 보이지 않게하기 위해 페인팅 방법을 혼동하지 마십시오. 방법은 다음과 같습니다.

private JButton getInvisibleButton() { 
    // create a TRANSPARENT image to give the button a size 
    BufferedImage bi = new BufferedImage(16,16,BufferedImage.TYPE_INT_ARGB); 
    JButton b = new JButton(new ImageIcon(bi)); 
    b.setBorderPainted(false); 
    b.setContentAreaFilled(false); 
    b.addActionListener(actionListener); 
    // change to false to hide them even when focused 
    b.setFocusPainted(true); 
    return b; 
}