有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java7中的新Swing JLayer

我刚刚了解了J7中的一些新功能,对Swing中添加的这些JLayers感到困惑。因为它们太新了,我很难找到关于它们的好文献和使用它们的最佳实践

有没有人能给我指出正确的方向,或者提供一个例子,说明这些组件的作用以及它们(通常)的用途

谢谢你的意见


共 (1) 个答案

  1. # 1 楼答案

    JLayer可用于动态增强任何现有组件

    假设你有一些自定义按钮(比如MyJButton),你想添加鼠标悬停效果或者一些阴影。传统上,您将创建一个继承自MyJButton的新类,该类将实现您的新特性

    这种方法的一个问题是,新的效果只适用于MyJButton(因为您的新类扩展了MyJButton)。这种方法的另一个问题是,不能在运行时更改增强/效果,因为继承关系在编译时是固定的

    使用JLayer,您可以将LayerUI与任何现有的Component(不仅仅是JButton或MyJButton)放在一起,以便将自定义效果添加到组件中。如果你有一个可以进行着色的LayerUI,你可以把它和一个JButton、JTextField、JPanel或任何其他组件放在一起来执行着色。还可以在运行时更改层和组件的组成

    JLayer只是decorator模式的一个特例

    http://www.intermediatejava.com/2011/06/jlayer-for-swing/