小弟初学者,
static class ml implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
MenuItem target=(MenuItem)e.getSource();
String ac=target.getActionCommand();
if(ac.equals("粗体"))
{
frm.T1.setFont(new Font(ac,Font.BOLD,10));
frm.T1.setText(frm.T1.getText());
}
}
}
这样好像不行~!

解决方案 »

  1.   

    Font的构造函数参数不是字体名称,加粗(下划线等),尺寸,这样的么
    你的ac="粗体" 又不是字体,把参数ac改成"宋体"看看
      

  2.   

    就是建立一个简单的文字编辑器,只要求在option菜单中实现简单的字体编辑等功能,这是完整的原代码,我觉得是监听器出了问题。怎么办呀?
    import java.awt.*;
    import java.awt.event.*;class Frame1 extends Frame
    {
    MenuBar mb1=new MenuBar();
    Menu fi=new Menu("File");
    MenuItem file[]={
    new MenuItem("Open",new MenuShortcut(KeyEvent.VK_0)),
    new MenuItem("Save",new MenuShortcut(KeyEvent.VK_S)),
    new MenuItem("Exit",new MenuShortcut(KeyEvent.VK_E))
    };
    Menu fi2=new Menu("Edit");
    MenuItem file2[]={
    new MenuItem("Copy"),
    new MenuItem("Cut"),
    new MenuItem("Paste"),
    new MenuItem("DeleteAll")
    };
    Menu fi3=new Menu("Option");
    Menu file3[]={
    new Menu("字体"),
    new Menu("字号"),
    };
    CheckboxMenuItem vie1[]={
    new CheckboxMenuItem("粗体"),
    new CheckboxMenuItem("斜体")
    };
    CheckboxMenuItem vie2[]={
    new CheckboxMenuItem("宋体"),
    new CheckboxMenuItem("黑体")
    };
    CheckboxMenuItem vie3[]={
    new CheckboxMenuItem("10"),
    new CheckboxMenuItem("11")
    };

    TextArea T1=new TextArea();

    public Frame1(String s)
    {
    super(s);
    this.setSize(new Dimension(400,300));
    this.setMenuBar(mb1);
    mb1.add(fi);
    for(int i=0;i<file.length;i++)
    {
    fi.add(file[i]);
    }
    mb1.add(fi2);
    for(int i=0;i<file2.length;i++)
    {
    fi2.add(file2[i]);
    }
    mb1.add(fi3);
    for(int i=0;i<file3.length;i++)
    {
    fi3.add(file3[i]);
    }
    for(int i=0;i<vie1.length;i++)
    {
    fi3.add(vie1[i]);
    }
    for(int i=0;i<vie2.length;i++)
    {
    file3[0].add(vie2[i]);
    }
    for(int i=0;i<vie3.length;i++)
    {
    file3[1].add(vie3[i]);
    }
    add(T1);
    }
    }
    public class eg_4
    { static Frame1 frm=new Frame1("一个简单的编辑程序");
    static WinLis wlis=new WinLis();


    public static void main(String args[])
    { frm.addWindowListener(wlis);
    frm.setVisible(true);
    frm.file[2].addActionListener(new acl());
    }
    static class acl implements ActionListener
    {
    public void actionPerformed(ActionEvent e)
    {
    Object source=e.getSource();
    if(source==frm.file[2]) frm.dispose();
    }
    } static class WinLis extends WindowAdapter
        {
           public void windowClosing(WindowEvent e) // 按下窗口关闭钮
           {
              frm.dispose();    // 关闭窗口并释放资源 
            }
         public void windowDeactivated(WindowEvent e) // 变成非作用中窗口
         {
          }       
         public void windowActivated(WindowEvent e) // 变成作用中窗口
         {
         }            
         public void windowDeiconified(WindowEvent e)  // 窗口还原
         {
         }         
         public void windowIconified(WindowEvent e) // 窗口最小化
         {
         }   
         public void windowOpened(WindowEvent e) // 打开窗口
         {
         }            
        }
    }