BorderLayout 및 JComponents가있는 JPanel에 MouseListener/FocusListener를 추가하면 마우스 또는 포커스 이벤트를 catch 할 수 없습니다. BorderLayout가있는 JPanel의 마우스 및 포커스 이벤트를 잡을 방법이 있습니까?테두리 레이아웃이있는 JPanel의 이벤트
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Application extends JFrame{
public Application(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel jPanel = new JPanel(new BorderLayout());
jPanel.add(new JButton("Button"));
jPanel.addMouseListener(new MouseAdapter() {
@Override
public void mouseExited(MouseEvent e) {
System.out.println("mouseExited");
}
});
// if border is set then listener works if not does not
// jPanel.setBorder(new LineBorder(Color.black, 1));
setLayout(new FlowLayout());
add(jPanel);
setSize(400, 400);
setVisible(true);
}
public static void main(String[]args){
new Application().setVisible(true);
}
}
이 없습니다 – mKorbel
와 함께 할 수 있지만 JPanel을 인스턴스화하고 두 jbuttons (중앙 및 그것의 상단) jpanel의 마우스 및 포커스 이벤트가 작동하지 않는 경우 – MOD
구성 요소에 속하는 영역이 해당 요소에 속하지 않기 때문에 것 같아요. 컨테이너. 모든 지역이 그 구성 요소에 속하기 때문에 국경 배치 된 컨테이너가 화재 마우스 및 초점 이벤트를 막을 수있는 이유는 여기에 있습니다. – MOD