`

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字体对话框 java字体对话框(附源代码) whsvc

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

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

    java 字体对话框

    NULL 博文链接:https://mengdejun.iteye.com/blog/790826

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

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

    java 实现我的记事本

     打开:调用JDK提供的“打开”对话框,选择要打开的文本文件,要求返回带路径的文件名。  保存或另存为:如果已有文件名,直接保存文件,否则调用“保存”对话框,获取文件名后保存。  退出:在退出前要判断...

    Java窗体字体样式

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

    进度条、对话框设计.rar_java 制作 进度条_java 进度条_组合框_组合框 颜色_进度条

    进度条的设计,掌握颜色选择器对话框的使用,文件选择器对话框的使用,使用JOptionPane类创建对话框,通过制作“设置字体”对话框,掌握列表框、单选按钮、组合框等组件的使用,了解打包工具JAR的使用

    JAVA写的记事本程序

    JAVA写的记事本程序,界面及功能模仿Windows自带记事本设计,本程序使用了一个无法找到出处的字体选择对话框,尊重其原作者,特此说明。

    JAVA写的windows记事本源代码

    所用工具:Jcreator ...八、字体(Ctrl+Q):点击或使用快捷弹出字体对话框 选择字体后,文字全部改变为所选字体 九、自动换行(Ctrl+Q):点击后实现自动换行 再点击后恢复 十、关于记事本(F1)

    java源码包---java 源码 大量 实例

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    JAVA上百实例源码以及开源项目源代码

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    JAVA上百实例源码以及开源项目

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    java源码包4

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    java源码包3

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    java源码包2

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    Java2实用教程.rar

    14 3建立字体 14 4清除 14 5Java2D 14 6图形的布尔运算 14 7绘制钟表 14 8绘制图像 14 9制作JPG图像 14 10XOR绘图模式 14 11打印图形 图像 习题 第15章Java数据库连接 JDBC 15 1创建数据源 15 2JDBC ODBC桥接器 l5 ...

Global site tag (gtag.js) - Google Analytics