无法管理键盘焦点

时间:2017-12-16 02:29:44

标签: java swing

我正在开发一个生成kenken拼图的应用程序,其中用户输入数字来解决它。但是,我似乎无法让焦点系统工作;我的JFrame甚至没有得到重点开始。这是初始化主框架的方法:

    public static void initMain() {

    mainframe.setVisible(true);
    mainframe.setSize(new Dimension(900, 900));
    mainframe.requestFocus();
    System.out.println(mainframe.isFocusOwner());
    System.out.println(mainframe.isFocusable());

    mainframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    mainframe.setExtendedState(JFrame.MAXIMIZED_BOTH);
    mainframe.setContentPane(puzzle);
    in = mainframe.getInsets();

    mainframe.setJMenuBar(bar);
    bar.add(menu);
    menu.add(item);
    item.addMouseListener(new MouseListener () {
        public void mouseClicked(MouseEvent e) {}
        public void mousePressed(MouseEvent e) {popup();}
        public void mouseReleased(MouseEvent e) {}
        public void mouseEntered(MouseEvent e) {}
        public void mouseExited(MouseEvent e) {}
    });
}

(后半部分在这里不那么重要,只是出于完成而显示)

第一个输出始终为false,并且不会生成键事件。从我在网上看到的,将窗口设置为可见并请求关注应该是足够的,尽管重点在于应该。我的操作系统是Windows 8,这有所不同。

1 个答案:

答案 0 :(得分:0)

Ok nvm,通过requestFocusInWindow(之前也没有工作)让焦点工作。似乎问题是过早地要求关注并且只有一次。为什么大型机的重点不起作用要么我还没有完成,但现在我认为这并不重要。不管怎样,谢谢你的答案。