java - Java 7 中的新 Swing JLayer

标签 java swing components

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

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

感谢您的任何意见!

最佳答案

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

假设您有一些自定义按钮(例如 MyJButton),并且您想要添加鼠标悬停效果或一些阴影。传统上,您将创建一个继承自 MyJButton 的新类来实现您的新功能。

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

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

JLayer 只是 decorator 的一个特例。模式。

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

关于java - Java 7 中的新 Swing JLayer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7404161/

相关文章:

java - 如何手动包含 maven 更新由于防火墙限制而无法获取的 jar 文件

java - GWT 多分页(最好/最简单的方法)

java - 线程安全对象数组

Java:显示 GIF 图像不起作用

java - 在迭代集合时从集合中删除对象

laravel - 如何在 Laravel 5.4 中加载 Vue 组件?

java - 检查字符串中的大写字母并找到位置

java - 如何将标签绘制到自定义 JButton 上?

angular - 如何将 npx Bootstrap 日期选择器语言更改为 pt-br?

Angular 5如何从组件测试中的下拉列表中获取选定的选项文本值