У меня есть главный JPanel
класс (не точный код):Щелкнув JPanel с внутренними компонентами
class Panel extends JPanel {
public void initGUI() {
setLayout(...);
JTabbedPane tabbedPane = new JTabbedPane();
JPanel boxPanel = new JPanel(...);
tabbedPane.addTab("test", boxPanel);
JLabel label = new JLabel("Label")
boxPanel.add(label);
add(tabbedPane);
}
}
Я хочу, чтобы иметь возможность щелкнуть в любом месте на панели или его внутренних компонентов и вернуть панель.
public class PanelMouseAdapter extends MouseAdapter {
public void mouseReleased(MouseEvent e) {
Panel panel = (Panel)e.getSource();
//do other stuff
}
}
И для каждой панели я добавляю этот прослушиватель для мыши.
Но он работает только по краям панели, любые внутренние компоненты игнорируются. Мне нужно, чтобы он мог щелкнуть в любом месте этой панели.
Мне нужно, чтобы все, что я нажимаю, вернет объект Panel (как в приемнике мыши).
Благодарим за любую отзыв.
ли компоненты, принадлежащие к JPanel, имеют либо MouseListeners непосредственно добавил к ним вы или косвенно добавленные Java (например, с JButtons, JTextComponents и т. Д.)? –
Если вы нацелитесь на открытие 'JpopupMenu', вы можете использовать' JComponent.setComponentPopupMenu', и он должен работать на панели и ее потомках. –
Единственный слушатель, к которому я обращаюсь, прикреплен к панели –