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

📄 fontdialog.java

📁 这是一个用JAVA编写的记事本的原码。功能和WINDOWS自带基本一样。
💻 JAVA
字号:
import javax.swing.*; 
import javax.swing.event.*; 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.border.*; 

public class FontDialog extends JDialog implements ListSelectionListener 
{ 
    private Container pane; 
    private JTextArea text; 
    private Font selectedFont; 
    private static int i = 75, j = 0, k = 7; 
    private String fontNames[] = 
         GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames(); 
    private String styleNames[] = { "常规", "粗体", "斜体", "粗斜体" }; 
    private int styleIntNames[] = { Font.PLAIN, Font.BOLD, Font.ITALIC, Font.BOLD + Font.ITALIC }; 
    private String sizeNames[] = { "8", "9", "10", "11", "12", "14", "16", "18", "20", 
        "22", "24", "26", "28", "36", "48", "72" }; 
    private JLabel fontLabel, styleLabel, sizeLabel; 
    private JTextField fontText, styleText, sizeText,demoText; 
    private JList fontList, styleList, sizeList; 
    private JButton confirm, cancel; 
    private JFrame owner; 
    private JPanel demoPanel; 
     
    public FontDialog( JFrame frame, JTextArea textArea ) 
    { 
        super( frame, "字体" ); 
        owner = frame; 
        frame.setEnabled( false ); 
        text = textArea; 
        pane = getContentPane(); 
        pane.setLayout( null ); 
        fontLabel = new JLabel( "字体" ); 
        fontLabel.setBounds(19, 8, 114, 27); 
        pane.add( fontLabel ); 
        styleLabel = new JLabel( "字形" ); 
        styleLabel.setBounds(160, 9, 73, 26); 
        pane.add( styleLabel ); 
        sizeLabel = new JLabel( "大小" ); 
        sizeLabel.setBounds(260, 8, 43, 27); 
        pane.add( sizeLabel ); 
        fontText = new JTextField(); 
        fontText.setText( fontNames[i] ); 
        fontText.setFocusable( false ); 
        fontText.setBounds(19, 33, 114, 27); 
        pane.add( fontText ); 
        styleText = new JTextField(); 
        styleText.setText( styleNames[j] ); 
        styleText.setFocusable( false ); 
        styleText.setBounds(160, 33, 73, 27); 
        pane.add( styleText ); 
        sizeText = new JTextField(); 
        sizeText.setText( sizeNames[k] ); 
        sizeText.setFocusable( false ); 
        sizeText.setBounds(260, 33, 43, 27); 
        pane.add( sizeText ); 
        fontList = new JList( fontNames ); 
        fontList.setSelectedIndex( i ); 
        fontList.addListSelectionListener( this ); 
        fontList.setSelectionMode( ListSelectionModel.SINGLE_SELECTION ); 
        JScrollPane fontPane = new JScrollPane( fontList ); 
        fontPane.setBounds(19, 61, 114, 113); 
        pane.add( fontPane ); 
        fontList.ensureIndexIsVisible( i ); 
        styleList = new JList( styleNames ); 
        styleList.setSelectedIndex( j ); 
        styleList.addListSelectionListener( this ); 
        styleList.setSelectionMode( ListSelectionModel.SINGLE_SELECTION ); 
        JScrollPane stylePane = new JScrollPane( styleList ); 
        stylePane.setBounds(160, 61, 73, 113); 
        pane.add( stylePane ); 
        styleList.ensureIndexIsVisible( j ); 
        sizeList = new JList( sizeNames ); 
        sizeList.setSelectedIndex( k ); 
        sizeList.addListSelectionListener( this ); 
        sizeList.setSelectionMode( ListSelectionModel.SINGLE_SELECTION ); 
        JScrollPane sizePane = new JScrollPane( sizeList ); 
        sizePane.setBounds(260, 61, 43, 113); 
        pane.add( sizePane ); 
        sizeList.ensureIndexIsVisible( k ); 
        confirm = new JButton( "确定" ); 
        confirm.setBounds(331, 34, 73, 25); 
        confirm.addActionListener( 
            new ActionListener() 
            { 
                public void actionPerformed( ActionEvent e ) 
                { 
                    i = fontList.getSelectedIndex(); 
                    j = styleList.getSelectedIndex(); 
                    k = sizeList.getSelectedIndex(); 
                    text.setFont( selectedFont ); 
                    FontDialog.this.dispose(); 
                    owner.setEnabled( true ); 
                    owner.setVisible( true ); 
                } 
            } 
        ); 
        pane.add( confirm ); 
        cancel = new JButton( "取消" ); 
        cancel.setBounds(331, 73, 73, 25); 
        cancel.addActionListener( 
            new ActionListener() 
            { 
                public void actionPerformed( ActionEvent e ) 
                { 
                    FontDialog.this.dispose(); 
                    owner.setEnabled( true ); 
                    owner.setVisible( true ); 
                } 
            } 
        ); 
        pane.add( cancel ); 
        TitledBorder tb = new TitledBorder( BorderFactory.createLineBorder( Color.BLACK ), "示例" ); 
        demoPanel = new JPanel(); 
        demoPanel.setBorder( tb ); 
        demoPanel.setBounds( 78, 175, 226, 88 ); 
        demoPanel.setLayout( null ); 
        demoText = new JTextField("记事本ABC"); 
        selectedFont = new Font( fontNames[i], styleIntNames[j], Integer.parseInt( sizeNames[k] ) ); 
        demoText.setFont( selectedFont ); 
        demoText.setFocusable( false ); 
        demoText.setHorizontalAlignment( JTextField.CENTER ); 
        demoText.setBounds(15, 20, 198, 55 ); 
        demoPanel.add( demoText ); 
        pane.add( demoPanel ); 
        setSize(430, 300); 
        setResizable( false ); 
        int x = ( int )( owner.getLocation().getX() + owner.getWidth() / 2 -215 ); 
        x = ( x > 600 ? 600 : x ); 
        x = ( x < 0 ? 0 : x ); 
        int y = ( int )( owner.getLocation().getY() + owner.getHeight() / 2 - 150 ); 
        y = ( y > 448 ? 448 : y ); 
        y = ( y < 0 ? 0 : y ); 
        setLocation( x, y ); 
        setVisible(true); 
        addWindowListener( 
            new WindowAdapter() 
            { 
                public void windowClosing( WindowEvent e ) 
                { 
                    FontDialog.this.dispose(); 
                    owner.setEnabled( true ); 
                    owner.setVisible( true ); 
                } 
            } 
        ); 
    } 
     
    public void valueChanged( ListSelectionEvent e ) 
    { 
        fontText.setText( fontList.getSelectedValue().toString() ); 
        selectedFont = new Font( fontNames[fontList.getSelectedIndex()], 
            styleIntNames[styleList.getSelectedIndex()],  
            Integer.parseInt( sizeNames[sizeList.getSelectedIndex()] ) ); 
        demoText.setFont( selectedFont ); 
        demoText.updateUI(); 
    } 
} 

⌨️ 快捷键说明

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