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

📄 menufont.java

📁 Java编写的记事本程序,对学习Java桌面编程的朋友可能会有帮助!
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class MenuFont extends JDialog implements ItemListener, ActionListener,
		TextListener {

	CheckboxGroup gp;

	Checkbox plain, bold, italic, boldItalic;

	Choice fontNameChoice;

	TextField fontSizeTextField;

	List fontSizeList;

	TextField fontTextField;

	Button fontButtonOk;

	Button fontButtonCancel;

	int fontStyleInt = 0;

	boolean changed = true;

	int fontSizeMin = 10, fontSizeMax = 36, fontSizeChangedStep = 2;

	MenuFont(Frame frame, boolean modal) {
		super(frame, modal);
	}

	public Font myLayout(Font taFont) {
		this.getContentPane().setLayout(new GridBagLayout());
		GridBagConstraints gbc = new GridBagConstraints();
		gbc.gridwidth = 1;
		gbc.gridheight = 1;
		gbc.weightx = 1;
		gbc.weighty = 1;
		gbc.fill = gbc.HORIZONTAL;
		gbc.anchor = gbc.CENTER;

		// a TextField for font size
		fontSizeTextField = new TextField(taFont.getSize() + "", 14);
		fontSizeTextField.selectAll();
		fontSizeTextField.addTextListener(this);
		gbc.gridx = 0;
		gbc.gridy = 1;
		getContentPane().add(fontSizeTextField, gbc);

		// CheckboxGroup for font style
		gp = new CheckboxGroup();
		if (taFont.getStyle() == 0)
			plain = new Checkbox("PLAIN", true, gp);
		else
			plain = new Checkbox("PLAIN", false, gp);
		plain.addItemListener(this);
		if (taFont.getStyle() == 1)
			bold = new Checkbox("BOLD", true, gp);
		else
			bold = new Checkbox("BOLD", false, gp);
		bold.addItemListener(this);
		if (taFont.getStyle() == 2)
			italic = new Checkbox("ITALIC", true, gp);
		else
			italic = new Checkbox("ITALIC", false, gp);
		italic.addItemListener(this);
		if (taFont.getStyle() == 3)
			boldItalic = new Checkbox("BOLDITALIC", true, gp);
		else
			boldItalic = new Checkbox("BOLDITALIC", false, gp);
		boldItalic.addItemListener(this);
		gbc.gridx = 0;
		gbc.gridy = 0;
		getContentPane().add(plain, gbc);
		gbc.gridx = 1;
		gbc.gridy = 0;
		getContentPane().add(bold, gbc);
		gbc.gridx = 2;
		gbc.gridy = 0;
		getContentPane().add(italic, gbc);
		gbc.gridx = 3;
		gbc.gridy = 0;
		getContentPane().add(boldItalic, gbc);

		// a TextField + List for font size
		// fontSizeTextField = new TextField(taFont.getSize() + "",14);
		// fontSizeTextField.selectAll();
		// fontSizeTextField.addTextListener(this);
		// gbc.gridx = 0;
		// gbc.gridy = 1;
		// add(fontSizeTextField, gbc);
		fontSizeList = new List(4, false);
		fontSizeList.addItemListener(this);
		int indexOfList = 0;
		boolean breakHere = false;
		for (int i = fontSizeMin; i <= fontSizeMax; i = i + fontSizeChangedStep) {
			if (!breakHere) {
				if (i != taFont.getSize()) {
					indexOfList++;
				} else {
					breakHere = true;
				}
			}
			fontSizeList.add(i + "");
		}
		if (indexOfList < 0
				|| indexOfList > (fontSizeMax - fontSizeMin)
						/ fontSizeChangedStep + 1)
			fontSizeList.select(0);
		else
			fontSizeList.select(indexOfList);
		gbc.gridx = 0;
		gbc.gridy = 2;
		getContentPane().add(fontSizeList, gbc);

		// Choice for font name
		gbc.gridx = 1;
		gbc.gridy = 1;
		fontNameChoice = new Choice();
		fontNameChoice.addItemListener(this);
		fontNameChoice.add("Serif");
		fontNameChoice.add("Courier");
		fontNameChoice.add("Helvetica");
		fontNameChoice.add("TimesRoman");
		fontNameChoice.select(taFont.getName());
		getContentPane().add(fontNameChoice, gbc);

		// two Button Ok Cancel
		fontButtonOk = new Button("Ok");
		fontButtonOk.addActionListener(this);
		gbc.gridx = 2;
		gbc.gridy = 2;
		gbc.fill = gbc.NONE;
		getContentPane().add(fontButtonOk, gbc);
		fontButtonCancel = new Button("Cancel");
		fontButtonCancel.addActionListener(this);
		gbc.gridx = 3;
		gbc.gridy = 2;
		getContentPane().add(fontButtonCancel, gbc);

		// a TextField for demo the font
		fontTextField = new TextField("Java awt");
		fontTextField.setEditable(false);
		fontTextField.setSize(90, 60);
		fontTextField.setFont(taFont);
		gbc.weightx = 100;
		gbc.weighty = 230;
		gbc.gridx = 2;
		gbc.gridy = 1;
		gbc.gridwidth = 2;
		gbc.gridheight = 1;
		gbc.fill = gbc.BOTH;
		getContentPane().add(fontTextField, gbc);

		this.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				dispose();
			}
		});
		this.setLocation(120, 120);
		this.setResizable(false);
		this.setSize(480, 160);
		this.setVisible(true);
		if (changed)
			return returnFont();
		else
			return taFont;
	}// end of myLayout

	// ItemListener
	public void itemStateChanged(ItemEvent ie) {
		if (ie.getSource() == plain) {
			updateFontTextField();
		} else if (ie.getSource() == bold) {
			updateFontTextField();
		} else if (ie.getSource() == italic) {
			updateFontTextField();
		} else if (ie.getSource() == boldItalic) {
			updateFontTextField();
		} else if (ie.getSource() == fontNameChoice) {
			updateFontTextField();
		} else if (ie.getSource() == fontSizeList) {
			List lf = (List) ie.getSource();
			fontSizeTextField.setText(lf.getSelectedItem());
			updateFontTextField();
		}

	}// end of ItemListener

	// TextListener
	public void textValueChanged(TextEvent e) {
		int indexOfList = 0;
		boolean breakHere = false;
		int thisNum = 0;
		for (int i = fontSizeMin; i <= fontSizeMax; i = i + fontSizeChangedStep) {
			if (!breakHere) {
				try {
					thisNum = Integer.parseInt(fontSizeTextField.getText());
				} catch (NumberFormatException nfe) {
					thisNum = 0;
				}
				if (i != thisNum) {
					indexOfList++;
				} else {
					breakHere = true;
				}
			}
		}
		if (indexOfList < 0
				|| indexOfList > (fontSizeMax - fontSizeMin)
						/ fontSizeChangedStep + 1)
			fontSizeList.select(0);
		else
			fontSizeList.select(indexOfList);
		updateFontTextField();
	}// end of TextListener

	// ActionListener
	public void actionPerformed(ActionEvent ae) {
		if (ae.getSource() == fontButtonOk) {
			changed = true;
			dispose();
		} else if (ae.getSource() == fontButtonCancel) {
			changed = false;
			dispose();
		}
	}// end of ActionListener

	public Font returnFont() {
		updateFontTextField();
		return new Font(fontNameChoice.getSelectedItem(), fontStyleInt, Integer
				.parseInt(fontSizeList.getSelectedItem()));
	}

	private void updateFontTextField() {
		if (gp.getSelectedCheckbox().getLabel().equals("PLAIN")) {
			fontStyleInt = Font.PLAIN;
		} else if (gp.getSelectedCheckbox().getLabel().equals("BOLD")) {
			fontStyleInt = Font.BOLD;
		} else if (gp.getSelectedCheckbox().getLabel().equals("ITALIC")) {
			fontStyleInt = Font.ITALIC;
		} else if (gp.getSelectedCheckbox().getLabel().equals("BOLDITALIC")) {
			fontStyleInt = Font.BOLD + Font.ITALIC;
		}
		fontTextField
				.setFont(new Font(fontNameChoice.getSelectedItem(),
						fontStyleInt, Integer.parseInt(fontSizeList
								.getSelectedItem())));
	}

}// end of class MenuFont

⌨️ 快捷键说明

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