Swing是一把很菜的刀

来源:互联网 发布:环球易购 php 编辑:程序博客网 时间:2024/04/29 16:15

之前看过一篇博客,叫Swing是一把刀,写得还行,但Swing的bug却也在刀系列博客中出现,

Swing是一把刀系列的博客上描叙了AWTUtilities.setWindowOpaque(window, false);造成的文字模糊的bug,然而Swing的bug远不止于此。

1.AWTUtilities.setWindowOpaque(window, false);造成的窗体内所有组件文字模糊,然而在Swing中必须使用此方法才能创建一个透明的窗体。

2.window.setShape(shape)使窗体的边缘轮廓粗糙,凸凹不平。

3.window.setUndecorated(true),设置窗口去掉装饰后造成:最大化时将任务栏覆盖。

4.window.setUndecorated(true),设置窗口去掉装饰后造成:窗体状态无法从7(最大化(Frame.MAXIMIZED_BOTH)+任务栏图标化(Frame.ICONIFIED))还原成6(最大化(Frame.MAXIMIZED_BOTH)),而是还原成了0(正常(Frame.NORMAL))。

5.window.setUndecorated(true),设置窗口去掉装饰后造成:窗口从6(最大化(Frame.MAXIMIZED_BOTH))再变成0(正常(Frame.NORMAL))时,窗口大小和位置无法设置成0(正常(Frame.NORMAL))时的位置和大小,而是被设置成6(最大化(Frame.MAXIMIZED_BOTH))时的大小,虽然此时状态已经是0(正常(Frame.NORMAL)),但窗口位置和大小仍然是6(最大化(Frame.MAXIMIZED_BOTH))。

6.component.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)),组件设置手型鼠标形状后,Swing的手型鼠标图标跟Windows系统的手型鼠标图标相比非常粗糙。

7.swing的UI设计非常垃圾,虽然将数据这块抽象了出来,但是UI样式却没有抽象出来,如background,foreground,border,等是直接定义在component中的,为什么不定义一个Style对象将component的UI样式属性抽象出来呢?

8.未完待续...


0 0
原创粉丝点击