今天用java写了一个字体工具栏。
- importjavax.swing.*;
- importjava.awt.*;
- importjava.awt.event.*;
- //测试类
- publicclassExec{
- publicstaticvoidmain(String[]args){
- //创建窗体类DemoWindow
- DemoWindowdw=newDemoWindow("字体工具栏");
- //将窗体的宽度和高度分别设置为屏幕宽度和屏幕高度的1/3,左上角位置也设置为屏幕宽度和屏幕高度的1/3处
- ToolkittheKit=dw.getToolkit();
- DimensionwndSize=theKit.getScreenSize();
- dw.setBounds(wndSize.width/3,wndSize.height/3,wndSize.width/3,
- wndSize.height/3);
- //点击关闭按钮可以退出程序
- dw.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- //设置窗体为可见
- dw.setVisible(true);
- }
- }
- //界面窗体类
- classDemoWindowextendsJFrameimplementsActionListener,ItemListener{
- //显示文本内容的文本区
- JTextAreajta=newJTextArea();
- //设置文本区的滚动条
- intv=ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;
- inth=ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;
- JScrollPanejsp=newJScrollPane(jta,v,h);
- //工具栏
- JToolBartoolbar=newJToolBar();
- //"黑体"按钮图标
- ImageIconii1=newImageIcon("images/bold.gif");//有图片……
- //"黑体"按钮
- JToggleButtonjtb1=newJToggleButton(ii1);
- //"斜体"按钮图标
- ImageIconii2=newImageIcon("images/italic.gif");
- //"斜体"按钮
- JToggleButtonjtb2=newJToggleButton(ii2);
- //字体名称组合框
- JComboBoxjcb1=null;
- //字体大小组合框
- JComboBoxjcb2=null;
- //构造函数
- publicDemoWindow(Stringtitle){
- super(title);
- //添加文本框
- add(jsp);
- //获取系统所有字体
- GraphicsEnvironmentge=GraphicsEnvironment.getLocalGraphicsEnvironment();
- StringfontNames[]=ge.getAvailableFontFamilyNames();
- StringsizeNames[]=newString[60];
- for(inti=0;i<59;i++){
- sizeNames[i]=20+i+"";
- }
- FontnewFont=newFont(null,0,20);
- jta.setFont(newFont);
- //创建字体名称组合框
- jcb1=newJComboBox(fontNames);
- jcb2=newJComboBox(sizeNames);
- jcb1.setMaximumSize(newDimension(200,100));
- //设置文本框的最大的尺寸
- jcb2.setMaximumSize(newDimension(50,100));
- //设置按钮的边界填充距离
- jtb1.setMargin(newInsets(0,0,0,0));
- jtb2.setMargin(newInsets(0,0,0,0));
- //设置工具栏
- toolbar.add(jcb1);
- toolbar.addSeparator();
- toolbar.add(jcb2);
- toolbar.addSeparator();
- toolbar.add(jtb1);
- toolbar.add(jtb2);
- //设置工具栏的翻转状态
- toolbar.setRollover(true);
- //添加工具栏
- add(toolbar,BorderLayout.NORTH);
- //添加事件监听器
- jtb1.addActionListener(this);
- jtb2.addActionListener(this);
- jcb1.addItemListener(this);
- jcb2.addItemListener(this);
- this.setVisible(true);
- this.setSize(500,250);
- }
- //响应单击按钮
- publicvoidactionPerformed(ActionEvente){
- //获取文本区的当前字体
- Fontfont=jta.getFont();
- //处理设置黑体
- if(e.getSource()==jtb1){
- //在现有字体上添加黑体属性
- jta.setFont(font.deriveFont(font.getStyle()^Font.BOLD));
- }elseif(e.getSource()==jtb2){
- //在现有字体上添加斜体
- jta.setFont(font.deriveFont(font.getStyle()^Font.ITALIC));
- }
- //文本区获得焦点
- jta.requestFocus();
- }
- //响应选中的组合框
- publicvoiditemStateChanged(ItemEvente){
- //获取文本区的当前的文字
- Fontfont=jta.getFont();
- if(e.getSource()==jcb1){
- //根据选中的字体名称,得到新的字体
- FontnewFont=newFont((String)jcb1.getSelectedItem(),
- font.getStyle(),Integer.parseInt((String)jcb2.getSelectedItem()));
- //设置文本区的新字体
- jta.setFont(newFont);
- }elseif(e.getSource()==jcb2){
- //根据选中的字体大小,得到新的字体
- FontnewFont=newFont((String)jcb1.getSelectedItem(),
- font.getStyle(),Integer.parseInt((String)jcb2.getSelectedItem()));
- //设置文本区的新字体
- jta.setFont(newFont);
- }
- //文本区获得焦点
- jta.requestFocus();
- }
- }
用到两张图片,不能插入,请点击:student.csdn.net/space.php
ps:我的新博客地址:http://www.xinghaixu.com