Как уловить события действия из компонента JPanel
в родительском окне JFrame
в Java Swing?Вывод событий действия из компонента JPanel в родительском окне JFrame
Мне тяжело пытаться создать пользовательский компонент в Swing.
Идея, которую я получил, заключается в создании пользовательского JPanel в Swing, который содержит JButton
и захватывает действия над этими кнопками в родительском окне JFrame.
Я хотел бы применить метод addActionListener()
к моей пользовательской JPanel, как если бы это была кнопка.
Должен ли я распространяться от JComponent
вместо JPanel
?
Я очень ценю вашу помощь и ваше время.
package pizzeria.interfaz;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.event.AncestorEvent;
import javax.swing.event.AncestorListener;
public class AplicacionCliente extends JFrame{
public AplicacionCliente() {
Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
PanelMenu panelmenu = new PanelMenu(); //PanelMenu extends JPanel and has my buttons
JButton bot = new JButton("Prueba");
bot.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
System.out.println("Botonazo!");
}});
contentPane.add(bot);
contentPane.add(panelmenu, BorderLayout.LINE_END);
}
}
Для лучшей помощи раньше, опубликовать [SSCCE] (http://sscce.org/). –
Не выдвигайте рамки или другие контейнеры верхнего уровня. Вместо этого создайте & используйте экземпляр одного. –