Java实现:在JFrame窗口中加入一个panel然后加入一个JLabel控件,为panel加入ComponentListener,监听JLabel的大小变化,位置变化,是否显示,隐藏。Jabel的名字为自己的名字。
时间: 2024-02-20 15:00:00 浏览: 227
Java Swing JFrame窗口的实现
好的,下面是Java代码实现:
```
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MyPanel extends JFrame {
private JPanel panel;
private JLabel label;
public MyPanel() {
setTitle("My Panel");
setSize(400, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel = new JPanel();
label = new JLabel("My Name");
panel.add(label);
add(panel);
panel.addComponentListener(new ComponentListener() {
public void componentHidden(ComponentEvent e) {
System.out.println("Label hidden");
}
public void componentMoved(ComponentEvent e) {
System.out.println("Label moved");
}
public void componentResized(ComponentEvent e) {
System.out.println("Label resized");
}
public void componentShown(ComponentEvent e) {
System.out.println("Label shown");
}
});
}
public static void main(String[] args) {
MyPanel frame = new MyPanel();
frame.setVisible(true);
}
}
```
在上述代码中,我们创建了一个 `MyPanel` 类继承自 `JFrame` 类,并在构造函数中创建了一个 `JPanel` 和一个 `JLabel`,并将 `JLabel` 添加到 `JPanel` 中。接着,我们在 `JPanel` 中添加了一个 `ComponentListener`,监听 `JLabel` 的大小变化,位置变化,是否显示和隐藏。
最后,我们在 `main` 方法中创建了一个 `MyPanel` 对象,并将其设置为可见。当运行该程序时,我们可以通过改变 `JLabel` 的大小、位置、显示和隐藏来观察控制台输出的变化。
阅读全文