• 字体工具栏


     今天用java写了一个字体工具栏。

    Code:
    1. import javax.swing.*;  
    2. import java.awt.*;  
    3. import java.awt.event.*;  
    4.   
    5. //测试类  
    6. public class Exec {  
    7.     public static void main(String[] args) {  
    8.         // 创建窗体类DemoWindow        
    9.         DemoWindow dw = new DemoWindow("字体工具栏");  
    10.   
    11.         // 将窗体的宽度和高度分别设置为屏幕宽度和屏幕高度的1/3,左上角位置也设置为屏幕宽度和屏幕高度的1/3处  
    12.         Toolkit theKit = dw.getToolkit();  
    13.         Dimension wndSize = theKit.getScreenSize();  
    14.         dw.setBounds(wndSize.width / 3, wndSize.height / 3, wndSize.width / 3,  
    15.                 wndSize.height / 3);  
    16.   
    17.         // 点击关闭按钮可以退出程序  
    18.         dw.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
    19.         // 设置窗体为可见  
    20.         dw.setVisible(true);  
    21.     }  
    22. }  
    23. //界面窗体类  
    24. class DemoWindow extends JFrame implements ActionListener,ItemListener{  
    25.     //显示文本内容的文本区  
    26.     JTextArea jta = new JTextArea();  
    27.       
    28.     //设置文本区的滚动条  
    29.     int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;  
    30.     int h = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;  
    31.     JScrollPane jsp = new JScrollPane(jta,v,h);  
    32.     //工具栏  
    33.     JToolBar toolbar = new JToolBar();  
    34.       
    35.     //"黑体"按钮图标  
    36.     ImageIcon ii1 = new ImageIcon("images/bold.gif"); //有图片……  
    37.     //"黑体"按钮  
    38.     JToggleButton jtb1 = new JToggleButton(ii1);  
    39.     //"斜体"按钮图标  
    40.     ImageIcon ii2 = new ImageIcon("images/italic.gif");  
    41.     //"斜体"按钮  
    42.     JToggleButton jtb2 = new JToggleButton(ii2);  
    43.       
    44.     //字体名称组合框  
    45.     JComboBox jcb1 = null;  
    46.     //字体大小组合框  
    47.     JComboBox jcb2 = null;  
    48.   
    49.     //构造函数  
    50.     public DemoWindow(String title){  
    51.         super(title);  
    52.         //添加文本框  
    53.         add(jsp);  
    54.           
    55.         //获取系统所有字体  
    56.         GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();  
    57.         String fontNames[] = ge.getAvailableFontFamilyNames();  
    58.         String sizeNames[] = new String[60];  
    59.         for(int i=0;i<59;i++){  
    60.             sizeNames[i] = 20+i+"";  
    61.         }  
    62.         Font newFont = new Font(null,0,20);  
    63.         jta.setFont(newFont);  
    64.         //创建字体名称组合框  
    65.         jcb1 = new JComboBox(fontNames);  
    66.         jcb2 = new JComboBox(sizeNames);  
    67.         jcb1.setMaximumSize(new Dimension(200,100));  
    68.         //设置文本框的最大的尺寸  
    69.         jcb2.setMaximumSize(new Dimension(50,100));  
    70.           
    71.         //设置按钮的边界填充距离  
    72.         jtb1.setMargin(new Insets(0,0,0,0));  
    73.         jtb2.setMargin(new Insets(0,0,0,0));  
    74.           
    75.         //设置工具栏  
    76.         toolbar.add(jcb1);  
    77.         toolbar.addSeparator();  
    78.         toolbar.add(jcb2);  
    79.         toolbar.addSeparator();  
    80.         toolbar.add(jtb1);  
    81.         toolbar.add(jtb2);  
    82.           
    83.         //设置工具栏的翻转状态  
    84.         toolbar.setRollover(true);  
    85.         //添加工具栏  
    86.         add(toolbar,BorderLayout.NORTH);  
    87.         //添加事件监听器  
    88.         jtb1.addActionListener(this);  
    89.         jtb2.addActionListener(this);  
    90.         jcb1.addItemListener(this);  
    91.         jcb2.addItemListener(this);  
    92.         this.setVisible(true);  
    93.         this.setSize(500250);  
    94.     }  
    95.     //响应单击按钮  
    96.     public void actionPerformed(ActionEvent e){  
    97.         //获取文本区的当前字体  
    98.         Font font = jta.getFont();  
    99.           
    100.         //处理设置黑体  
    101.         if(e.getSource() == jtb1){  
    102.             //在现有字体上添加黑体属性  
    103.             jta.setFont(font.deriveFont(font.getStyle()^Font.BOLD));  
    104.         }else if(e.getSource() == jtb2){  
    105.             //在现有字体上添加斜体  
    106.             jta.setFont(font.deriveFont(font.getStyle()^Font.ITALIC));  
    107.         }  
    108.         //文本区获得焦点  
    109.         jta.requestFocus();   
    110.     }  
    111.     //响应选中的组合框  
    112.     public void itemStateChanged(ItemEvent e){  
    113.         //获取文本区的当前的文字  
    114.         Font font = jta.getFont();  
    115.         if(e.getSource() == jcb1){  
    116.             //根据选中的字体名称,得到新的字体  
    117.             Font newFont = new Font((String)jcb1.getSelectedItem(),  
    118.                     font.getStyle(),Integer.parseInt((String)jcb2.getSelectedItem()));  
    119.             //设置文本区的新字体  
    120.             jta.setFont(newFont);  
    121.         }else if(e.getSource() == jcb2){  
    122.             //根据选中的字体大小,得到新的字体  
    123.             Font newFont = new Font((String)jcb1.getSelectedItem(),  
    124.                     font.getStyle(),Integer.parseInt((String)jcb2.getSelectedItem()));  
    125.             //设置文本区的新字体  
    126.             jta.setFont(newFont);  
    127.               
    128.         }  
    129.         //文本区获得焦点  
    130.         jta.requestFocus();  
    131.     }  
    132. }  

    用到两张图片,不能插入,请点击:student.csdn.net/space.php


    ps:我的新博客地址:http://www.xinghaixu.com

    ----------------------更多博文请关注http://www.xinghaixu.com-----------------------
  • 相关阅读:
    git 常用命令
    最近任务 && react文章列表
    markdown 常用格式API
    webpack 插件怎么写
    iframe
    重置浏览器滚动条css
    webpack4
    vscode插件开发
    vscode插件
    react router 的push replace
  • 原文地址:https://www.cnblogs.com/xcxinghai/p/3283904.html
Copyright © 2020-2023  润新知