在JFrame窗口中加入一个panel然后加入一个JLabel控件,为panel加入ComponentListener,监听JLabel的大小变化,位置变化,是否显示,隐藏。Jabel的名称为谢佳辉
时间: 2024-02-25 21:57:50 浏览: 156
java开发gui教程之jframe监听窗体大小变化事件和jframe创建窗体
5星 · 资源好评率100%
好的,以下是实现这个功能的示例代码:
```java
import java.awt.Dimension;
import java.awt.Point;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class ComponentListenerDemo extends JFrame {
private JPanel panel;
private JLabel label;
public ComponentListenerDemo() {
panel = new JPanel();
label = new JLabel("谢佳辉");
panel.add(label);
add(panel);
panel.addComponentListener(new MyComponentListener());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 300);
setVisible(true);
}
private class MyComponentListener implements ComponentListener {
public void componentResized(ComponentEvent e) {
Dimension size = label.getSize();
System.out.println("JLabel 大小变为 " + size.width + " x " + size.height);
}
public void componentMoved(ComponentEvent e) {
Point location = label.getLocation();
System.out.println("JLabel 位置变为 (" + location.x + ", " + location.y + ")");
}
public void componentShown(ComponentEvent e) {
System.out.println("JLabel 显示");
}
public void componentHidden(ComponentEvent e) {
System.out.println("JLabel 隐藏");
}
}
public static void main(String[] args) {
new ComponentListenerDemo();
}
}
```
这段代码创建了一个 JFrame,并在其中添加了一个 JPanel,再在 JPanel 中添加了一个 JLabel。我们通过 `addComponentListener()` 方法为 JPanel 添加了一个 ComponentListener 监听器,用于监听 JLabel 的大小变化、位置变化、显示、隐藏等事件。在 MyComponentListener 类中,我们实现了 ComponentListener 接口的方法,分别在事件发生时输出相应的信息。
你可以将这段代码复制到 Eclipse 或其他 Java IDE 中,运行起来看看效果。当你调整窗口大小、移动 JLabel、显示或隐藏 JLabel 时,程序会输出相应的信息。
阅读全文