从开始设置JTextfield

时间:2015-03-07 16:48:36

标签: java swing focus jtextfield barcode-scanner

为学校制作一个项目,包括从我的“开始框架”中扫描一些看起来像这样的东西 - > http://i.gyazo.com/21ed444ad98b441e95c69901eceaef00.png

enter image description here

左下角的文本字段是您扫描的ID所在的位置。为了使它看起来更干净我想把它从开始设置为焦点然后隐形。 (这甚至可以工作吗?)因此您只需扫描而不会在屏幕上看到数字。

但设定焦点对我不起作用。我已经尝试了所有这些方法

    txtKlantID.grabFocus();
    txtKlantID.requestFocus();
    txtKlantID.requestFocusInWindow();

txtKlantID是文本字段的名称。

提前致谢

1 个答案:

答案 0 :(得分:2)

  

我想从头开始设置它...但设置焦点对我不起作用。我已经尝试了所有这些方法

使用的正确方法是requestFocusInWindow()方法。但是,除非组件显示在可见的GUI中,否则无法请求关注组件。所以基本代码的结构必须如下:

frame.pack();
frame.setVisible(true);
component.requestFocusInWindow();

可能无法始终以这种方式构造代码,并且您希望组件在创建时请求焦点。在这种情况下,您可以向组件添加AncestorListener,以便在显示时请求焦点。查看RequestFocusListener以获取为您执行此操作的代码。