2009-01-11 97 views

回答

3

这当然可以做到显著的定制,因为这是在不同的外观和感觉选项呢。

你可以看看pluggable look and feel architecture,虽然这可能是对你想要的东西矫枉过正。

或者,你也许可以子类化现有的组件,并使用/覆盖他们现有的方法,如果它只是微调你需要的。

1

对于应用程序的广泛变化,创建(或扩展)您自己的pluggable look and feel可能是正确的解决方案。对于特殊效果,您还应该看看painters framework。请注意,它们是swingx的一部分,不是核心Swing。

5

如果只是改变字体,背景,边框等,那么简单。Swing默认可以完成所有这些操作。即对于一个JButton:

JButton aButton ... 
aButton.setBackground(new Color(...)); 
aButton.setForeground(new Color(...)); 
aButton.setFont(new Font(...)); 
aButton.setBorder(null); 

看一看在JComponent大多数这些方法。或者,对于更多组件特定的方法,在组件的javadoc中。

我会建议你在The Java TutorialJComponent API甚至是一本书读一些基础知识,如Filthy Rich ClientsJava HowTo Program

自定义外观和感觉会有点太多。我建议先看看上述解决方案是否不适合您的需求,然后去解决。

+0

这不是真的:setFont,setColor ...不是静态方法,它们不允许为每种组件设置默认值。 – jfpoilpret 2009-01-13 10:41:03

0

如果您想大量设计您的组件,获得第三方外观并使用它可能是您的最佳选择。我个人最喜欢的是Substance,它甚至有一个API用于在Substance之上创建完全自定义的LAF。

3

有几个开放的soruce项目,允许您使用类似CSS的格式对Swing组件进行样式化。

您应该看看Java CSS项目。它在this blog post中引入。