我应该编写一个GUI.该GUI中的每个组件都必须能够动态调整大小.
到目前为止,我使用了GlassPane和ContentPane,添加了一个JPanel并在其上添加了一个按钮.当单击GlassPane时,获取事件,分析基础组件,为此特殊组件创建一个新的句柄,并将其处理到所述组件.
我添加了一个按钮,该按钮应自动更改其大小.像我想要的那样工作.
但是:当我更改框架的大小并立即单击按钮时,什么也没有发生. GlassPane能够识别按钮,但似乎有些问题…
这是拦截GlassPane并将事件提供给组件的代码:
private void resendEvent(MouseEvent e) {
//Point p = SwingUtilities.convertPoint(content.getGlassPane(), e.getPoint(), content.getContentPane());
Point p = e.getPoint();
Component component = SwingUtilities.getDeepestComponentAt(content.getContentPane(), p.x, p.y);
System.out.println(component.toString());
Point p2 = component.getLocation();
MouseEvent event = new MouseEvent(component, e.getID(), e.getWhen(), e.getModifiers(), p2.x, p2.y, e.getClickCount(), e.isPopupTrigger());
//following lines have the same effects
Toolkit.getDefaultToolkit()