Java给JFrame窗口设置热键的方法实现

使用了简单的JFrame窗口,在窗口中添加菜单,菜单选项,点击鼠标右键出现右键菜单,用io流将输入文本域的内容保存。并设置热键alt+x为退出的热键

public class MyNotepad extends JFrame{
 //菜单栏
 private JMenuBar jmb = new JMenuBar();
 //菜单
 private JMenu jmFile = new JMenu("文件(F)");
 private JMenu jmEdit = new JMenu("编辑(E)");
 private JMenu jmFormat = new JMenu("格式(O)");
 private JMenu jmFind = new JMenu("查看(V)");
 private JMenu jmHelp = new JMenu("帮助(H)");
//菜单项
private JMenuItem jmiNew = new JMenuItem("新建");
private JMenuItem jmiOpen = new JMenuItem("打开");
private JMenuItem jmiSave = new JMenuItem("保存");
private JMenuItem jmiOther = new JMenuItem("另存为");
private JMenuItem jmiExit = new JMenuItem("退出(X)");

private JCheckBoxMenuItem jmiAutoLine = new JCheckBoxMenuItem("自动换行");
private JMenuItem jmiFont = new JMenuItem("字体");

private JFileChooser jfc = new JFileChooser();

private JTextArea jta = new JTextArea();
private JScrollPane jsp = new JScrollPane(jta);

//上下文菜单
private JPopupMenu jpm = new JPopupMenu();
private JMenuItem jmiCopy = new JMenuItem("复制");
private JMenuItem jmiPaste = new JMenuItem("粘贴");

public MyNotepad() {
 this.setTitle("记事本");
 this.setSize(600,400);
 this.setLocationRelativeTo(null);
 this.setDefaultCloseOperation(EXIT_ON_CLOSE);

 this.add(jmb,BorderLayout.NORTH);

 jmb.add(jmFile);
 jmb.add(jmEdit);
 jmb.add(jmFormat);
 jmb.add(jmFind);
 jmb.add(jmHelp);

 jmFile.add(jmiNew);
 jmFile.add(jmiOpen);
 jmFile.add(jmiSave);
 jmFile.add(jmiOther);
 jmFile.addSeparator();
 jmFile.add(jmiExit);

 jmFormat.add(jmiAutoLine);
 jmFormat.add(jmiFont);

 //上下文菜单
 jpm.add(jmiCopy);
 jpm.add(jmiPaste);
 jpm.add(jmFile);
 jta.addMouseListener(new MouseAdapter() {
 public void mouseClicked(MouseEvent e) {
  if(e.getButton() == 3){
  jpm.show(jta, e.getX(), e.getY());
  }
 }
 });

 //文本域自动换行
 this.add(jsp,BorderLayout.CENTER);

 jmiAutoLine.addActionListener(new ActionListener() {
 public void actionPerformed(ActionEvent e) {
  boolean selected = jmiAutoLine.isSelected();
  if(selected){
  jta.setLineWrap(true);
  }else{
  jta.setLineWrap(false);
  }
 }
 });
// 文件新建窗口
 jmiNew.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent e) {
  int choose = jfc.showOpenDialog(MyNotepad.this);
  switch (choose) {
  case JFileChooser.APPROVE_OPTION:
   System.out.println("点击了打开");
   break;
  case JFileChooser.CANCEL_OPTION:
   System.out.println("点击了取消");
   break;
  }
  }
 });
 //文件保存窗口,用随机数命名文件名随时保存进新的文件
    jmiSave.addActionListener(new ActionListener() {

  @Override
  public void actionPerformed(ActionEvent arg0) {
  Random r = new Random();
  int a = r.nextInt(100);
  File file = new File("D:\\桌面\\b"+"r"+"a.txt");
  try {
   FileOutputStream fis = new FileOutputStream(file,true);
   BufferedOutputStream bis = new BufferedOutputStream(fis);
   byte [] b = jta.getText().getBytes();
   try {
   bis.write(b);
   bis.flush();
   bis.close();
   } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
   }

  } catch (FileNotFoundException e) {
   e.printStackTrace();
  }

  }
 });

 jmiExit.registerKeyboardAction(new ActionListener() {
  public void actionPerformed(ActionEvent e) {
  System.exit(0);
  }
 }, KeyStroke.getKeyStroke(KeyEvent.VK_X,KeyEvent.ALT_DOWN_MASK),
  JComponent.WHEN_IN_FOCUSED_WINDOW);//1.设置监听事件。2.设置热键alt+x关闭窗口3.设置触发当鼠标聚焦在窗口时

 jmiExit.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent e) {
  System.exit(0);
  }
 });

 this.setVisible(true);
 }

 public static void main(String[] args) {
 new MyNotepad();
 }
}

效果如下:

到此这篇关于Java给JFrame窗口设置热键的方法实现的文章就介绍到这了,更多相关Java JFrame窗口热键内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java-JFrame-swing嵌套浏览器的具体步骤

    一.使用swing嵌套浏览器要实现的功能: 通过java的swing实现在一个窗体中嵌套一个浏览器,可以在这个浏览器中将另一个项目的内容显示出来,只需要回去另一个项目首页的url即可,这样另一个项目就可以在swing嵌套的浏览器中进行正常的显示了: 二.下面的浏览器工具类中的方法在使用的时候,只需要从另一个项目的服务端获取另一个项目的首页stirng类型的url地址和浏览器左上角要显示的string类型的标题两个参数即可,参数只有url和title两个: (1)主要步骤: 1.通过以下java代

  • Java中JFrame实现无边框无标题方法

    很多时候我们弄一个界面,不想要默认的边框,或者不想要右上角的那个最大化按钮,比如qq面板上面就没有最大化按钮. 但是我查了很多资料都说不能直接去掉最大化按钮,必须把整个边框和标题都去掉,然后自己画.. 这个测试代码也很简单: <1>JFrame无边框无标题 <2>添加背景图片(添加背景图片有很多方法,大致上都是图片在JLabel里面,JLabel在Panel上面,Panel上面还有一个Panel放其它控件) <3>创建ImageIcon,直接用new ImageIcon

  • Java图形化界面设计之容器(JFrame)详解

    Java图形化界面设计--容器(JFrame) 程序是为了方便用户使用的,因此实现图形化界面的程序编写是所有编程语言发展的必然趋势,在命令提示符下运行的程序可以让我们了解java程序的基本知识体系结构,现在就进入java图形化界面编程. 一.Java基本类(JFC) Java基本类("JavaFoundationClasses",JFC),由一些软件包组成.这些软件包主要包括下面一些应用程序接口(API): ·抽象窗口工具集(AWT)(1.1及以上版本). ·Swing构件. ·Jav

  • Java之JFrame输出Helloworld实例

    本文实例讲述了Java之JFrame输出Helloworld的方法.分享给大家供大家参考.具体如下: JAVA的GUI程序的基本思路是以JFrame为基础,它是屏幕上window的对象,能够最大化.最小化.关闭.Swing是一个用于开发Java应用程序用户界面的开发工具包.以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格.Swing开发人员只用很少的代码就可以利用Swing丰富.灵活的功能和模块化组件来创建优雅的用户界面. 说白了,你只需要很少的代码,就能利用JAVA

  • java实现jframe透明窗体示例

    复制代码 代码如下: import javax.swing.JFrame;public class TansluFrame extends JFrame{    public TansluFrame()    {        com.sun.awt.AWTUtilities.setWindowOpacity(this, 0.6f);       }    public static void main(String[] args)    {        TansluFrame frame =

  • Java Swing JFrame窗口的实现

    1. 概述 官方JavaDocsApi: javax.swing.JFrame JFrame,窗口.JFrame 是一个可以独立显示的组件,一个窗口通常包含有标题.图标.操作按钮(关闭.最小化.最大化),还可以为窗口添加菜单栏.工具栏等.一个进程中可以创建多个窗口,并可在适当时候进行显示.隐藏 或 销毁. JFrame 常用构造方法: /** * 参数说明: * title: 窗口标题 */ JFrame() JFrame(String title) JFrame 常用方法: // 设置窗口的

  • 超简单的java获取鼠标点击位置坐标的实例(鼠标在Jframe上的坐标)

    1. 在窗口的最上方放置一个JLabel标签,标签中的文本默认为"此处显示鼠标右键点击的坐标" 2. 为Jframe窗口添加一个鼠标事件,当鼠标右键点击窗口时,鼠标的坐标在JLabel标签中显示. java 代码实现 import java.awt.FlowLayout; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JFrame; import jav

  • java通过JFrame做一个登录系统的界面完整代码示例

    在java的JFrame内通过创建匿名对象的方式做登录界面 package com.sxt; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.J

  • Java给JFrame窗口设置热键的方法实现

    使用了简单的JFrame窗口,在窗口中添加菜单,菜单选项,点击鼠标右键出现右键菜单,用io流将输入文本域的内容保存.并设置热键alt+x为退出的热键 public class MyNotepad extends JFrame{ //菜单栏 private JMenuBar jmb = new JMenuBar(); //菜单 private JMenu jmFile = new JMenu("文件(F)"); private JMenu jmEdit = new JMenu("

  • JAVA Swing实现窗口添加课程信息过程解析

    基本思路: 先创建出一个添加课程信息的框架,随后就设置按钮的鼠标监听事件,确保单机后录入信息的合法性,以及确定合法性之后的后续操作,如保存课程信息,信息有误弹出窗口等操作. 代码 package Test; import javax.swing.JButton; import java.io.*; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.

  • JFrame中添加和设置JPanel的方法实例解析

    Swing 程序用JFrame 对象实现了它们的窗口.JFrame 类是AWT Frame 类的一个子类.它还加入了一些Swing 所独有的特性.与 Frame 的使用十分相似.唯一的区别在于,你不能将组件加入到JFrame中.你可以或者将组件加入到JFrame 的content pane(内容面板) 中,或者提供一个新的content pane(内容面板). 面板与顶层容器的不同点:面板不能独立存在,必须被添加到其他容器内部(面板可以嵌套). JFrame 有一个 Content Pane,窗

  • 易语言设置热键呼出窗口的代码

    设置热键呼出窗口的代码 .版本 2 .支持库 shellEx .程序集 窗口程序集1 .程序集变量 F3, 整数型 .子程序 __启动窗口_创建完毕 F3 = 注册热键 (_启动窗口.取窗口句柄 (), 热键呼出标签.取窗口句柄 (), 0, #F3键) .子程序 _热键呼出标签_反馈事件, 整数型 .参数 呼出, 整数型 .参数 参数二, 整数型 .如果真 (呼出 = F3) _启动窗口.位置 = 1 ' 1. 居中 2. 最小化 3. 最大化 _启动窗口.总在最前 = 真 处理事件 () _

  • PyQt5 实现给窗口设置背景图片的方法

    QPalette类可以十分简单的达到设置窗口背景图片的目的 def use_palette(self): self.setWindowTitle("设置背景图片") window_pale = QtGui.QPalette() window_pale.setBrush(self.backgroundRole(), QtGui.QBrush(QtGui.QPixmap("F:\A_code\PyQT_Demo\\back_ground.png"))) self.set

  • java操作Redis缓存设置过期时间的方法

    关于Redis的概念和应用本文就不再详解了,说一下怎么在java应用中设置过期时间. 在应用中我们会需要使用redis设置过期时间,比如单点登录中我们需要随机生成一个token作为key,将用户的信息转为json串作为value保存在redis中,通常做法是: //生成token String token = UUID.randomUUID().toString(); //把用户信息写入redis jedisClient.set(REDIS_USER_SESSION_KEY + ":"

  • java处理按钮点击事件的方法

    不同的事件源可以产生不同类别的事件.例如,按钮可以发送一个ActionEvent对象,而窗口可以发送WindowEvent对象. AWT时间处理机制的概要: 1. 监听器对象是一个实现了特定监听器接口(listener interface)的类的实例. 2. 事件源是一个能够注册监听器对象并发送事件对象的对象. 3. 当事件发生时,事件源将事件对象传递给所有注册的监听器. 4. 监听器对象将利用事件对象中的信息决定如何对事件做出响应. 下面是监听器的一个示例: ActionListener li

  • 使用Java的Graphics类进行绘图的方法详解

    Graphics类提供基本绘图方法,Graphics2D类提供更强大的绘图能力.本节讲解Graphics类,下节讲解Graphics2D. Graphics类提供基本的几何图形绘制方法,主要有:画线段.画矩形.画圆.画带颜色的图形.画椭圆.画圆弧.画多边形等. 1. 画线 在窗口画一条线段,可以使用Graphics类的drawLine()方法: drawLine(int x1,int y1,int x2,int y2) 例如,以下代码在点(3,3)与点(50,50)之间画线段,在点(100,10

随机推荐