⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fontdlg.java

📁 一个记事本程序
💻 JAVA
字号:
package notepad;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;

/**
 * 
 * @author Administrator
 */
public class FontDlg extends JDialog implements ActionListener,
		ListSelectionListener {
	// 变量声明 
	private javax.swing.JButton btnOK;

	private javax.swing.JButton btnCancel;

	private javax.swing.JLabel jLabel1;

	private javax.swing.JLabel jLabel2;

	private javax.swing.JLabel jLabel3;

	private javax.swing.JLabel jLabel4;

	private javax.swing.JList lFontName;

	private javax.swing.JList lFontStyle;

	private javax.swing.JList lFontSize;

	private javax.swing.JScrollPane jScrollPane1;

	private javax.swing.JScrollPane jScrollPane2;

	private javax.swing.JScrollPane jScrollPane3;

	private javax.swing.JTextField tfFontName;

	private javax.swing.JTextField tfFontStyle;

	private javax.swing.JTextField tfFontSize;

	private javax.swing.JTextField tfDemo;

	private NotePad notePad;

	private String fontNames[];

	// 变量声明结束
	/** Creates new form asdf */
	public FontDlg(NotePad initNotePad) {
		// 得到系统字体名称
		GraphicsEnvironment ge = GraphicsEnvironment
				.getLocalGraphicsEnvironment();
		fontNames = ge.getAvailableFontFamilyNames();
		// 初始化页面元素
		initComponents();
		notePad = initNotePad;
		setFrame();// 设置初始页面
		btnOK.addActionListener(this);
		btnCancel.addActionListener(this);
		lFontName.addListSelectionListener(this);
		lFontStyle.addListSelectionListener(this);
		lFontSize.addListSelectionListener(this);
		setVisible(false);
	}

	/**
	 * 设置初始页面
	 */
	public void setFrame() {
		Font font = notePad.note.getFont();
		this.tfDemo.setFont(font);
		String fName = font.getName();
		int fStyle = font.getStyle();
		int size = font.getSize();
		this.lFontName.setSelectedValue(fName, false);
		this.tfFontName.setText(fName);
		switch (fStyle) {
		case Font.BOLD:
			this.lFontStyle.setSelectedValue("粗体", false);
			this.tfFontStyle.setText("粗体");
		case Font.ITALIC:
			this.lFontStyle.setSelectedValue("斜体", false);
			this.tfFontStyle.setText("斜体");
		case Font.PLAIN:
			this.lFontStyle.setSelectedValue("常规", false);
			this.tfFontStyle.setText("常规");
		case (Font.BOLD + Font.ITALIC):
			this.lFontStyle.setSelectedValue("粗斜体", false);
			this.tfFontStyle.setText("粗斜体");
		}
		this.lFontSize.setSelectedValue(String.valueOf(size), false);
		this.tfFontSize.setText(String.valueOf(size));
	}
	/**
	 * 初始化页面元素
	 */
	private void initComponents() {

		jLabel1 = new javax.swing.JLabel();
		jLabel2 = new javax.swing.JLabel();
		jLabel3 = new javax.swing.JLabel();
		tfFontName = new javax.swing.JTextField();
		tfFontName.setEditable(false);
		tfFontStyle = new javax.swing.JTextField();
		tfFontStyle.setEditable(false);
		tfFontSize = new javax.swing.JTextField();
		tfFontSize.setEditable(false);
		jLabel4 = new javax.swing.JLabel();
		tfDemo = new javax.swing.JTextField();
		btnOK = new javax.swing.JButton();
		btnCancel = new javax.swing.JButton();
		lFontName = new javax.swing.JList();
		lFontSize = new javax.swing.JList();
		lFontStyle = new javax.swing.JList();
		jScrollPane3 = new javax.swing.JScrollPane(this.lFontSize);
		jScrollPane1 = new javax.swing.JScrollPane(this.lFontName);
		jScrollPane2 = new javax.swing.JScrollPane(this.lFontStyle);

		jLabel1.setText("\u5b57\u4f53(F)");

		jLabel2.setText("\u5b57\u578b(Y)");

		jLabel3.setText("\u5927\u5c0f(S)");

		tfFontName.setText("");

		tfFontStyle.setText("");

		tfFontSize.setText("");

		jLabel4.setText("\u793a\u4f8b\uff1a");

		tfDemo.setText("张增名zhangzengming");

		btnOK.setText("\u786e\u5b9a");

		btnCancel.setText("\u53d6\u6d88");

		lFontName.setModel(new AbstractListModel() {
			public int getSize() {
				return fontNames.length;
			}
			public Object getElementAt(int i) {
				return fontNames[i];
			}
		});
		lFontStyle.setModel(new AbstractListModel() {
			String[] strings = { "常规", "粗体", "斜体", "粗斜体" };

			public int getSize() {
				return strings.length;
			}

			public Object getElementAt(int i) {
				return strings[i];
			}
		});
		lFontSize.setModel(new AbstractListModel() {
			String[] strings = { "8", "9", "10", "11", "12", "14", "16", "18",
					"20", "22", "24", "26", "28", "30", "36", "48", "72" };
			public int getSize() {
				return strings.length;
			}
			public Object getElementAt(int i) {
				return strings[i];
			}
		});
		javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
				getContentPane());
		getContentPane().setLayout(layout);
		layout
				.setHorizontalGroup(layout
						.createParallelGroup(
								javax.swing.GroupLayout.Alignment.LEADING)
						.addGroup(
								layout
										.createSequentialGroup()
										.addGroup(
												layout
														.createParallelGroup(
																javax.swing.GroupLayout.Alignment.LEADING)
														.addGroup(
																layout
																		.createSequentialGroup()
																		.addGap(
																				136,
																				136,
																				136)
																		.addComponent(
																				jLabel4)
																		.addGap(
																				37,
																				37,
																				37)
																		.addComponent(
																				tfDemo,
																				javax.swing.GroupLayout.PREFERRED_SIZE,
																				200,
																				javax.swing.GroupLayout.PREFERRED_SIZE))
														.addGroup(
																layout
																		.createSequentialGroup()
																		.addGap(
																				33,
																				33,
																				33)
																		.addGroup(
																				layout
																						.createParallelGroup(
																								javax.swing.GroupLayout.Alignment.LEADING,
																								false)
																						.addComponent(
																								jScrollPane1)
																						.addComponent(
																								tfFontName,
																								javax.swing.GroupLayout.DEFAULT_SIZE,
																								127,
																								Short.MAX_VALUE)
																						.addComponent(
																								jLabel1))
																		.addGap(
																				18,
																				18,
																				18)
																		.addGroup(
																				layout
																						.createParallelGroup(
																								javax.swing.GroupLayout.Alignment.LEADING,
																								false)
																						.addComponent(
																								jScrollPane2)
																						.addComponent(
																								tfFontStyle,
																								javax.swing.GroupLayout.DEFAULT_SIZE,
																								128,
																								Short.MAX_VALUE)
																						.addComponent(
																								jLabel2))
																		.addGap(
																				21,
																				21,
																				21)
																		.addGroup(
																				layout
																						.createParallelGroup(
																								javax.swing.GroupLayout.Alignment.TRAILING,
																								false)
																						.addComponent(
																								jScrollPane3)
																						.addComponent(
																								tfFontSize,
																								javax.swing.GroupLayout.Alignment.LEADING,
																								javax.swing.GroupLayout.DEFAULT_SIZE,
																								127,
																								Short.MAX_VALUE)
																						.addComponent(
																								jLabel3,
																								javax.swing.GroupLayout.Alignment.LEADING))))
										.addContainerGap())
						.addGroup(
								layout
										.createSequentialGroup()
										.addGap(230, 230, 230)
										.addComponent(
												btnOK,
												javax.swing.GroupLayout.PREFERRED_SIZE,
												108,
												javax.swing.GroupLayout.PREFERRED_SIZE)
										.addGap(15, 15, 15)
										.addComponent(
												btnCancel,
												javax.swing.GroupLayout.DEFAULT_SIZE,
												63, Short.MAX_VALUE).addGap(83,
												83, 83)));
		layout
				.setVerticalGroup(layout
						.createParallelGroup(
								javax.swing.GroupLayout.Alignment.LEADING)
						.addGroup(
								javax.swing.GroupLayout.Alignment.TRAILING,
								layout
										.createSequentialGroup()
										.addGap(39, 39, 39)
										.addGroup(
												layout
														.createParallelGroup(
																javax.swing.GroupLayout.Alignment.BASELINE)
														.addComponent(jLabel2)
														.addComponent(jLabel1)
														.addComponent(jLabel3))
										.addPreferredGap(
												javax.swing.LayoutStyle.ComponentPlacement.RELATED)
										.addGroup(
												layout
														.createParallelGroup(
																javax.swing.GroupLayout.Alignment.BASELINE)
														.addComponent(
																tfFontName,
																javax.swing.GroupLayout.PREFERRED_SIZE,
																javax.swing.GroupLayout.DEFAULT_SIZE,
																javax.swing.GroupLayout.PREFERRED_SIZE)
														.addComponent(
																tfFontSize,
																javax.swing.GroupLayout.PREFERRED_SIZE,
																javax.swing.GroupLayout.DEFAULT_SIZE,
																javax.swing.GroupLayout.PREFERRED_SIZE)
														.addComponent(
																tfFontStyle,
																javax.swing.GroupLayout.PREFERRED_SIZE,
																javax.swing.GroupLayout.DEFAULT_SIZE,
																javax.swing.GroupLayout.PREFERRED_SIZE))
										.addGap(16, 16, 16)
										.addGroup(
												layout
														.createParallelGroup(
																javax.swing.GroupLayout.Alignment.TRAILING)
														.addComponent(
																jScrollPane3,
																javax.swing.GroupLayout.DEFAULT_SIZE,
																100,
																Short.MAX_VALUE)
														.addComponent(
																jScrollPane2,
																javax.swing.GroupLayout.Alignment.LEADING,
																0, 0,
																Short.MAX_VALUE)
														.addComponent(
																jScrollPane1,
																javax.swing.GroupLayout.Alignment.LEADING,
																0, 0,
																Short.MAX_VALUE))
										.addGap(21, 21, 21)
										.addGroup(
												layout
														.createParallelGroup(
																javax.swing.GroupLayout.Alignment.BASELINE)
														.addComponent(jLabel4)
														.addComponent(
																tfDemo,
																javax.swing.GroupLayout.PREFERRED_SIZE,
																37,
																javax.swing.GroupLayout.PREFERRED_SIZE))
										.addGap(46, 46, 46)
										.addGroup(
												layout
														.createParallelGroup(
																javax.swing.GroupLayout.Alignment.BASELINE)
														.addComponent(btnOK)
														.addComponent(btnCancel))
										.addGap(25, 25, 25)));
		pack();
	}
	/**
	 * 处理按钮事件
	 */
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		if (e.getSource() == btnOK) {
			String fontName = this.tfFontName.getText();
			String fontStyle = this.tfFontStyle.getText();
			String fontSize = this.tfFontSize.getText();
			int fontSty = Font.PLAIN;
			if (fontStyle.equals("常规")) {
				fontSty = Font.PLAIN;
			} else if (fontStyle.equals("粗体")) {
				fontSty = Font.BOLD;
			} else if (fontStyle.equals("斜体")) {
				fontSty = Font.ITALIC;
			} else if (fontStyle.equals("粗斜体")) {
				fontSty = Font.BOLD + Font.ITALIC;
			}
			int size = Integer.parseInt(fontSize);
			Font font = new Font(fontName, fontSty, size);
			notePad.note.setFont(font);
			this.setVisible(false);
			this.dispose();
		} else if (e.getSource() == btnCancel) {
			this.setVisible(false);
			this.dispose();
		}
	}
	/**
	 * 处理列表框事件
	 */
	public void valueChanged(ListSelectionEvent e) {
		// TODO Auto-generated method stub
		if (e.getSource() == lFontName) {
			tfFontName.setText((String) lFontName.getSelectedValue());
			String fontName = this.tfFontName.getText();
			String fontStyle = this.tfFontStyle.getText();
			String fontSize = this.tfFontSize.getText();
			int fontSty = Font.PLAIN;
			if (fontStyle.equals("常规")) {
				fontSty = Font.PLAIN;
			} else if (fontStyle.equals("粗体")) {
				fontSty = Font.BOLD;
			} else if (fontStyle.equals("斜体")) {
				fontSty = Font.ITALIC;
			} else if (fontStyle.equals("粗斜体")) {
				fontSty = Font.BOLD + Font.ITALIC;
			}
			int size = Integer.parseInt(fontSize);
			Font font = new Font(fontName, fontSty, size);
			this.tfDemo.setFont(font);
		} else if (e.getSource() == lFontStyle) {
			tfFontStyle.setText((String) lFontStyle.getSelectedValue());
			String fontName = this.tfFontName.getText();
			String fontStyle = this.tfFontStyle.getText();
			String fontSize = this.tfFontSize.getText();
			int fontSty = Font.PLAIN;
			if (fontStyle.equals("常规")) {
				fontSty = Font.PLAIN;
			} else if (fontStyle.equals("粗体")) {
				fontSty = Font.BOLD;
			} else if (fontStyle.equals("斜体")) {
				fontSty = Font.ITALIC;
			} else if (fontStyle.equals("粗斜体")) {
				fontSty = Font.BOLD + Font.ITALIC;
			}
			int size = Integer.parseInt(fontSize);
			Font font = new Font(fontName, fontSty, size);
			this.tfDemo.setFont(font);
		} else if (e.getSource() == lFontSize) {
			tfFontSize.setText((String) lFontSize.getSelectedValue());
			String fontName = this.tfFontName.getText();
			String fontStyle = this.tfFontStyle.getText();
			String fontSize = this.tfFontSize.getText();
			int fontSty = Font.PLAIN;
			if (fontStyle.equals("常规")) {
				fontSty = Font.PLAIN;
			} else if (fontStyle.equals("粗体")) {
				fontSty = Font.BOLD;
			} else if (fontStyle.equals("斜体")) {
				fontSty = Font.ITALIC;
			} else if (fontStyle.equals("粗斜体")) {
				fontSty = Font.BOLD + Font.ITALIC;
			}
			int size = Integer.parseInt(fontSize);
			Font font = new Font(fontName, fontSty, size);
			this.tfDemo.setFont(font);
		}
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -