展开全部

import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import javax.swing.JFrame;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.SwingUtilities;

public class MenuTester extends JFrame implements ActionListener

{

private static final long serialVersionUID = 1L;

private static final String FILE = "d:/1.txt";

JTextArea textArea;

JScrollPane scrollPane;

public MenuTester ()

{

e68a84e8a2ad3231313335323631343130323136353331333337373562setTitle ("MenuTester");

setLayout (new BorderLayout ());

JMenuBar menuBar = new JMenuBar ();

JMenu[] menu = new JMenu[] { new JMenu ("文件"), new JMenu ("编辑") };

JMenuItem[] menuItem1 = new JMenuItem[] { new JMenuItem ("新建"), new JMenuItem ("打开"), new JMenuItem ("保存"), new JMenuItem ("关闭") };

JMenuItem[] menuItem2 = new JMenuItem[] { new JMenuItem ("复制"), new JMenuItem ("粘贴"), new JMenuItem ("剪切") };

for ( int i = 0; i

{

menuBar.add (menu[i]);

}

for ( int i = 0; i

{

menu[0].add (menuItem1[i]);

}

for ( int i = 0; i

{

menu[1].add (menuItem2[i]);

}

menuItem1[0].addActionListener (this);

menuItem1[1].addActionListener (this);

menuItem1[2].addActionListener (this);

menuItem1[3].addActionListener (this);

setJMenuBar (menuBar);

textArea = new JTextArea ();

scrollPane = new JScrollPane (textArea);

scrollPane.setVisible (false);

add (scrollPane, BorderLayout.CENTER);

setResizable (false);

setSize (800, 600);

setLocationRelativeTo (null);

setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

setVisible (true);

}

public static void main ( String[] args )

{

SwingUtilities.invokeLater (new Runnable ()

{

@Override

public void run ()

{

new MenuTester ();

}

});

}

@Override

public void actionPerformed ( ActionEvent e )

{

String command = e.getActionCommand ();

if ("新建".equals (command))

{

scrollPane.setVisible (true);

validate ();

}

else if ("关闭".equals (command))

{

scrollPane.setVisible (false);

textArea.setText ("");

validate ();

}

else if ("打开".equals (command))

{

scrollPane.setVisible (true);

validate ();

try

{

FileReader fr = new FileReader (FILE);

char[] cs = new char[1];

while (-1 != ( fr.read (cs) ))

{

textArea.append (new String (cs));

}

fr.close ();

}

catch (Exception e1)

{

e1.printStackTrace ();

}

}

else if ("保存".equals (command))

{

try

{

FileWriter fw = new FileWriter (FILE);

fw.write (textArea.getText ());

fw.flush ();

fw.close ();

}

catch (IOException e1)

{

e1.printStackTrace();

}

}

}

}

java对菜单项的监听_我是新手,请问大神java菜单项和下拉列表添加监听和监听方法???有变量和方法就行了...相关推荐

  1. 从Java新手到大神需要学哪些知识?

    互联网的高速发展,诞生了越来越多的新兴行业,无论行业如何发展,Java一直都是使用频率最高的编程语言之一,自然也就吸引了越来越多的人加入行业.那么,Java新手到大神可有什么好的学习路线?下面,小千就 ...

  2. java如何保证类不被回收_垃圾回收机制保证了Java程序不会出现内存溢出。( )

    [简答题]1.激素(名词解释) [单选题]6.下列哪种情况下可引起ADH分泌增加 [判断题]在Java中使用String类型的实例对象表示一个字符串.( ) [判断题]static关键字可以修饰成员变 ...

  3. java数组有跨类建立对象_必会的 55 个 Java 性能优化细节!一网打尽!

    程序员的成长之路互联网/程序员/成长/职场 关注 阅读本文大概需要 10 分钟. 来源:https://yq.aliyun.com/articles/662001 在 Java 程序中,性能问题的大部 ...

  4. java 反射获取属性名和值_面试官这样问我Java反射原理,我刚好都会

    上周我投递出了简历,岗位是java后端开发工程师.这周美团面试官给我进行了面试,面试过程中他问了Java的反射原理.(不得不夸一句,美团的效率真高,上午面完一面,晚上二面马上安排上了.) 无论什么Ja ...

  5. java在线学习网站源码_我是怎么开发一个小型java在线学习网站的

    2016/1/27 11:55:14 我是怎么开发一个小型java在线学习网站的 一直想做一个自己的网站(非博客),但是又不知道做什么内容的好,又一次看到了w3schools,就萌发了开发一个在线ja ...

  6. java 8进制串转中文_老杜带你学Java【第六课】

    上期链接:老杜带你学Java[第五课] 01 写在前面 欢迎来到杜老师的「零基础学Java」课堂~今后,我们就是Java软件工程师了.(此处应该有掌声???)本专题为<零基础学Java>专 ...

  7. Java开源商城源码推荐,从菜鸡到大神,永远绕不开的商城系统

    每个Java程序员,从懵逼菜鸡,再到懵懂菜鸟,再到小鸟,大鸟,最后到技术大神,始终绕不开商城系统,里面蕴含了大量的业务,涉及到了大量的知识点和解决方案. 今天介绍一款Java开源商城源码 xmall- ...

  8. java技术分享主题_Java开发入门:适合新手练手的Java项目(附源码下载)

    Java作为一门古老的语言,已有20年左右的历史,这在发展日新月异的技术圈可以说是一个神话.虽然不少人曾抱怨Java语言就像老太太的裹脚布,又臭又长,有时写了500行都不能表达程序员的意图. 但从市场 ...

  9. fiddler启动文件_如何成为Fiddler大神,请看这里!

    原标题:如何成为Fiddler大神,请看这里! 什么是Fiddler? Fiddler是一个HTTP/HTTPS协议调试代理工具, 它能够记录客户端和服务器之间的所有 HTTP/请求,可以针对特定的H ...

最新文章

  1. 6个用于文本分类的最新开源预训练模型(NLP必备)
  2. 力扣(LeetCode)258. 各位相加
  3. MySQL 服务器变量 数据操作DML-视图
  4. MapReduce分析NCDC 年气象数据最低温度与最高温度
  5. 【征稿通知】CCF第37届中国计算机应用大会 CCF NCCA 2022
  6. Redis 开发与运维
  7. 【华为云技术分享】浅谈服务化和微服务化(上)
  8. 系统集成项目管理工程师证书有什么用?
  9. CODESYS Visualization
  10. P3110 [USACO14DEC]驮运Piggy Back-最短路,spfa
  11. 2003年高考语文全国最高分_最新消息!2020高考语文数学题型大变!全国卷或有多套题...
  12. 符合 V.25TER 的 AT 命令
  13. SEO每天都是动态变化的,你要关注什么?
  14. 使用了可能未初始化的本地指针变量“xxx”
  15. Zookeeper连接异常 Got ping response for sessionid 2021-06-30
  16. 辗转相除法(欧几里得算法)
  17. Web前端:JS社区推荐的最佳JavaScript框架
  18. linux 文件恢复 软件,EasyRecovery轻松实现Linux数据恢复
  19. vue + 微信获取用户信息
  20. 初次模拟小鲨鱼记账本1.0

热门文章

  1. nacis服务注册原理_HwServiceManager篇Android10.0 HwBinder通信原理(五)
  2. ubuntu16.04 gcc降级到4.8
  3. 计算机英语讲课笔记(2020-6-23)
  4. 英语学习笔记2019-12-06
  5. 向量的大小和方向,零向量的方向_3
  6. 7.边缘检测:2D运算——Canny边缘原理、Canny边缘检测器、Canny-Matlab实战_2
  7. android 打印流程图,Android实现Activities之间进行数据传递的方法
  8. 2017.9.14 仪仗队 思考记录
  9. 2017.7.19 Race 思考记录
  10. Coding the Matrix Week 3 The Matrix 矩阵