`

Java Swing 使用非本地字体

阅读更多

          Swing组件可以自定义的字体,做成jar文件之后也可以使用。只需程序加载的时候读取自带的字体,然后在程序中调用此字体就好了。下面的程序组件布局采用的是BoxLayout布局管理器。程序效果图如下:

代码如下:

import java.awt.Container;
import java.awt.Font;
import java.awt.FontFormatException;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;

import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.UIManager;

/**
 * 
 * @author Alog2012
 * 
 */
@SuppressWarnings("serial")
public class FontTest extends JFrame {
	private Font definedFont = null;

	public FontTest() {
		super("FontTest --by Alog2012");
		this.init();
	}

	private void init() {
		// 添加一些组件
		Container container = getContentPane();
		setLayout(new BoxLayout(container, BoxLayout.Y_AXIS));
		for (float align = 0.0f; align <= 1.0f; align += 0.25f) {
			JButton button = new JButton("X align = " + align);
			button.setFont(getDefinedFont());
			button.setAlignmentX(align);
			container.add(button);
			container.add(Box.createVerticalGlue());
		}
		// 设置窗体属性
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(300, 100, 600, 400);
		setVisible(true);
	}

	public Font getDefinedFont() {
		if (definedFont == null) {
			InputStream is = null;
			BufferedInputStream bis = null;
			try {
				is = FontTest.class.getResourceAsStream("/font/abc.ttf");
				bis = new BufferedInputStream(is);
				// createFont返回一个使用指定字体类型和输入数据的新 Font。<br>
				// 新 Font磅值为 1,样式为 PLAIN,注意 此方法不会关闭 InputStream
				definedFont = Font.createFont(Font.TRUETYPE_FONT, bis);
				// 复制此 Font对象并应用新样式,创建一个指定磅值的新 Font对象。
				definedFont = definedFont.deriveFont(30);
			} catch (FontFormatException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			} finally {
				try {
					if (null != bis) {
						bis.close();
					}
					if (null != is) {
						is.close();
					}
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		return definedFont;
	}

	public static void main(String args[]) {
		try {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		} catch (Exception e) {
		}
		new FontTest();
	}
}
 

 

  • abc.rar (24.5 KB)
  • 下载次数: 65
分享到:
评论

相关推荐

    Java Swing 24种皮肤合集以及使用方法

    使用Java Swing的皮肤不仅可以改变组件的颜色、字体、边框等视觉元素,还能调整组件的交互效果,如鼠标悬停、点击反馈等。对于开发者来说,灵活的L&F支持让Java Swing成为了构建跨平台应用程序的有力工具,而这个...

    java swing 项目中可能你会用到的皮肤包

    Java Swing 是Java GUI(图形用户界面)开发的一个重要库,它是AWT(Abstract Window Toolkit)的扩展,提供了更丰富的组件和更好的本地化支持。在Java Swing项目中,为应用程序添加美观的皮肤或主题可以极大地提升...

    Java_Swing-fontchoose.rar_java控件字体_swing Font

    Java Swing 是Java GUI(图形用户界面)开发的一个重要库,它是AWT(Abstract Window Toolkit)的扩展,提供了更丰富的组件和更好的本地化支持。在Java Swing中,我们可以创建各种交互式的用户界面,包括按钮、...

    java Swing 日历

    Java Swing 是Java GUI(图形用户...通过以上步骤,开发者可以使用Java Swing和相关的库创建一个功能完善的日历组件,供用户在桌面应用程序中选择和查看日期。记住,不断学习和实践是提高Java Swing编程技能的关键。

    Java_Swing程序设计

    总的来说,Java Swing程序设计涵盖了组件使用、布局管理、事件处理、界面定制和高级组件等多个方面。通过深入学习和实践,开发者可以利用Swing构建出高效、美观且功能强大的桌面应用程序。提供的"Java_Swing程序设计...

    java swing Mac风格的LookAndFeel

    在Swing中,LookAndFeel是一个关键概念,它决定了应用程序的视觉样式,包括控件的外观、颜色、字体等。Mac风格的LookAndFeel是专门为在Mac OS环境下提供与系统一致的UI体验而设计的。 LookAndFeel提供了跨平台的...

    基于java swing的天气预报查询软件.zip

    Java Swing 是Java平台上的一个图形用户界面(GUI)工具包,它是Java Foundation Classes (JFC) 的一部分。这个“基于java swing的天气预报查询软件”是一个利用Java Swing库开发的应用程序,旨在帮助用户查询不同...

    java swing 日历

    在Java Swing中,开发者可以使用丰富的组件来构建用户界面,其中“日历”功能是常见的需求之一。本项目是一个基于Java Swing实现的日历面板,专为日期选择设计。 在Java Swing中,我们通常不直接有一个内置的日历...

    java swing做的万年历

    在这个场景中,我们讨论的是使用Java Swing创建一个万年历的应用程序。万年历通常显示日期、星期以及月份,并可能包含一些额外功能,如节日标注、事件提醒等。 在Java Swing中创建万年历,首先需要理解Swing中的...

    Java Swing实现一个记事本

    在"Java Swing实现一个记事本"这个项目中,我们主要关注的是如何使用Swing来创建一个功能完备的文本编辑器,类似于Windows中的记事本。下面将详细介绍涉及的关键技术和知识点。 1. **JFrame**: JFrame是Java Swing...

    一个基于java swing写的桌面弹幕播放器,用于播放离线弹幕或某些网站的在线弹幕.zip

    Java Swing桌面弹幕播放器是一种使用Java编程语言和Swing库构建的应用程序,它允许用户在本地计算机上播放离线弹幕或者从特定网站获取并播放在线弹幕。Swing是Java提供的一种轻量级GUI(图形用户界面)工具包,它...

    java swing 图形 界面

    7. **轻量级与重量级组件**:Swing是轻量级组件,与AWT(Abstract Window Toolkit)相比,它使用Java而不是操作系统提供的原生窗口系统,这使得Swing跨平台性更强,但可能在性能上略逊于AWT。 8. ** Nimbus Look ...

    graalvm编译swing失败问题处理

    3. **JNI(Java Native Interface)问题**:如果Swing应用使用了JNI来调用本地库,那么必须确保这些库在原生图像构建过程中可用并正确配置。 4. **资源处理**:Swing应用可能包含各种资源文件,如图片、字体等。...

    Java.Swing图形界面开发与案例详解.王鹏等——第6章

    6. **Swing的轻量级特性**: 与AWT不同,Swing组件不依赖于操作系统提供的窗口系统,而是使用Java自己的绘制机制,这使得Swing应用具有更好的跨平台兼容性。 7. **国际化与本地化**: Swing支持应用程序的国际化和...

    swing打包成exe安装包工具

    总的来说,将Swing项目打包成.exe安装包是让Java应用更易于分发和使用的有效方法。通过exe4j和Inno Setup等工具,你可以实现这一目标,为用户提供一个无需Java环境即可运行的完整解决方案。不过,需要注意的是,这种...

    rain12306-java swing实现12306客户端 无任何服务端依赖.zip

    总的来说,rain12306项目展示了Java Swing在开发独立运行的桌面应用方面的潜力,同时也体现了在没有服务端的情况下如何利用本地资源实现基本的业务逻辑。这对于学习Java GUI编程以及理解客户端-服务器架构的替代方案...

    java swing 图形用户界面设计

    Java Swing 是Java平台上用于构建图形用户界面(GUI)的库,它是Java 2平台的核心部分。Swing 提供了一个丰富的组件集合,用于创建复杂的、功能强大的桌面应用程序。相比早期的Abstract Window Toolkit (AWT),Swing...

    javaswing 皮肤

    在这个主题中,“javaswing 皮肤”是指对Swing应用的外观进行定制,以改变其视觉样式,提升用户体验。 Swing 提供了内置的LookAndFeel(外观风格),如Metal、Windows和Motif,但这些风格可能无法满足所有开发者或...

    Java Swing JLabel标签的使用方法

    Java Swing JLabel标签的使用方法 Java Swing JLabel标签是Java Swing GUI组件库中的一种基本组件,用于在图形用户界面中显示文本或图片。通过设置JLabel的各种属性,可以控制标签的外观和行为。下面是JLabel的使用...

Global site tag (gtag.js) - Google Analytics