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

📄 jfontchooser.java

📁 访windows记事本
💻 JAVA
字号:
//package swjtu.ctb.dialog;

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

public class JFontChooser extends JDialog {
 	Font selectFont; 
 	JPanel panel;
 	JList fontNameList;
 	JList fontSizeList;
 	JButton btnApprove = new JButton("确定");
 	JButton btnCancel = new JButton("取消");
 	JCheckBox boxBold = new JCheckBox("粗体");
 	JCheckBox boxItalic = new JCheckBox("斜体");
 	JLabel viewFont = new JLabel("Example");
 	public static final int APPROVE_OPTION = 1;
 	public static final int CANCEL_OPTION = 2;
 	int option = 0;
 
 	public JFontChooser() {
  		this(null, null);
 	}
 
 	public JFontChooser(JFrame owner, Font initFont) {
  		super(owner, "字体", true); 
  
  		//------------- 设置字体选择对话框的界面 ---------------//
  		viewFont.setHorizontalAlignment(JLabel.CENTER);
  		String[] fontName = GraphicsEnvironment.getLocalGraphicsEnvironment().
          							getAvailableFontFamilyNames();
  		fontNameList = new JList(fontName);
  		JScrollPane scrollPane1 = new JScrollPane(fontNameList);
  
  		String[] fontSize = {"8      ", "10", "12", "14", "16", 
      		"18", "20", "24", "30", "36", "40", 
      		"48", "60", "72"};
  		fontSizeList = new JList(fontSize);
  		JScrollPane scrollPane2 = new JScrollPane(fontSizeList);
  
  		panel = (JPanel)this.getContentPane();
  		panel.setLayout(new BorderLayout());
  		JPanel panelCenter = new JPanel();
  		JPanel panelBottom = new JPanel(new GridLayout(2, 1));
  		panel.add(panelCenter, BorderLayout.CENTER);
  		panel.add(panelBottom, BorderLayout.SOUTH);
  
  		JPanel panel1 = new JPanel();
  		JPanel panel2 = new JPanel();
  		panel1.add(viewFont);
  		panel2.add(btnApprove);
  		panel2.add(btnCancel);
  		panelBottom.add(panel1);
  		panelBottom.add(panel2);
  		panelCenter.add(scrollPane1);
  		panelCenter.add(scrollPane2);
  		JPanel panel3 = new JPanel(new GridLayout(5, 1));
  		panel3.add(boxBold);
  		panel3.add(boxItalic);
  		panelCenter.add(panel3);
  		//--------------------------------------//
  
  		fontNameList.addListSelectionListener(new ListSelectionListener() {
   		public void valueChanged(ListSelectionEvent e) {
    			previewFont();
  		 	}
  		});
  		fontSizeList.addListSelectionListener(new ListSelectionListener() {
   		public void valueChanged(ListSelectionEvent e) {
    			previewFont();
  		 	}
  		});
  		boxBold.addActionListener(new ActionListener() {
   		public void actionPerformed(ActionEvent e) {
    			previewFont();
   		}
  		});
  		boxItalic.addActionListener(new ActionListener() {
   		public void actionPerformed(ActionEvent e) {
    			previewFont();
   		}
  		});
  		btnApprove.addActionListener(new ActionListener() {
   		public void actionPerformed(ActionEvent e) {
    			option = APPROVE_OPTION;
    			close();
   		}
  		});
  
  		btnCancel.addActionListener(new ActionListener() {
   		public void actionPerformed(ActionEvent e) {
    			option = CANCEL_OPTION;
    			close();
   		}
  		});
  
  		//----------- 设置初始化窗口的字体参数 --------//
  		if (initFont == null) {
   		fontNameList.setSelectedIndex(0);
   		fontSizeList.setSelectedIndex(4);
  		} else {
   
  		}
  		//--------------------------------------------//
  
  		this.pack();
  		this.setLocationRelativeTo(owner);
 	}
 
  
 	private void previewFont() {
  		String selectFontName = null;
  		Font tempFont = null;
  		int selectSize = 8;
  		if (!fontNameList.isSelectionEmpty()) {
   		selectFontName = fontNameList.getSelectedValue().toString();
  		}
  		if (!fontSizeList.isSelectionEmpty()) {
   		String temp = fontSizeList.getSelectedValue().toString().trim();
   		selectSize = Integer.parseInt(temp);
  		}  
  		boolean isBold = boxBold.isSelected();
  		boolean isItalic = boxItalic.isSelected();
  		int attr = Font.PLAIN;
  		if (isBold) attr = Font.BOLD;
  		if (isItalic) attr |= Font.ITALIC;
  		tempFont = new Font(selectFontName, attr, selectSize);
  		viewFont.setFont(tempFont);
 	}
 
 	private void applyFont() {
  		selectFont = viewFont.getFont();
 	}
 
 	public Font getFont() {
  		return selectFont;
 	}
 
 	private void close() {
  		switch (option) {
   		case APPROVE_OPTION:
    			applyFont();
    			break;
   		case CANCEL_OPTION:
   		default:
    			selectFont = null;
    		break;    
  		}
  		this.dispose();
 	}
 
 	public int showDialog() {
  		this.setVisible(true);
  		return option;
 	}
}

⌨️ 快捷键说明

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