你好:谢谢你的关注。请问你的意思是加入下句吗?加在哪里呢?UIManager.put("Frame.font",Font);谢谢

解决方案 »

  1.   

    下面是一段显示弹出菜单的程序//PopupMenuDemo1.java
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.UIManager;
    public class PopupMenuDemo1 extends JFrame
    {
    public PopupMenuDemo1(String strTitle)
    {

             super(strTitle);
             UIManager.put("Frame.font",Font);//在这里加入该句,但是编译显示出错
    final JPopupMenu mnuRoot=new JPopupMenu();
    mnuRoot.add( new JMenuItem("新建",new ImageIcon("new.gif")));//中文菜单名不能正常显示
    mnuRoot.add( new JMenuItem("save",new ImageIcon("save.gif")));//英文菜单名能正常显示
    mnuRoot.add( new JMenuItem("print",new ImageIcon("print.gif")));
    final JLabel label=new JLabel("click me please",JLabel.CENTER); label.addMouseListener(new MouseAdapter(){
    public void mousePressed(MouseEvent e)
    {
                      mnuRoot.show(label,e.getX(),e.getY());
    }
    });
    this.getContentPane().add(label);
    }
    public Dimension getPreferredSize()
    {
               return new Dimension(400,400);
    }
    public static void main( String[] args )
    {
    PopupMenuDemo1 frame=new PopupMenuDemo1("this   is a example");
    frame.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent e)
    {
    System.exit(0);
    }
    });
    frame.pack();
    frame.show(); }
    }编译时显示:
    C:\javacode>javac   PopupMenuDemo1.java
    PopupMenuDemo1.java:35: cannot resolve symbol
    symbol  : variable Font
    location: class PopupMenuDemo1
    UIManager.put("Frame.font",Font);
                               ^
    1 error
      这段程序我是从光盘拷过来的,(光盘的程序的程序名为PopupMenu.java,没有UIManager.put("Frame.font",Font);这一句),然后编译并运行PopupMenu.java显示中文没有问题。
      当我把光盘的程序的程序名改为PopupMenuDemo1.java,并更改相应的类,运行显示不出中文。
      朋友建议我加入UIManager.put("Frame.font",Font)。编译时出错。
      请问该如何才能显示出中文。
      

  2.   

    UIManager.put("Frame.font",new Font("宋体",Font.PLAIN,20));
      

  3.   

    我在那写Font表示一个Font类型的对象,你要将它实例化呀
      

  4.   

    对了,这句放在main函数里
    public static void main(String args[]) throws Exception {
        UIManager.put("Button.font",new Font("宋体",Font.PLAIN,20));
        …………………………
    }
      

  5.   

    感谢你的帮助。修改后保存。现在编译能正常通过。
    但是汉字显示是乱码。
    打开文件一看:
    比如:mnuRoot.add( new JMenuItem("新建",new ImageIcon("new.gif")));//“新建”却显示成“苞”
    UIManager.put("Button.font",new Font("宋体",Font.PLAIN,20));//“宋体”变成“婼”请问这是怎么回事啊?谢谢
      

  6.   

    Font f = new Font(UIResource.getString("Default_font"),Font.PLAIN,20);
    UIManager.put("Button.font",f);
      

  7.   

    //这里有个例子。相信对你有帮助//:国际化和本地化.txt1、
    /**
         * File name: i18nDemoModify.java
         * Author: Jack, at http://bbs.whnet.edu.cn, Java discuss board.
         * Email: [email protected]
         * Description: Shows a Dialog with a "OK" button and "File"/"Exit" menu.
         *              This program made some modifications to fit the requestion of i18n
         */
        import javax.swing.*;
        import java.awt.*;
        import java.util.*;    public class i18nDemoModify {
          public static void main(String args[]) throws Exception{
            ResourceBundle res;
            if (args.length<1) {
              //use current locale at machine to get the resource bundle.
              //如果没有指定Locale,那么在生成ResourceBundle使用的Locale是当前机器上缺省的区域和语言
              //这样,如果机子是Windows2000中文,则自动选择中文资源
              //资源文件是以类的方式提供的。以Resmy开头,Resmy可以换成其他的字符串
              res = ResourceBundle.getBundle("Resmy");
            }else {
              res = ResourceBundle.getBundle("Resmy",new Locale(args[0], args[1]));
            }        JDialog dialog=new JDialog();
            JButton btOK=new JButton();
            JMenuBar menuBar=new JMenuBar();
            JMenu menuFile=new JMenu();
            JMenuItem menuExit=new JMenuItem();
            //如果不指定字体,将使用系统当前的字体
            Font font = new Font(res.getString("FontName"),Font.PLAIN,12);        btOK.setText(res.getString("OKText"));
            menuFile.setText(res.getString("FileMenuText"));
            menuExit.setText(res.getString("FileExitMenuText"));
            dialog.setTitle(res.getString("DialogTitle"));
            //如果不指定字体,将使用系统当前的字体
            btOK.setFont(font);
            menuFile.setFont(font);
            menuExit.setFont(font);        menuBar.add(menuFile);
            menuFile.add(menuExit);
            dialog.getContentPane().setLayout(new FlowLayout());
            dialog.getContentPane().add(btOK);
            dialog.getContentPane().add(menuBar);
            dialog.setSize(200,100);
            dialog.setModal(true);
            dialog.show();
            System.exit(0);
          }
        }
      
    2、英文资源
    /**
         * File name: Resmy_en_US.java
         * Author: Jack, at http://bbs.whnet.edu.cn, Java discuss board.
         * Email: [email protected]
         * Description: Resource file for i18nDemoModify.java
         */
        import java.util.*;
        public class Resmy_en_US extends java.util.ListResourceBundle {
          static final Object[][] contents = new String[][]{
            { "OKText", "OK" },
            { "FontName", "Dialoginput" },
            { "FileMenuText", "File"},
            { "FileExitMenuText", "Exit"},  
            { "DialogTitle", "Demo Dialog" }};
          public Object[][] getContents() {
            return contents;
          }
        }
    3、中文资源
      /**
         * File name: Resmy_zh_CN.java
         * Author: Jack, at http://bbs.whnet.edu.cn, Java discuss board.
         * Email: [email protected]
         * Description: Resource file for i18nDemo.java
         */
        import java.util.*; 
        public class Resmy_zh_CN extends java.util.ListResourceBundle {
          static final Object[][] contents = new String[][]{
            { "OKText", "确定" },
            { "FontName", "华文彩云" },
            { "FileMenuText", "文件"},
            { "FileExitMenuText", "退出"},
            { "DialogTitle", "演示对话框" }};
          public Object[][] getContents() {
            return contents;
          }
        }4、测试执行 
    javac i18nDemoModify.java
    javac Resmy_en_US.java
    javac Resmy_zh_CN.java
    java  i18nDemoModify           //根据操作系统而自动选择,选择OS使用的文字
    rem java  i18nDemoModify zh CN //明确指定汉字资源
    rem java  i18nDemoModify en US //明确指定英文资源
      

  8.   

    如果你的操作系统是win2k的话,在控制面板的地域设置里设成中国大陆,并把默认语言设成简体中文,也许有用。
      

  9.   

    老师:你好!
      对不起又麻烦你了。
      我发现情况是这样的:  首先我运行:
    C:\javacode>javac    PopupMenuDemo1.java
    PopupMenuDemo1.java:194: cannot resolve symbol
    symbol  : variable UIResource
    location: class PopupMenuDemo1
                    Font f = new Font(UIResource.getString("Default_font"),Font.PLAIN,20);
                                      ^
    1 error然后我重新用手工一行一行的输入代码和汉字,重新保存为PopupMenuDemo1.java这个文件。结果我打开PopupMenuDemo1.java查看代码,发现汉字变成了乱码。
      比如:  “新建”变成“苞”。
      所以运行的时候:本来应该显示为“新建”,就变成显示 “苞”。
      
    我的系统是WIN98,用的是JDK1.4。
      

  10.   

    tangshancheng(98007):
    你好:
         同时我发现:
    当我输入下面的程序时候:
    import java.util.*; 
        public class Resmy_zh_CN extends java.util.ListResourceBundle {
          static final Object[][] contents = new String[][]{
            { "OKText", "确定" },
            { "FontName", "宋体" },
            { "FileMenuText", "文件"},
            { "FileExitMenuText", "退出"},
            { "DialogTitle", "演示对话框" }};
          public Object[][] getContents() {
            return contents;
          }
        }然后保存为Resmy_zh_CN.java
    再打开时发现:
      汉字变成这个样子了:
    import java.util.*;     public class Resmy_zh_CN extends java.util.ListResourceBundle {      static final Object[][] contents = new String[][]{        { "OKText", "n&#65533;" },        { "FontName", "婼" },        { "FileMenuText", "圅"},        { "FileExitMenuText", "请问是怎么回事啊?
      

  11.   

    用的是JDK1.4   WIN98系统
    用javac编译
      

  12.   

    请问一下:就是在代码中输入的汉字到底能不能正确的保存,不以乱码显示?
      我用手工一行一行的输入代码和汉字,重新保存为PopupMenuDemo1.java这个文件。结果我打开PopupMenuDemo1.java查看代码,发现汉字变成了乱码。
      比如:  “新建”变成“苞”。
      所以运行的时候:本来应该显示为“新建”,就变成显示 “苞”。
      
    我的系统是WIN98,用的是JDK1.4。
      

  13.   

    我用的编辑器是JAVA WEB START 中的NOTEPAD。是不是这个编辑器不能存汉字?