窗口resize事件?

我正在使用java编写一个简单的绘图程序,我想在调整JFrame组件大小时调用一些方法。 但我找不到像windowResizedListener这样的方法或像windowResizedEvent这样的事件。

我能做什么?!

使用componentResized()实现ComponentAdapter

 frame.addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent componentEvent) { // do stuff } }); 

覆盖ComponentAdapter特定方法是实现ComponentListener所有方法的便捷替代方法。

您必须使用ComponentListener中的componentResized 。

要访问Window Re-size方法事件,我在子类中使用了Implement ComponentListener。 这是一个自定义JPanel类,可用于将窗口大小写入GUI内的JLabel。 只需在main方法中实现此类并将其添加到JFrame中,您就可以调整窗口大小,它将动态显示窗口的像素大小。 (注意,您必须将JFrame对象添加到Class中)

 package EventHandledClasses; import javax.swing.*; import java.awt.*; import java.awt.event.ComponentListener; public class DisplayWindowWidth extends JPanel{ JLabel display; JFrame frame; public DisplayWindowWidth(JFrame frame){ display = new JLabel("---"); this.frame = frame; frame.addComponentListener(new FrameListen()); add(display); setBackground(Color.white); } private class FrameListen implements ComponentListener{ public void componentHidden(ComponentEvent arg0) { } public void componentMoved(ComponentEvent arg0) { } public void componentResized(ComponentEvent arg0) { String message = " Width: " + Integer.toString(frame.getWidth()); display.setText(message); } public void componentShown(ComponentEvent arg0) { } } } 

ComponentAdapter的一个例子

 //Detect windows changes window.addComponentListener(new ComponentAdapter( ) { public void componentResized(ComponentEvent ev) { label.setText(ev.toString()); } });