Alistair001 发表于 2008-3-30 18:49

请问怎样实现文本编辑器的字体字号选择功能

如题
请问怎样实现文本编辑器的字体字号选择功能
请知道的朋友帮帮忙
谢谢了

freish 发表于 2008-4-1 16:54

如果用的是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();
        }
}

可在在这上面加上字号,很容易实现的

Alistair001 发表于 2008-4-1 18:43

谢谢了

页: [1]

编程论坛