在JFrame窗口中加入一个panel然后加入一个儿abel控件,为panel加入ComponentListener, 监听儿abel的大小变化,位置变化,是否显示,隐藏。Jabel的名字为自己的名字。
时间: 2024-02-25 18:59:32 浏览: 115
好的,这是一个Java Swing的问题,我来给你讲一下如何实现。
首先,我们需要创建一个JFrame窗口和一个JPanel面板,并将面板添加到窗口中:
```
JFrame frame = new JFrame("My JFrame");
JPanel panel = new JPanel();
frame.add(panel);
```
然后,我们需要在面板中添加一个JLabel标签,并给它设置一个名字:
```
JLabel label = new JLabel("My Name");
label.setName("My Name Label");
panel.add(label);
```
接着,我们需要为面板添加一个ComponentListener,用于监听JLabel的大小变化、位置变化、是否显示和隐藏:
```
panel.addComponentListener(new ComponentListener() {
@Override
public void componentResized(ComponentEvent e) {
if (e.getComponent().getName().equals("My Name Label")) {
System.out.println("Label size changed");
}
}
@Override
public void componentMoved(ComponentEvent e) {
if (e.getComponent().getName().equals("My Name Label")) {
System.out.println("Label position changed");
}
}
@Override
public void componentShown(ComponentEvent e) {
if (e.getComponent().getName().equals("My Name Label")) {
System.out.println("Label is now visible");
}
}
@Override
public void componentHidden(ComponentEvent e) {
if (e.getComponent().getName().equals("My Name Label")) {
System.out.println("Label is now hidden");
}
}
});
```
最后,我们需要设置窗口的大小和可见性,并启动应用程序:
```
frame.setSize(400, 300);
frame.setVisible(true);
```
这样,当JLabel的大小、位置、显示状态发生变化时,就会打印相应的信息。
阅读全文