`

Java字体选择对话框

阅读更多

 

/**
 * 字体选择对话框。
 * 
 * @author lucky star
 * 
 */
public class FontDialog extends JDialog {

	private final JPanel contentPanel = new JPanel();
	private JComboBox fontNameBox = null;
	private JComboBox fontStyleBox = null;
	private JComboBox fontSizeBox = null;
	private JTextArea txtrHereIs = null;

	private String fontName;
	private String fontStyle;
	private String fontSize;
	private int fontSty;
	private int fontSiz;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		try {
			FontDialog dialog = new FontDialog();
			dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
			dialog.setVisible(true);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * Create the dialog.
	 */
	public FontDialog() {
		setTitle("\u5B57\u4F53");
		setBounds(100, 100, 483, 234);
		getContentPane().setLayout(new BorderLayout());
		contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
		getContentPane().add(contentPanel, BorderLayout.CENTER);
		contentPanel.setLayout(null);
		{
			JLabel lblf = new JLabel("\u5B57\u4F53(F):");
			lblf.setBounds(0, 10, 54, 15);
			contentPanel.add(lblf);
		}
		{
			JLabel lbly = new JLabel("\u5B57\u5F62(Y):");
			lbly.setBounds(182, 10, 54, 15);
			contentPanel.add(lbly);
		}
		{
			JLabel lbls = new JLabel("\u5927\u5C0F(S):");
			lbls.setBounds(315, 10, 54, 15);
			contentPanel.add(lbls);
		}
		{
			JLabel label = new JLabel("\u663E\u793A\u6548\u679C:");
			label.setBounds(126, 82, 64, 15);
			contentPanel.add(label);
		}

		Panel panel = new Panel();
		panel.setBounds(196, 40, 228, 113);
		contentPanel.add(panel);
		panel.setLayout(null);
		{
			txtrHereIs = new JTextArea();
			txtrHereIs.setBounds(39, 38, 177, 44);
			txtrHereIs
					.setText("\u8FD9\u91CC\u663E\u793A\u9884\u89C8\r\nHere is the preview");
			panel.add(txtrHereIs);
		}
		{
			fontNameBox = new JComboBox();
			fontNameBox.setBounds(49, 7, 123, 21);
			contentPanel.add(fontNameBox);
			fontNameBox.addItemListener(new ItemListener() {
				public void itemStateChanged(ItemEvent itemevent) {
					fontName = (String) itemevent.getItem();
					System.out.println(fontName);

					// change preview
					Font f = new Font(fontName, fontSty, fontSiz);
					txtrHereIs.setFont(f);
				}
			});
		}
		{
			fontStyleBox = new JComboBox();
			fontStyleBox.setBounds(232, 7, 73, 21);
			contentPanel.add(fontStyleBox);
			fontStyleBox.addItemListener(new ItemListener() {
				public void itemStateChanged(ItemEvent itemevent) {
					fontStyle = (String) itemevent.getItem();
					fontSty = getFontStyleByCnName(fontStyle);
					// change preview
					Font f = new Font(fontName, fontSty, fontSiz);
					txtrHereIs.setFont(f);
				}
			});
		}
		{
			fontSizeBox = new JComboBox();
			fontSizeBox.setBounds(379, 7, 78, 21);
			contentPanel.add(fontSizeBox);
			fontSizeBox.addItemListener(new ItemListener() {
				public void itemStateChanged(ItemEvent itemevent) {
					fontSize = (String) itemevent.getItem();
					fontSiz = Integer.parseInt(fontSize);

					// change preview
					Font f = new Font(fontName, fontSty, fontSiz);
					txtrHereIs.setFont(f);
				}
			});
		}
		{
			JPanel buttonPane = new JPanel();
			buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
			getContentPane().add(buttonPane, BorderLayout.SOUTH);
			{
				JButton okButton = new JButton("\u786E\u5B9A");
				okButton.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent actionevent) {
						int fontSty = getFontStyleByCnName(fontStyle);
						int fontSiz = Integer.parseInt(fontSize);
						JOptionPane.showMessageDialog(FontDialog.this,
								"你选择的字体名称:" + fontName + ",字体样式:" + fontStyle
										+ ",字体大小:" + fontSiz, "提示",
								JOptionPane.CLOSED_OPTION);

					}
				});
				okButton.setActionCommand("OK");
				buttonPane.add(okButton);
				getRootPane().setDefaultButton(okButton);
			}
			{
				JButton cancelButton = new JButton("\u53D6\u6D88");
				cancelButton.setActionCommand("Cancel");
				buttonPane.add(cancelButton);
				cancelButton.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent actionevent) {
						FontDialog.this.dispose();
					}
				});
			}
		}

		// 初始化字体名称
		GraphicsEnvironment ge = GraphicsEnvironment
				.getLocalGraphicsEnvironment();
		String[] fontNames = ge.getAvailableFontFamilyNames();
		fontNameBox.setModel(new DefaultComboBoxModel(fontNames));
		// 初始化字体样式
		String[] fontStyles = { "常规", "斜体", "粗体", "粗斜体" };
		fontStyleBox.setModel(new DefaultComboBoxModel(fontStyles));
		// 初始化字体大小
		String[] fontSizes = { "8", "9", "10", "11", "12", "14", "16", "18",
				"20", "22", "24", "26", "28", "36", "48", "72" };
		fontSizeBox.setModel(new DefaultComboBoxModel(fontSizes));
		System.out.println("finish.");

		fontSizeBox.setSelectedIndex(4);
		fontStyle = (String) fontStyleBox.getSelectedItem();
		fontSize = (String) fontSizeBox.getSelectedItem();
		fontSty = getFontStyleByCnName(fontStyle);
		fontSiz = Integer.parseInt(fontSize);
	}

	public static int getFontStyleByCnName(String fontStyle) {
		if (fontStyle.equals("常规")) {
			return Font.PLAIN;
		}
		if (fontStyle.equals("斜体")) {
			return Font.ITALIC;
		}
		if (fontStyle.equals("粗体")) {
			return Font.BOLD;
		}
		if (fontStyle.equals("粗斜体")) {
			return Font.BOLD + Font.ITALIC;
		}
		return -1;
	}
}



分享到:
评论

相关推荐

    JAVA的字体格式设置对话框代码

    JAVA的字体格式设置对话框,用swing实现,可设置字体的大小,类型和样式。

    java字体对话框(附源码)

    Java字体对话框是Java Swing库中的一个组件,用于在应用程序中与用户交互,允许他们选择字体、字号和样式。在Java编程中,我们通常使用`JOptionPane`或自定义的`JFrame`来创建这样的对话框。这个压缩包文件可能包含...

    java 字体对话框

    总的来说,Java字体对话框的创建涉及到GUI设计、事件处理和平台兼容性等多个方面,是一个很好的练习,可以提升你对Java Swing或JavaFX的理解。通过实践,你可以创建出功能强大且用户友好的字体选择对话框,从而提升...

    Java文件对话框---FileDialog.pdf

    在某些操作系统中,`FileDialog`还可能提供额外的特性,如字体、颜色、打印机等特定类型的对话框。不过,这些特性可能会因操作系统的不同而有所差异。尽管如此,`FileDialog`仍然是Java应用程序中进行基本文件操作的...

    java 字体选择器插件

    在这里,我们将深入探讨Java字体选择器插件的原理、使用方法以及它在Java开发中的作用。 首先,我们需要理解Java中处理字体的基本概念。在Java中,字体是由`Font`类表示的,它可以指定字体家族、样式(如粗体、斜体...

    一个java字体选择器

    Java字体选择器是一个实用工具,它允许用户在Java应用程序中浏览和选择系统上可用的字体。这个项目展示了如何利用Java的图形用户界面(GUI)组件和字体管理功能来创建一个自定义的字体选取界面。下面将详细介绍这个...

    一个封装好的ios风格的选择对话框

    通常,这类库会包含Java或Kotlin类文件、布局XML文件、资源图片以及示例用例,帮助开发者了解如何使用和自定义对话框。 在实际应用中,使用这样一个组件可能涉及以下几个关键知识点: 1. **布局设计**:对话框的...

    Java开发技术大全(500个源代码).

    HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 示例描述:本章介绍开发Java的基础语法知识。 ...

    JavaBean字体选择器,跟windows一样方便

    在这个场景中,"JavaBean字体选择器"是指一个基于JavaBean设计原则的组件,它模拟了Windows操作系统中的字体选择对话框,为用户提供便捷的字体选取功能。 字体选择器是用户界面中常见的一种组件,它允许用户在各种...

    java 资料java 我的复习资料

    用户可以通过弹出的颜色选择对话框选择一种颜色,并将该颜色应用到特定的文本组件上。 ##### 示例代码解析 ```java Color showDialog = JColorChooser.showDialog(this, "SetColor", jTextArea1.getCaretColor()); ...

    选择对话框

    在Windows、Linux、Mac等操作系统中,这类对话框是常见的,通常用于文件选择、颜色选择、字体选择等场景。在本文中,我们将深入探讨选择对话框的实现原理、常见类型以及如何在实际编程中使用它们。 首先,让我们...

    使用颜色字体对话框

    总结来说,“使用颜色字体对话框”涉及调用颜色对话框让用户选择颜色,然后将所选颜色应用到文本或界面元素中。这个过程涵盖了用户交互、颜色对话框的使用,以及界面状态的实时更新等关键点。通过深入理解这些概念和...

    swing编的字体选择器

    本文将详细介绍如何使用 Java Swing 编写一个字体选择器,并深入探讨其中涉及的关键技术和设计模式。 #### 二、关键技术点与实现细节 ##### 1. 导入必要的包 在实现字体选择器之前,我们需要导入一系列 Java Swing...

    java获取系统安装字体

    在实际应用中,这个工具类可以用于创建自定义的字体选择对话框,或者用于在应用程序中动态地调整文本显示的字体。开发者可以根据需求,进一步扩展这个工具类,例如添加过滤特定字体类型(如TrueType或OpenType)、按...

    swing中自定义对话框的几种实际用法

    除了基本的组件外,还可以通过调整背景色、边框、字体等属性,以及使用自定义图标,来进一步定制对话框的外观,使其更符合应用的整体风格。 总结,Swing中的自定义对话框是提高用户体验和增强应用功能的重要手段。...

    常用对话框的使用

    四、字体对话框 FontDialog FontDialog对话框用于让用户选择字体、字号和样式。在Windows Forms中,`FontDialog.ShowDialog()`方法能打开字体选择对话框,`FontDialog.Font`属性则返回用户选定的字体对象。 五、...

    Java窗体字体样式

    这是一个用Java做的小窗体,选择字体样式可以改变

    仿ios 对话框

    仿ios 对话框库可能包含了特定的样式和布局,用于模仿iOS的弹出提示、警告、确认和选择对话框。这些对话框通常拥有圆角、淡入淡出动画、以及特定的字体和颜色方案,以匹配iOS的视觉风格。 在“界面”这一标签下,...

    java 复习 资料

    1. **显示字体选择对话框**:通过`JFontDialog.showDialog`方法打开字体选择对话框。参数含义与颜色选择对话框类似,其中最后一个参数是初始显示的字体。 2. **设置文本区域字体**:将用户选择的字体应用到`...

Global site tag (gtag.js) - Google Analytics