`

Java Synth用法

    博客分类:
  • JAVA
阅读更多

// Java Document

个人认为这东东现在还不是太好,最重要的是不为对组件的位置排版!这也不奇怪人家才刚出不久吗!希望它不久能做到这一点!


1.   Synth概述

Synth是Sun提供的一种新的Look And Feel,与以往的Look And Feel不同,这是个通过配置文件进行定义的,插入式的Look And Feel。在不修改代码的情况下,用户可以仅通过修改配置文件,即可对控件的字体,颜色等属性进行修改。
2.   Synth配置文件
a)        说明:Synth配置文件是一个XML文件,她是整个Synth配置的关键,而要掌握Synth,最主要的就是要熟悉该文件的DTD,因为他规定了什么可以配置,而什么是不可配置的。
3.   Synth元素
a)        说明:synth元素是整个Synth配置文件的根元素,可以在该元素下通过font,color,imagePainter等标签,直接定义全局可用的风格,然后在某个style或者state内部,通过他们的子font,color标记上的idref属性,即可引用这些全局定义好的属性。。

b)        DTD:
<!ELEMENT synth ((%beansPersistance;) | style | bind | font | color |

                 imagePainter | imageIcon)*>

4.   Style元素

a)        说明:style标签的用途就是把font,color等标签归到一起,作为一个完整的风格,她需要通过后续的bind标签,来绑定到具体的控件上。另外clone属性提供了一种继承机制,通过该属性你可以从某个已定义的style当中把内容继承过来,然后修改某个需要改变的部分即可。

b)        DTD:

<!ELEMENT style (property | defaultsProperty | state | font | painter | imagePainter|

                 backgroundImage | opaque | (%beansPersistance;) | imageIcon)*>
c)        例子:

<style id="button">

<opaque value="true"/>

<insets top="4" left="4" right="4" bottom="4"/>

<font name="Dialog" size="12"/>

</style>

 5.   State元素

a)        说明:State标签用于指定控件在某个特定状态时的风格。state标签中的value值在SynthConstants类中定义。

b)        DTD:

<!ELEMENT state (color | font | painter | imagePainter | (%beansPersistance;))*>

c)        例子:

<state value="SELECTED and PRESSED" id="one">

<color value="RED" type="BACKGROUND"/>

</state>

6.   Font元素

a)        说明:定义某种字体风格。

b)        例子:<font name="DIALOG" size="12" style="ITALIC"/>

7.   Color元素:

a)        说明:定义某种颜色。

b)        例子:<color value="RED" type="BACKGROUND"/>

8.   Property元素:

a)        说明:通过键值对的方式定义某些控件特定的属性,属性值将存入类SynthStyle类中,这样做的一个好处就是不用为每个特定属性都定义一个标签,而且以后要扩展也比较方便。可以设置的控件属性,参考最后的表格。

b)        DTD:<!ELEMENT property EMPTY>

c)        例子:

<property key="ScrollBar.allowsAbsolutePositioning" type="boolean" value="false"/>
9.   DefaultsProperty元素

a)        说明:将特定于控件的属性值存入类UIDefaults当中,然后由SynthLookAndFeel传入UIManager当中。通过UIManager.get()方法可以获取到该值。

b)        DTD:<!ELEMENT defaultsProperty EMPTY>

c)        例子:

<object class="javax.swing.plaf.ColorUIResource" id="color">

    <int>255</int>

    <int>0</int>

    <int>0</int>

</object>

<defaultsProperty key="Table.focusCellForeground" type="idref" value="color"/>
10.GraphicsUtils元素

a)        说明:用于定义当前Style所使用的SynthGraphicsUtils实例。

b)        DTD:<!ELEMENT graphicsUtils EMPTY>

c)        例子:

<object class="CustomGraphicsUtils" id="graphics"/>

<graphicsUtils idref="graphics"/>

11.Insets元素:

a)        说明:定义某种间距。

b)        例子:<insets top="1" bottom="2" left="3"/>
12.Bind元素

a)        说明:将属性与一类或者某一特定的控件进行绑定。当type的值为region时,她处理的是一系列的控件。当需要处理某个特定的组件时,需要把type设定为name,然后在组件上调用setName()方法设定名字,这样在程序执行时Synth,将会根据组件的getName()的返回值进行匹配。Key部分是使用正则表达式的方式进行匹配。当一个控件有多个style可匹配,那么这些style将被合并,如果style之间有同名部分,则后定义的style将覆盖之前定义的style。

b)        DTD:<!ELEMENT bind EMPTY>

c)        例子:

<style id="b">

  <font name="DIALOG" size="12" style="BOLD"/>

</style>

<bind style="b" type="region" key="button"/>
13.Painter元素

a)        说明:为当前的Style或者State定义一个用于绘画文本的SynthPainter实例。

b)        DTD:<!ELEMENT painter EMPTY>

c)        例子:

<object class="MyPainter" id="MyPainter"/>

<painter idref="MyPainter"/>
14.ImagePainter元素

a)        说明:为当前的Style或者State定义一个用于绘画图形的SynthPainter实例。可以用该属性来绘制控件的背景。

b)        DTD:<!ELEMENT imagePainter EMPTY>

c)        例子:

<imagePainter path="bg.jpg" method="panelBackground" sourceInsets="2 2 2 2"

paintCenter="true"/>
15.ImageIcon元素

a)        说明:为支持Icon属性的控件绑定一个图标。

b)        例子:

<imageIcon id="icon" path="resources/myImage.png"/>

<property key="RadioButton.icon" value="icon"/>
16.Opaque元素

a)        说明:用于设置一个控件的Opaque属性。

b)        例子:<opaque value="FALSE">
17.BeansPersistence属性

a)        说明:该属性可以为其他标签(imagePainter等)引入一些自定义的类。
18.完整的例子:

a)        配置文件:

<synth>

<style id="emulator">

<imagePainter path="images/phone.png" method="panelBackground"   sourceInsets="2 2 2 2" paintCenter="true"/>

</style>

<bind style="emulator" type="name" key="Emulator.*"/>

</synth>
b)        Java代码:

public class Emulator extends JPanel {

     public static void main(String[] args) throws Exception {

         Runnable runner = new Runnable() {

              public void run() {

                   try {

                       SynthLookAndFeel synth = new SynthLookAndFeel();

                       Class aClass = Emulator.class;

                       InputStream is = aClass.getResourceAsStream("demo.xml");

                       synth.load(is, aClass);

                       UIManager.addAuxiliaryLookAndFeel(synth);

                       JFrame frame = new JFrame("SIP Client");

                       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                       frame.setLayout(new BorderLayout());

                       Emulator emulator = new Emulator();

                       emulator.setName("Emulator");

                       frame.add(emulator, BorderLayout.CENTER);

                       frame.setSize(360, 674);

                       frame.setResizable(false);

                       frame.setVisible(true);

                   } catch (Exception e) {

                       e.printStackTrace();

                   }

              }

         };

         EventQueue.invokeLater(runner);

     }
     public Emulator() {}

}
c)        说明:文件的路径,及下文当中路径相关的操作,都是相对于load()方法中的class参数的位置。当使用SynthLookAndFeel时,需要为每个控件都指定风格,这显然是很累的,一个解决办法就是,不调用UIManager.setLookAndFeel(laf),而是使用UIManager.addAuxiliaryLookAndFeel(laf),即将Synth作为扩展的LookAndFell,这就能继续使用默认的LookAndFeel和定制的SynthLookAndFeel。

分享到:
评论

相关推荐

    调用Synth的步骤

    标题中的“调用Synth的步骤”指的是在Java Swing中使用Synth Look and Feel(UI设计风格)的过程。Synth是Java提供的一种高度可定制的界面外观和感觉库,允许开发者自定义Swing组件的外观,包括颜色、形状、字体等。...

    java实现文字转语音播放

    4. **文本转语音**:使用`synth.speak()`方法将字符串转换为语音并播放: ```java synth.speak("这是一段测试文本"); synth.waitUntilDone(); // 确保所有声音播放完毕再继续执行 ``` 5. **释放资源**:当不再...

    java实现tts(语音开发)

    如果需要合成多个句子,可以使用 `queueParagraph()` 方法将它们加入队列,然后使用 `waitEngineState()` 确保所有句子都已播放完成。 5. **释放资源** 当不再需要 TTS 引擎时,应释放其占用的资源: ```java ...

    JAVA_API1.6文档(中文)

    java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的接口。 java.awt.image 提供创建和修改图像的各种类。 java.awt.image.renderable 提供用于生成与呈现无关的图像的类和接口。 java.awt....

    java 实现English发声

    标题“Java实现English发声”指的是使用Java编程语言来创建一个程序,使得计算机能够读出英文文本,即文本转语音(TTS,Text-to-Speech)功能。在Java中,这通常通过Java Speech API(JSAPI)或者一些第三方库来实现...

    Java文字转语音.rar

    接下来,我们可以使用`Synthesizer`对象的`speak`方法将文本转换为语音: ```java synth.speakPlainText("你好,这是一个Java文字转语音的示例。", null); ``` 这里的`"你好,这是一个Java文字转语音的示例。"`是...

    Java实现语音播报 实例源码下载

    这个实例源码下载提供了在Java中集成语音合成技术的方法。下面我们将详细探讨Java实现语音播报涉及的技术、库和步骤。 1. **Java Sound API** Java Sound API是Java平台内置的一套音频处理框架,它允许开发者处理...

    java文本转语音服务语音测试文本

    Java文本转语音服务,也称为TTS(Text-to-Speech)技术,是将文本数据转换成可听见的语音输出的一种方法。在IT行业中,这项技术广泛应用于无障碍应用、智能助手、在线教育、自动客服系统等领域,为用户提供方便的...

    Java 1.6 API 中文 New

    里面列出了,Java的所有类及其使用方法! Java SE Platform 软件包: java.applet 提供创建 applet 所必需的类和 applet 用来与其 applet 上下文通信的类。 java.awt 包含用于创建用户界面和绘制图形图像的所有类。 ...

    java 语音朗读可直接运行绝不骗分数

    要使用Java TTS,首先需要引入javax.speech相关的库。以下是一个简单的Java TTS程序示例: ```java import javax.speech.*; import java.util.*; public class TextToSpeechExample { public static void main...

    javaSwing皮肤大全.rar

    使用Java Swing的Look and Feel皮肤时,需要注意以下几点: 1. 确保引入的LookAndFeel jar包与JVM版本兼容。 2. 在更改LookAndFeel之前,最好先保存当前的LookAndFeel设置,以便在需要时恢复。 3. 更改LookAndFeel...

    JAVA TTS语音

    例如,使用`Synthesizer`的`speak()`方法可以读取字符串并将其转化为语音输出。 下面是一个简化的`Speech.java`可能的代码示例: ```java import javax.speech.*; import java.util.*; public class Speech { ...

    java api最新7.0

    里面列出了Java jdk 1.7的所有类及其使用方法! Java SE Platform 软件包: java.applet 提供创建 applet 所必需的类和 applet 用来与其 applet 上下文通信的类。 java.awt 包含用于创建用户界面和绘制图形图像的所有...

    java界面美化

    - **步骤2**:定义一个`SynthLookAndFeel`对象,并使用`load`方法加载XML文件。 - **步骤3**:调用`UIManager.setLookAndFeel(slf)`来设置LookAndFeel。 ```java // MyButton.java示例代码 package demo.synth; ...

    ttt.zip_TTS java_java tts_tts

    本项目"ttt.zip_TTS java_java tts_tts"提供了使用Java实现TTS功能的示例代码,帮助开发者了解并掌握这一技术。 1. **Java TTS简介** Java TTS(Text-to-Speech)是Java Accessibility API的一部分,它提供了一种...

    基于java的计算器小程序

    在这个项目中,我们将使用Java的基础知识,如类、对象、方法和控制流来构建计算器。 1. **基础结构**: 创建一个新的Java项目,通常包含一个或多个源代码文件(.java),每个文件代表一个类。对于这个计算器,我们...

    java 皮肤 苹果风格 超漂亮

    Java Look and Feel分为三类:跨平台的Metal Look and Feel,模仿Windows操作系统的System Look and Feel,以及模仿macOS的Synth Look and Feel。在Java中,可以通过调用UIManager类的静态方法来切换不同的LookAnd...

    java jdk-api-1.6 中文 chmd

    java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的接口。 java.awt.image 提供创建和修改图像的各种类。 java.awt.image.renderable 提供用于生成与呈现无关的图像的类和接口。 java.awt....

    JavaAPI中文chm文档 part2

    java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的接口。 java.awt.image 提供创建和修改图像的各种类。 java.awt.image.renderable 提供用于生成与呈现无关的图像的类和接口。 java.awt....

Global site tag (gtag.js) - Google Analytics