반응형
자바 : 이미지를 버튼으로 사용
Java에서 이미지를 버튼으로 사용하고 싶습니다.
BufferedImage buttonIcon = ImageIO.read(new File("buttonIconPath"));
button = new JButton(new ImageIcon(buttonIcon));
그러나 이것은 여전히 이미지 뒤에있는 실제 버튼을 보여줍니다. 이미지가 버튼으로 작동하기를 원합니다. 어떻게 할 수 있습니까?
다음과 같이 테두리를 제거하십시오.
button.setBorder(BorderFactory.createEmptyBorder());
그리고 내용 1 :
button.setContentAreaFilled(false);
1 : @ 3sdmx가 질문에 추가 한 솔루션에서 가져옴
이미지를 레이블로 설정하고 마우스 리스너를 레이블에 추가하여 클릭을 감지하는 것이 좋습니다.
예:
ImageIcon icon = ...;
JLabel button = new JLabel(icon);
button.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
... handle the click ...
}
});
buttonIcon.setBorder (new EmptyBorder (0,0,0,0));
button.setBorderPainted( false );
이는 netbeans에서 contentAreaFilled 속성을 False 로 설정하여 쉽게 수행 할 수 있습니다.
BufferedImage buttonIcon = ImageIO.read(new File("myImage.png"));
button = new JButton(new ImageIcon(buttonIcon));
button.setBorderPainted(false);
button.setFocusPainted(false);
button.setContentAreaFilled(false);
그냥 쓰세요
button.setContentAreaFilled(false);
내가 아는 한 쉽게 할 수있는 방법은 없습니다. 이미지를 표시하고 버튼처럼 작동하려면 이미지를 표시하려면 JButton 클래스의 "paintComponent"메서드를 재정의해야합니다. JPanel 위치는 이미지 ( clicky )를 그리고 MouseListener / MouseAdapter를 추가하여 "mousePressed"이벤트를 처리합니다.
아래 단계를 따랐고 'ImageButton'을 성공적으로 만들 수있었습니다.
- 만들기
JButton
- 액션 리스너 추가
- 이미지 아이콘을 설정합니다 (
info.png
src \ main \ resources 폴더에 아이콘을 배치하고 클래스 로더를 사용하여로드했습니다). 프로젝트 구조는 다음과 같습니다. - 빈 설정
Border
- 콘텐츠 영역 채우기 비활성화
- 초점 기능 비활성화
- contentPane에 추가
PFB 나를 위해 일한 코드
JButton btnNewButton = new JButton("");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Info clicked");
}
});
String iconfilePath = this.getClass().getClassLoader().getResource("info.png").getFile();
btnNewButton.setIcon(new ImageIcon(iconfilePath));
btnNewButton.setBounds(10, 438, 39, 31);
btnNewButton.setBorder(BorderFactory.createEmptyBorder());
btnNewButton.setContentAreaFilled(false);
btnNewButton.setFocusable(false);
contentPane.add(btnNewButton);
위 코드에서 나온 출력 버튼은 다음과 같습니다.
참조 URL : https://stackoverflow.com/questions/4898584/java-using-an-image-as-a-button
반응형
'programing' 카테고리의 다른 글
Android 앱용 Kivy (0) | 2021.01.16 |
---|---|
플렉스 항목이 그 위에있는 항목에 단단히 정렬 될 수 있습니까? (0) | 2021.01.16 |
OpenGL (및 OpenGL ES)로 SVG 렌더링 (0) | 2021.01.16 |
코드 커버리지를위한 Eclipse 플러그인 (0) | 2021.01.16 |
액세스 네트워크 상태 (ACCESS_NETWORK_STATE)와 WIFI 상태 (ACCESS_WIFI_STATE) 권한의 차이점은 무엇입니까? (0) | 2021.01.16 |