首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过按转义键关闭JInternalFrame?

如何通过按转义键关闭JInternalFrame?
EN

Stack Overflow用户
提问于 2016-08-22 14:27:36
回答 2查看 1.3K关注 0票数 0

我用JDesktopPane创建了一个JDesktopPane,其中我调用了JInternalFrame。现在,我想关闭这个内部框架,按下转义键。

我试过2-3种方法,但没有输出。

  1. 为此,我使用了下面给出的代码: 公共静态空洞closeWindow(JInternalFrame ji){ ActionListener close=New ActionListener(){公共空actionPerformed(ActionEvent e){ ji.dispose();}; 当我通过提供实习生框架类构造函数的对象来调用上面的方法时,我能够关闭它。但是,当我在那里写一些其他代码行构造函数。上述方法调用不起作用。请帮帮我。我在代码中找不到问题。
  2. 另外,我还尝试将KeyListener添加到内部框架中,这样我就可以使用键笔画,但它也不起作用。
  3. 我再次尝试将setMnemonic按钮作为转义按钮,如下所示: jButton1.setMnemonic(KeyEvent.VK_ESCAPE); 但也没有输出。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-22 15:16:00

您需要实现KeyListener接口,或者添加一个匿名接口。在这个例子中,我只是实现了它。

代码语言:javascript
复制
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;

public class JInternalFrame extends JFrame implements KeyListener {

    public JInternalFrame() 
    {
        super();


        // other stuff to add to frame
        this.setSize(400, 400);
        this.setVisible(true);

        this.addKeyListener( this );
    }

    @Override
    public void keyTyped(KeyEvent e) {
        // Don't need to implement this


    }

    @Override
    public void keyPressed(KeyEvent e) {
        if( e.getKeyCode() == KeyEvent.VK_ESCAPE ) {
            System.exit(0); //Change this to dispose or whatever you want to do with the frame
        }

    }

    @Override
    public void keyReleased(KeyEvent e) {
        //Dont need to implement anything here

    }

    public static void main(String[] args)
    {
        JInternalFrame frame = new JInternalFrame();
    }

}

现在,如果这是前面提到的内部jframe,那么最好在JDesktopPane中实现keylistener,并在此框架中按转义之后在JInternalFrame上调用dispose方法,而不是在此框架中实现keylistener。这都取决于哪个GUI组件具有输入的焦点。

票数 0
EN

Stack Overflow用户

发布于 2022-07-09 08:24:27

这个问题现在很老了,但我最近遇到了一个类似的问题。将键侦听器添加到内部框架的内容窗格,而不是内部框架本身,为我完成了这项工作。

代码语言:javascript
复制
this.getContentPane().addKeyListener(this);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39082119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档