也不一定都是小技巧,有的是原来不知道,现在用到了就知道了的关于Swing的东西。
1.JFrame窗口最前端显示。public final void setAlwaysOnTop(boolean alwaysOnTop)。更改始终位于顶层的窗口状态。始终位于顶层的窗口是位于所有其他窗口之上的窗口,除了其他也是始终位于顶层的窗口。如果存在多个始终位于顶层的窗口,则不指定它们相互的叠放顺序,而且顺序与平台有关。
2.覆盖Component 的默认焦点状态。public void setFocusable(boolean focusable)。将此Component 的焦点状态设置为指定值。这个方法可以让JPanel等组件可以获得焦点。
3.组件获得输入焦点。public void requestFocus()。请求此Component获得输入焦点,并且此Component的顶层祖先成为获得焦点的 Window。此组件对于所要许可的请求而言必须是可显示的、可见的和可获得焦点的。此方法会尽力完成该请求;但是在某些情况下可能无法完成。在此Component接收FOCUS_GAINED事件前,开发人员永远不能假定此Component是焦点所有者。如果由于此Component的顶层Window没有成为获得焦点的窗口而拒绝了此请求,则记住此请求,并在后来用户使窗口成为获得焦点的窗口时许可此请求。
4.在调度当前事件的同时更新显示。public void paintImmediately(Rectangle r)。在大多数情况下,调用 repaint 更为高效,repaint会推迟实际的绘制并将多余的请求压缩到单个paint调用中。如果您需要在调度当前事件的同时更新显示,则此方法是有用的。Swing组件的事件响应是先响应事件,后重绘,这个方法可以立即绘制指定区域。
5.设置Swing组件可以重叠。public boolean isOptimizedDrawingEnabled()。如果此组件平铺显示其子组件(也就是它可保证子组件不重叠),则返回 true。通常,在此情况下,重绘系统的效率非常高。无法作出此保证的JComponent子类(如JLayeredPane)应该重写此方法以返回 false。
6.关闭JFrame窗口时候弹出提示信息。可以继承WindowAdapter,并重写public void windowClosing(WindowEvent event)方法。
7.在轻量级和重量级组件混用的情况下,禁用轻量级的JPopupMenu弹出窗口。public void setLightWeightPopupEnabled(boolean aFlag)。设置lightWeightPopupEnabled属性的值,默认情况下该值为 true。 默认情况下,当外观显示弹出菜单时,它选择使用轻量级(纯Java的)弹出菜单。轻量级弹出窗口比重量级(本机同位体)窗口效果更好,但是轻量级和重量级组件在GUI中不能很好地混合使用。如果应用程序混合使用轻量级和重量级组件,则应该禁用轻量级弹出窗口。某些外观可能始终使用重量级弹出菜单,不管此属性的值如何。
8. 自动调整JFrame窗口的大小。public void pack()。调整此窗口的大小,以适合其子组件的首选大小和布局。如果该窗口和/或其所有者仍不可显示,则两者在计算首选大小之前变得可显示。在计算首选大小之后,将会验证该Window。
1.JFrame窗口最前端显示。public final void setAlwaysOnTop(boolean alwaysOnTop)。更改始终位于顶层的窗口状态。始终位于顶层的窗口是位于所有其他窗口之上的窗口,除了其他也是始终位于顶层的窗口。如果存在多个始终位于顶层的窗口,则不指定它们相互的叠放顺序,而且顺序与平台有关。
2.覆盖Component 的默认焦点状态。public void setFocusable(boolean focusable)。将此Component 的焦点状态设置为指定值。这个方法可以让JPanel等组件可以获得焦点。
3.组件获得输入焦点。public void requestFocus()。请求此Component获得输入焦点,并且此Component的顶层祖先成为获得焦点的 Window。此组件对于所要许可的请求而言必须是可显示的、可见的和可获得焦点的。此方法会尽力完成该请求;但是在某些情况下可能无法完成。在此Component接收FOCUS_GAINED事件前,开发人员永远不能假定此Component是焦点所有者。如果由于此Component的顶层Window没有成为获得焦点的窗口而拒绝了此请求,则记住此请求,并在后来用户使窗口成为获得焦点的窗口时许可此请求。
4.在调度当前事件的同时更新显示。public void paintImmediately(Rectangle r)。在大多数情况下,调用 repaint 更为高效,repaint会推迟实际的绘制并将多余的请求压缩到单个paint调用中。如果您需要在调度当前事件的同时更新显示,则此方法是有用的。Swing组件的事件响应是先响应事件,后重绘,这个方法可以立即绘制指定区域。
5.设置Swing组件可以重叠。public boolean isOptimizedDrawingEnabled()。如果此组件平铺显示其子组件(也就是它可保证子组件不重叠),则返回 true。通常,在此情况下,重绘系统的效率非常高。无法作出此保证的JComponent子类(如JLayeredPane)应该重写此方法以返回 false。
6.关闭JFrame窗口时候弹出提示信息。可以继承WindowAdapter,并重写public void windowClosing(WindowEvent event)方法。
7.在轻量级和重量级组件混用的情况下,禁用轻量级的JPopupMenu弹出窗口。public void setLightWeightPopupEnabled(boolean aFlag)。设置lightWeightPopupEnabled属性的值,默认情况下该值为 true。 默认情况下,当外观显示弹出菜单时,它选择使用轻量级(纯Java的)弹出菜单。轻量级弹出窗口比重量级(本机同位体)窗口效果更好,但是轻量级和重量级组件在GUI中不能很好地混合使用。如果应用程序混合使用轻量级和重量级组件,则应该禁用轻量级弹出窗口。某些外观可能始终使用重量级弹出菜单,不管此属性的值如何。
8. 自动调整JFrame窗口的大小。public void pack()。调整此窗口的大小,以适合其子组件的首选大小和布局。如果该窗口和/或其所有者仍不可显示,则两者在计算首选大小之前变得可显示。在计算首选大小之后,将会验证该Window。