参考:http://blog.sina.com.cn/s/blog_025270e90101b1db.html

1.IDE工具是eclipse,检查了编码是UTF-8,控制台中是中文,用awt就会乱码掉。

2.查看了代码,在文件夹中直接java XXX运行,awt的内容也是显示中文。

结论:ide的锅

Run As--Run Configurations--Arguments--VM arguments

添加:-Dfile.encoding=GB18030

新代码出现问题了。awt中文显示正常,控制台输出错误。

日哦。。。。在命令行里面跑是正常的,eclipse就各种掉链子。

TODO java -疑惑-awt-menuItem只能选择加在一个menubar中,或者加载一个popMenu中,而不能两边都加

menuItem只能选择加在一个menubar中,或者加载一个popMenu中,而不能两边都加

存疑。现在的代码确实是这样的。

以下代码,很多menuItem两边都加了,但是是以排在后面为准的。

这里的add的menuItem,不是实例的一次引用吗?add是指什么呢?

  1. package chapter11;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.CheckboxMenuItem;
  5. import java.awt.Dimension;
  6. import java.awt.Frame;
  7. import java.awt.Menu;
  8. import java.awt.MenuBar;
  9. import java.awt.MenuItem;
  10. import java.awt.MenuShortcut;
  11. import java.awt.Panel;
  12. import java.awt.PopupMenu;
  13. import java.awt.TextArea;
  14. import java.awt.event.ActionEvent;
  15. import java.awt.event.ActionListener;
  16. import java.awt.event.KeyEvent;
  17. import java.awt.event.MouseAdapter;
  18. import java.awt.event.MouseEvent;
  19. import java.awt.event.WindowAdapter;
  20. import java.awt.event.WindowEvent;
  21.  
  22. import javax.swing.border.Border;
  23.  
  24. public class TestAwt{
  25. private Frame f = new Frame("test");
  26. private MenuBar mb = new MenuBar();
  27. //增加右键菜单menu
  28. PopupMenu pop = new PopupMenu();
  29.  
  30. Menu file = new Menu("文件");
  31. Menu edit = new Menu("编辑");
  32. //文件menu的子item
  33. MenuItem newItem = new MenuItem("新建");
  34. MenuItem saveItem = new MenuItem("保存");
  35. MenuItem exitItem = new MenuItem("退出"
  36. ,new MenuShortcut(KeyEvent.VK_X));
  37.  
  38. //编辑menu的子item
  39. CheckboxMenuItem autoWrap =new CheckboxMenuItem("自动换行");
  40. MenuItem copyItem = new MenuItem("复制");
  41. MenuItem pasteItem = new MenuItem("粘贴");
  42. Menu format = new Menu("格式");
  43.  
  44. //格式menu的子item
  45. MenuItem commentItem= new MenuItem("注释"
  46. ,new MenuShortcut(KeyEvent.VK_SLASH,true));
  47. MenuItem cancelItem = new MenuItem("取消注释");
  48.  
  49. //文本区域
  50. private TextArea ta = new TextArea(6,70);
  51. public void init(){
  52. //以匿名内部类创建菜单监听器
  53. ActionListener menuListener = new ActionListener(){
  54. public void actionPerformed(ActionEvent e){
  55. String cmd = e.getActionCommand();
  56. ta.append("单机["+cmd+"]菜单\n");
  57. if(cmd.equals("退出")){
  58. System.exit(0);
  59. }
  60. }
  61. };
  62. //给注释commentItem增加监听
  63. commentItem.addActionListener(menuListener);
  64. //为pop增加菜单项
  65. pop.add(autoWrap);
  66. pop.add(copyItem);
  67. pop.add(pasteItem);
  68. //给退出exit增加监听
  69. exitItem.addActionListener(menuListener);
  70.  
  71. //为文件file增加子项
  72. file.add(newItem);
  73. file.add(saveItem);
  74. file.add(exitItem);
  75. //为编辑edit增加子项
  76. edit.add(autoWrap);
  77. //加分割线
  78. edit.addSeparator();
  79. edit.add(copyItem);
  80. // edit.add(pasteItem);
  81.  
  82. //给格式增加子菜单
  83. format.add(commentItem);
  84. format.add(cancelItem);
  85.  
  86. pop.add(format);
  87.  
  88. final Panel p = new Panel();
  89. p.setPreferredSize(new Dimension(300,160));
  90. p.add(pop);
  91. p.addMouseListener(new MouseAdapter(){
  92. public void mouseReleased(MouseEvent e){
  93. if(e.isPopupTrigger()){
  94. pop.show(p, e.getX(), e.getY());
  95. }
  96. }
  97. });
  98. //增加分割线
  99. edit.add(new MenuItem("-"));
  100. //增加格式选项
  101. edit.add(format);
  102.  
  103. //往menubar里面增加 file,edit选项
  104. mb.add(file);
  105. mb.add(edit);
  106.  
  107. //给frame设置menubar
  108. f.setMenuBar(mb);
  109. //给frame加监听
  110. f.addWindowListener(new WindowAdapter(){
  111. public void windowClosing(WindowEvent e ){
  112. ta.append("用户试图关闭窗口\n");
  113. System.exit(0);
  114. }
  115. });
  116.  
  117. f.add(p);
  118. f.add(ta,BorderLayout.NORTH);
  119. f.pack();
  120. f.setVisible(true);
  121. }
  122. public static void main(String []args){
  123. new TestAwt().init();
  124. }
  125. }

  

TODO java-awt中文乱码--疑惑的更多相关文章

  1. java awt 中文乱码 显示为 方块

    今天调试同学的五子棋程序,同学的界面是用awt写的,运行的时候,发现菜单栏中的中文都无法正常显示,而是变为了一个个方框, 类似于这样:(图片来源于网络) 即使做了字体设置,比如设置为宋体,也还是无法正 ...

  2. java ee 中文乱码的问题

    java ee 中文乱码的问题 发生中文乱码的三种情况 (一) 表单form Post 方法 直接在服务器中设置 request.setCharacterEncoding("utf-8&qu ...

  3. eclipse中添加进新的java项目中文乱码

    eclipse中添加进新的java项目中文乱码 添加学习的一些项目进eclipse中,结果其中的中文注释都变成了乱码 右击项目,点最下面的属性,出来新得弹框 在文本文件编码部分可以发现是GBK格式,选 ...

  4. Eclipse导入项目java文件中文乱码

    感谢大佬:https://blog.csdn.net/ordinaryprogrammerc/article/details/83013710 本文链接:https://blog.csdn.net/o ...

  5. java 解决中文乱码

    //1.代码解决 public class LuanMa { public static String getNewString(String luanma){ String result = &qu ...

  6. Java 关于中文乱码处理的经验总结【转载】

    为什么说乱码是中国程序员无法避免的话题呢?这个首先要从编码机制上说起,大家都是中文和英文的编码格式不是一样,解码也是不一样的!如果中国的程序员不会遇到乱码,那么只有使用汉语编程.汉语编程是怎么回事我也 ...

  7. Visual Studio Code Java输出中文乱码的问题

    Visual Studio Code 推出了java插件,最近适用了一把,非常不错,但是有个很明显的bug.就是中文乱码,具体现象有如下: 1.System.out.println 控制台输出乱码. ...

  8. java 菜单 中文 乱码问题解决方案(使用idea/eclipse) swing MenuItem乱码

    java swing MenuItem乱码 2016年12月30日 13:32:08751人阅读 评论(0) 收藏 举报   用java开发一个带有托盘图标的程序, 其它模块的中文显示都是正常的,比如 ...

  9. Java处理中文乱码问题

    package servlet; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.ser ...

随机推荐

  1. SSM+shiro及相关插件的整合maven所有依赖,详细注释版,自用,持续更新

    整合了SSM+shiro框架,slf4j+logback日志,及一些好用的插件PageHelper,mybatis-generator,Lombok,fastjson等等 <?xml versi ...

  2. java中的缓冲流!

    package cn.zhozuohou; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; impor ...

  3. 十一、ASP.NET Boilerplate

    一.ASP.NET Boilerplate 实体是 DDD(领域驱动设计)的核心概念之一.Eric Evans 是这样描述的“很多对象不是通过它们的属性定义的,而是通过一连串的连续性事件和标识定义的” ...

  4. 二、两条Linux删除数据跑路命令

    一.rm rm -rf / 无提示循环删除根目录,,删除存在被恢复的可能 二.dd dd if=/dev/urandom of=/dev/hda1 随机填写数据到相应分区,直到填满为止.重写后的分区无 ...

  5. 使用cmd命令行窗口操作SqlServer

    本文主要介绍使用windows下的使用cmd命令行窗口操作Sqlserver, 首先我们可以运行 osql  ?/   ,这样就把所有可以通过CMD命令行操作sqlserver的命令显示出来 (有图有 ...

  6. Codeforces#543 div2 A. Technogoblet of Fire(阅读理解)

    题目链接:http://codeforces.com/problemset/problem/1121/A 真·阅读理解 题意就是 有n个人 pi表示他们的强度 si表示他们来自哪个学校 现在Arkad ...

  7. 部署 Django

    补充说明:关于项目部署,历来是开发和运维人员的痛点.造成部署困难的主要原因之一是大家的Linux环境不同,这包括发行版.解释器.插件.运行库.配置.版本级别等等太多太多的细节.因此,一个成功的部署案例 ...

  8. POJ 1966 Cable TV Network (算竞进阶习题)

    拆点+网络流 拆点建图应该是很常见的套路了..一张无向图不联通,那么肯定有两个点不联通,但是我们不知道这两个点是什么. 所以我们枚举所有点,并把每个点拆成入点和出点,每次把枚举的两个点的入点作为s和t ...

  9. 【XSY2762】插线板 分块

    题目大意 有\(n\)个插线板,每个插线板会在\(l_i\)时刻初插入到队列中(队列是按插线板的编号排序的),\(r_i\)时刻末移除. 插入一个插线板时会对当前所有接在队列中这个插线的下一个插线板上 ...

  10. python构建bp神经网络_鸢尾花分类(一个隐藏层)__2.代码实现

    IDE:jupyter   数据集请查看:鸢尾花数据集 测试效果预览   成功率96.7% 代码已上传到码云