在进行这个之前必须引入第三包,substance.jar , 附件里面有。在网上搜的这个包,很多事不全的。我 也遇到了这个问题,不过这个包目前还可以。
我们可以设置控件的颜色,但是可选的颜色不是很多,不过还好我们可以自己配置相关的颜色。不过对于控制颜色的浅淡还是不太容易的。现在我们来看看substance是怎么做到的。Substance中有一个属性,colorization _factor (中文叫做:变色龙)。使用这个方法进行改变按钮颜色的深浅:
<!--EndFragment-->
JButton button = new JButton("sample");
button.setBackground(Color.yellow);
button.setForeground(Color.red);
button.putClientProperty(SubstanceLookAndFeel.COLORIZATION_FACTOR, new Double(0.8));
有一个地方我说一下,就是substanceLookAndFeel.COLORIZATION_FACTOR 这个是和字符串"substancelaf.colorizationFactor"对应的。换句话说上面的一行代码可以完全改为button.putClientProperty("substancelaf.colorizationFactor", new Double(0.8));
顺便解释一下这两个方法: setBackground();这个是设置控件的颜色,不包括控件上的字体,即背景颜色。setForeground();一般就是控件上的字体颜色,即前景颜色。
以下是完整代码:
package color;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import org.jvnet.substance.SubstanceLookAndFeel;
import org.jvnet.substance.skin.SubstanceBusinessBlackSteelLookAndFeel;
/**
* Test application that shows the use of the {@link
* SubstanceLookAndFeel#COLORIZATION_FACTOR} client property.
*
* @author Kirill Grouchnikov
* @see SubstanceLookAndFeel#COLORIZATION_FACTOR
*/
public class ColorizationFactor extends JFrame {
/**
* Creates the main frame for <code>this</code> sample.
*/
public ColorizationFactor() {
super("Colorization factor");
this.setLayout(new BorderLayout());
final JPanel panel = new JPanel(new FlowLayout());
JButton button = new JButton("sample");
button.setBackground(Color.yellow);
button.setForeground(Color.red);
// button.putClientProperty(SubstanceLookAndFeel.COLORIZATION_FACTOR, new Double(0.8));
panel.add(button);
JCheckBox checkbox = new JCheckBox("sample");
checkbox.setSelected(true);
checkbox.setBackground(Color.green.brighter());
checkbox.setForeground(Color.blue.darker());
panel.add(checkbox);
JRadioButton radiobutton = new JRadioButton("sample");
radiobutton.setSelected(true);
radiobutton.setBackground(Color.yellow);
radiobutton.setForeground(Color.green.darker());
panel.add(radiobutton);
this.add(panel, BorderLayout.CENTER);
JPanel controls = new JPanel(new FlowLayout(FlowLayout.RIGHT));
final JSlider colorizationSlider = new JSlider(0, 100, 50);
colorizationSlider.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
float val = (float) (colorizationSlider.getValue() / 100.0);
//一下两行代码,功能一样,可以互换。阿
// panel.putClientProperty(SubstanceLookAndFeel.COLORIZATION_FACTOR, new Double(
// val));
panel.putClientProperty(
"substancelaf.colorizationFactor", new Double(
val));
panel.repaint();
}
});
controls.add(colorizationSlider);
this.add(controls, BorderLayout.SOUTH);
this.setSize(400, 200);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
/**
* The main method for <code>this</code> sample. The arguments are ignored.
*
* @param args
* Ignored.
* @throws Exception
* If some exception occured. Note that there is no special treatment
* of exception conditions in <code>this</code> sample code.
*/
public static void main(String[] args) throws Exception {
UIManager.setLookAndFeel(new SubstanceBusinessBlackSteelLookAndFeel());
JFrame.setDefaultLookAndFeelDecorated(true);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new ColorizationFactor().setVisible(true);
}
});
}
}
<!--EndFragment-->
分享到:
相关推荐
Substance库是一个强大的Java Swing外观(LookAndFeel)框架,...通过正确引入和使用"substance5.2.jar",以及参考"使用方法.txt"中的指南,你可以充分利用Substance的功能,提升你的Java应用的视觉吸引力和用户体验。
这涉及到对颜色、字体和控件样式等属性的调整,可以通过继承`AbstractLookAndFeel` 并覆盖相应的方法实现。 6. **兼容性与性能**:尽管Substance.jar 提供了丰富的美化功能,但在低性能设备上可能会对性能产生一定...
Substance Painter是一款强大的纹理绘制软件,它允许艺术家创建复杂的材质和纹理,而Unity则是一个广泛使用的跨平台游戏引擎,用于构建高质量的交互式内容。这篇内容将详细介绍如何在Substance Painter 9.0.0版本和...
Substance是Java Swing的一个增强外观包,它提供了一系列预设的主题,如Business、Office、Plastic等,每个主题都有不同的颜色方案和控件风格。Substance允许开发者通过简单的API调用来改变应用程序的外观和感觉,...
- **设置主题**:在应用启动时,通过调用` SubstanceLookAndFeel.setLookAndFeel()`方法来切换到Substance主题。例如,你可以选择预设的`BusinessLookAndFeel`,`Office2007LookAndFeel`等。 - **自定义主题**:...
Substance库的使用方法相对简单。首先,你需要将库的JAR文件添加到项目的类路径中。然后,通过调用特定的API,可以轻松地在运行时切换应用程序的主题。例如,你可以使用`UIManager.setLookAndFeel()`方法,并传入...
2. **高度可定制**:Substance允许开发者通过修改配置或编写自定义皮肤类来改变控件的外观和行为,比如按钮、文本框、菜单等组件的颜色、形状、动画效果等。 3. **组件增强**:Substance对Swing的原生组件进行了扩展...
同时,对于标题栏,Substance可以实现自定义背景色、字体颜色、图标和标题位置,使标题栏更具个性化。 6. **易用性与兼容性**:Substance库易于集成到现有的Java Swing项目中,只需添加对应的jar文件即可。同时,它...
2. **高度可定制**:开发者可以根据自己的需求定制主题,改变控件的颜色、字体、边框样式等,甚至可以自定义复杂的动画效果,使应用界面与品牌风格保持一致。 3. **兼容性**:Substance库设计时考虑了与Java Swing...
8. **行业标准输出**:Substance Designer支持输出多种工业标准格式,如 Substance Painter 的 .sbsar 文件,以及通用的 .png、.tiff 等图像格式,确保在各种工作流程中都能使用。 总的来说,Substance Designer的...
最新版的substance6.0 http://java.net/projects/substance
Substance 提供了多种内置主题,如 Business Black Steel、Office 2007 和 Windows 7 等,这些主题不仅改变了按钮、文本框、菜单等组件的颜色和布局,还提供了平滑的动画效果,使用户的交互体验更佳。此外,...
4. `docs`或`api`目录:可能包含API文档,帮助开发者理解和使用库中的类和方法。 5. `samples`或`demo`目录:示例代码,展示如何在实际项目中应用Substance。 总之,"Substance 6.1 Swing 皮肤包"为Java Swing...
1. **丰富的主题库**:Substance 提供了多种预设主题,每种主题都有独特的颜色方案、按钮样式、控件外观等,让应用程序的界面更具有吸引力。 2. **动态效果**:比如按钮的按下效果、鼠标悬停时的高亮显示等,这些...
本教程合集全面深入地介绍了Substance Painter的使用技巧和工作流程,旨在帮助初学者和进阶用户提升在3D资产纹理创作上的技能。 1. **基本界面与设置** - 学习Substance Painter的界面布局,包括工作区、工具栏、...
1. **主题多样性**:Substance 支持大量的预定义主题,每个主题都有独特的颜色方案和设计风格,开发者可以根据需求选择合适的主题,或者创建自己的自定义主题。 2. **动画效果**:提供了丰富的组件动画,如滑动、...
本文将深入探讨Substance库的特性、使用方法以及如何通过它来优化JavaUI。 Substance库,主要由Trident项目开发,是一个开源的Java Swing组件外观库,它的核心功能是提供了一系列预定义的主题,使得Java应用程序的...
SwingX还包含了一些高级控件,如日期选择器、颜色选择器等,使得开发者能更方便地创建功能丰富的界面。 在描述中提到的"配置皮肤的简单代码",通常是指通过几行Java代码就可以切换或定制Substance的主题。例如,...
Substance不仅改变了控件的视觉效果,还对一些Swing组件进行了增强,例如按钮、滑块、表格等,增加了丰富的动画效果,使得交互更为生动和自然。 3. **可定制性**: 对于那些预设的主题不满意或者想要更个性化的...
使用"Substance.jar"时,你需要将其添加到你的Java项目类路径中。在Maven或Gradle项目中,可以通过添加依赖来实现。对于Maven,可以在pom.xml文件中添加如下依赖: ```xml <groupId>org.pushing-pixels ...