Lee*_*Lee 14 java swing netbeans focus
我有一个用netbeans开发的应用程序,我想在jTextField显示一个面板时将焦点设置为某个.我已经阅读了一些帖子,并尝试了各种方法,但没有工作.其中一个主要问题是放置所需代码的位置,我相信在我的情况下this.txtMessage.requestFocusInWindow();
有一些帖子表明使用Window Listener,但是由于netbeans已经生成了GUI,我无法看到如何实现接口,因为我无法编辑创建jPANEL等的代码.整件事非常令人沮丧,我真的不相信这应该是那么困难.
就像测试一样,我将其添加requestFocusInWindow();到面板上的按钮,它确实将焦点设置为所需的输入.
chv*_*vck 17
我有一个类似的场景,我需要在显示面板时将焦点设置在面板内的文本框中.面板在应用程序启动时加载,因此我无法在构造函数中设置焦点.由于面板没有被加载或被关注显示,这意味着我没有事件来发起焦点请求.
为了解决这个问题,我在main中添加了一个全局方法,该方法在面板中调用requestFocusInWindow()了一个在文本区域调用的方法.在调用show 之后,我在显示面板的按钮中调用了global方法.这意味着将显示面板,然后在显示面板后指定焦点的文本区域.希望有意义和有帮助!
此外,您可以通过在设计视图中右键单击对象并选择自定义代码来编辑大多数自动生成的代码,但我不认为它允许您编辑面板.
Ria*_*ius 11
我不确定我是否在这里遗漏了一些东西,但没有理由不能为你的面板添加一个监听器.
在Netbeans中,只需点击编辑器窗口左上角的"Source"按钮,即可编辑大部分代码.实际的布局代码大多是锁定的,但如果需要,您甚至可以自定义.
据我所知,txtMessage.requestFocusInWindow()应该在第一次显示窗口时设置默认焦点.如果您想在窗口显示后请求焦点,您应该使用txtMessage.requestFocus()
对于测试,您只需在构造函数中添加一个侦听器:
addWindowListener(new WindowAdapter(){
public void windowOpened( WindowEvent e){
txtMessage.requestFocus();
}
});
Run Code Online (Sandbox Code Playgroud)
在JFrame或JDialog中,您总是可以覆盖setVisible()方法,它运行良好.我没有试过JPanel,但可以替代.
@Override
public void setVisible(boolean value) {
super.setVisible(value);
control.requestFocusInWindow();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
95140 次 |
| 最近记录: |