또 다른 JComponnent를 추가 할 수있는 클래스를 만들어 Top-Right Corner에 클릭 가능한 설정 아이콘을 만듭니다.특정 영역의 JPanel에서 마우스 커서를 어떻게 재구성 할 수 있습니까?
사용자가 g.drawImage(image, getWidth() - widgetSize, 0, widgetSize, widgetSize, imageObserver)
영역을 클릭 할 때 발생하는 ActionListener를 추가하고 싶습니다.
이 문제를 해결하는 올바른 방법입니까? 아니면 더 좋은 방법이 있습니까?
package de.display;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionListener;
import java.awt.image.ImageObserver;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;
public class JWidget extends JPanel {
private int widgetSize = 50;
private boolean showWidgetIcon = true;
Image image;
ImageObserver imageObserver;
public JWidget() {
this(new ImageIcon("src/main/resources/Icon-Settings.png"));
}
public JWidget(String filename) {
super();
ImageIcon icon = new ImageIcon(filename);
image = icon.getImage();
imageObserver = icon.getImageObserver();
}
public JWidget(ImageIcon icon){
super();
image = icon.getImage();
imageObserver = icon.getImageObserver();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
if(showWidgetIcon)
{
g.drawImage(image, getWidth() - widgetSize, 0, widgetSize, widgetSize, imageObserver);
}
}
public int getWidgetSize() {
return widgetSize;
}
public void setWidgetSize(int widgetSize) {
this.widgetSize = widgetSize;
}
public void setImageIcon(ImageIcon icon) {
image = icon.getImage();
imageObserver = icon.getImageObserver();
}
public boolean isWidgetIconVisible() {
return showWidgetIcon;
}
public void setShowWidgetVisibility(boolean showWidgetIcon) {
this.showWidgetIcon = showWidgetIcon;
}
public void addPressSettingsActionListener(ActionListener actionListener)
{
listenerList.add(ActionListener.class, actionListener);
}
}
'MouseListener'을 추가합니다. ['MouseEvent'] (http://docs.oracle.com/javase/8/docs/api/java/awt/event/MouseEvent.html)에는 필요한 모든 세부 정보가 들어 있습니다. –
'new ImageIcon ("src/main/resources/Icon-Settings.png")'애플리케이션 리소스는 배포 시점까지 임베디드 리소스가 될 것이므로 지금 당장 액세스하는 것이 현명합니다. [tag : embedded-resource]는 파일이 아닌 URL로 액세스해야합니다. [info. URL을 구성하는 방법은 임베디드 리소스 페이지 (http://stackoverflow.com/tags/embedded-resource/info)를 참조하십시오. –