标题:请问怎样实现文本编辑器的字体字号选择功能
只看楼主
Alistair001
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2008-2-24
 问题点数:0 回复次数:2 
请问怎样实现文本编辑器的字体字号选择功能
如题
请问怎样实现文本编辑器的字体字号选择功能
请知道的朋友帮帮忙
谢谢了
搜索更多相关主题的帖子: 文本编辑器 字体字号 选择 朋友 
2008-03-30 18:49
freish
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1223
专家分:437
注 册:2007-6-1
得分:0 
如果用的是JBuilder,有FontChooser类
如果是用记事本写的话要自己写这个类了

其实写出来也很简单,只不过要做出好看的界面麻烦一点就是了

我就写了一个选择字体的类
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class GetSystemFont extends JFrame{

    private JComboBox box;
    private Container container;
    private String str[];
    private GraphicsEnvironment environment; //该类中又获取系统字体的方法;
    private JLabel tipLabel;
    
    public GetSystemFont(){
        super("获取系统字体");
        container = getContentPane();
        tipLabel = new JLabel("系统字体有:");
        container.add(tipLabel);
        
        environment = GraphicsEnvironment.getLocalGraphicsEnvironment();//GraphicsEnvironment是一个抽象类,不能实例化,只能用其中的静态方法获取一个实例
        str = environment.getAvailableFontFamilyNames();//获取系统字体
        
        box = new JComboBox(str);
        
        //为box注册ItemListener监听器
        box.addItemListener(     
            new ItemListener(){
                public void itemStateChanged(ItemEvent event){
                    if(event.getStateChange() == event.SELECTED){
                        int style = tipLabel.getFont().getStyle(); //获取当前字体的类型
                        int size = tipLabel.getFont().getSize();//获取当前字体的大小
                        tipLabel.setFont(new Font(str[box.getSelectedIndex()],style,size));//改变tipLabel的字体,但不改变大小和类型
                    }
                }
            }
        );

        container.setLayout(new FlowLayout());
        container.add(box);

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
        pack();
        setResizable(false);
        
        //是窗口屏幕居中
        Toolkit kit = Toolkit.getDefaultToolkit();//抽象类,通过静态方法获取实例
        Dimension frameSize = new Dimension(),screenSize = kit.getScreenSize(); //获取屏幕的大小
        getSize(frameSize); //获取窗口大小
        setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);
    }
    public static void main(String[] args)
    {
        GetSystemFont test = new GetSystemFont();
    }
}

可在在这上面加上字号,很容易实现的
2008-04-01 16:54
Alistair001
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2008-2-24
得分:0 
谢谢了
2008-04-01 18:43



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-206222-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.290272 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved