Java实现:在JFrame窗口中加入Jpanel 在Jpanel中加入ContainerListener监听器,为Jpanel内加入JButton,删除JButton,JButton的名字命名为自己的学号,姓名
时间: 2024-02-20 13:00:04 浏览: 70
好的,下面是Java代码实现:
```
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MyPanel extends JFrame {
private JPanel panel;
public MyPanel() {
setTitle("My Panel");
setSize(400, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel = new JPanel();
panel.addContainerListener(new ContainerListener() {
public void componentAdded(ContainerEvent e) {
Component c = e.getChild();
if (c instanceof JButton) {
System.out.println("Button " + ((JButton) c).getText() + " added");
}
}
public void componentRemoved(ContainerEvent e) {
Component c = e.getChild();
if (c instanceof JButton) {
System.out.println("Button " + ((JButton) c).getText() + " removed");
}
}
});
add(panel);
JButton button = new JButton("学号-姓名");
panel.add(button);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
panel.remove(button);
System.out.println("Button " + button.getText() + " removed");
panel.revalidate();
panel.repaint();
}
});
}
public static void main(String[] args) {
MyPanel frame = new MyPanel();
frame.setVisible(true);
}
}
```
在上述代码中,我们创建了一个 `MyPanel` 类继承自 `JFrame` 类,并在构造函数中创建了一个 `JPanel`,并为其添加了一个 `ContainerListener` 监听器,用于监听 `JPanel` 中的组件添加和删除事件。
接着,我们在 `JPanel` 中添加了一个 `JButton`,并将其命名为学号-姓名。当用户点击该按钮时,我们将从 `JPanel` 中删除该按钮,并在控制台输出该按钮已被删除的信息。
最后,我们在 `main` 方法中创建了一个 `MyPanel` 对象,并将其设置为可见。当运行该程序时,我们可以通过添加或删除 `JButton` 来观察控制台输出的变化。
阅读全文