我一直想用 Java 创建自定义组件,或者自定义现有组件,但我的搜索从未产生任何有用的结果。所以我决定向 StackOverflow 社区询问:

在哪里可以找到有关自定义 Java GUI 组件的一般信息?

当我说定制时,我不是在谈论改变颜色、字体等。我是说 真的 定制它们。以下是两个模型示例组件:

Custom Components Mockup

笔记
我开始这个问题主要是想了解如何创建上面两个自定义组件。但后来我意识到,不存在关于破解 Swing 组件的普遍问题。所以我认为最好有一个资源列表。

如果您想知道模型中的两个组件如何工作,如下所示:

自定义的 JScrollPane,每个方向都有两个滚动条。每个滚动条的行为都不同。例如,外部的滚动正常,而内部的滚动则以更大的速度移动视图。 皮卡萨-类似的方式。我实际上从谷歌小组得到了一个有效的(!)答案 这里, ,但这只是代码。

第二个是自定义 JComboBox,当展开弹出列表时,其末尾有一个 JComponent。它可以是任何东西,从带有图标的简单 JLabel 到以某种方式操作列表的 JButton。

但这个问题与那些特定的组件无关。是关于 寻找资源(网站、书籍、文章等)来学习如何创建它们.

有帮助吗?

解决方案

本文如何编写自定义Swing组件应该非常有用。它包括复制具有离散步骤和连续范围的Windows滑块控件。

其他提示

JDK是开源的。要了解如何编写Swing组件,没有比Swing组件的源更好的地方了。通常,在创建自定义组件时,您会对以下一项或多项感兴趣:{交互语义,可视化表示,组合结构}

从最简单的情况开始:

被动组件: JLabel
交互式组件: JButton

JLabel 将演示 JComponent 的准系统扩展,用于组件的自定义绘制;在这种情况下,它将'text'字符串值绘制为其表示。

除了绘制组件之外,

JButton 将演示用户交互的准系统扩展。

Filthy Rich Clients 是一本关于此主题的优秀,非常易读的书。它更多的是改进Swing组件的外观和感觉,而不是创建全新的组件,但它确实进入了Swing的内部并提供了许多实际的例子。

这是一个非常开放的问题,简单的简单回答是您将 JComponent 或其中一个后代,并添加您需要的功能。显然,根据你想要做的事情,这可能会有所不同。对于初学者,我建议您阅读Sun的使用Swing组件的教程哪里有关于如何使用滚动窗格的示例弹出菜单。一旦您阅读了这些并进行了实验,您可能会有更具体的问题,这些问题将更容易让人们提供经过深思熟虑的答案。

如果模拟中的两个组件都是您想要实现的,那么让我们更好地了解您希望它们如何运行将会产生更好的答案。

阅读 Swing Hacks:Tips&用于构建Killer GUI的工具(Marinacci,Adamson)。恕我直言,这是一本有效处理摇摆乐的必备书。

我个人认为上述答案过于笼统或模糊。另外,由于有人不可避免地会像我一样遇到这个线程,我不妨提供我发现的内容:

希望这可以帮助...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top