当前位置: 技术问答>java相关
三问关于Focus,请指教!
来源: 互联网 发布时间:2015-06-12
本文导语: 目的:>>当程序开始的时候就让名为inputarea的文本域获得focus 尝试:>>由于我使用了很多的panel嵌套,并且inputarea并非在panel的第一栏,因此用改变getContentPane().add()加入的次序的方法行不通。因此我在该类的构建器中加入...
目的:>>当程序开始的时候就让名为inputarea的文本域获得focus
尝试:>>由于我使用了很多的panel嵌套,并且inputarea并非在panel的第一栏,因此用改变getContentPane().add()加入的次序的方法行不通。因此我在该类的构建器中加入如下代码:
if(InputArea.requestDefaultFocus()==false){
InputArea.grabFocus();//不能执行
//InputArea.requestFocus()同样不能执行
InputArea.setText("hello!");
}
却只有 InputArea.setText("hello!");能够执行!
问题:>>我想知道为什么只有 InputArea.setText("hello!");能够执行,怎样才能够实现我的初衷?
尝试:>>由于我使用了很多的panel嵌套,并且inputarea并非在panel的第一栏,因此用改变getContentPane().add()加入的次序的方法行不通。因此我在该类的构建器中加入如下代码:
if(InputArea.requestDefaultFocus()==false){
InputArea.grabFocus();//不能执行
//InputArea.requestFocus()同样不能执行
InputArea.setText("hello!");
}
却只有 InputArea.setText("hello!");能够执行!
问题:>>我想知道为什么只有 InputArea.setText("hello!");能够执行,怎样才能够实现我的初衷?
|
我记得好像JDialog是不能够通过构造函数来实现requeseFocus()的,JFrame是可以的,具体的我也不太清楚了,不过为什么不能用加入次序的方法呢?我搞不明白!因为你的多个panel最外层也要getContentPane().add()的,而你只要在含有这个inputarea的panel中先把它add近来就可以了!
|
给你段代码看看,问题就在于没有显示之前是没有焦点的.
JTextField text1=new JTextField();
JTextField text2=new JTextField();
public class Test extends JPanel{
public Test(){
setLayout(new BorderLayout());
add(text1,BorderLayout.NORTH);
add(text2,BorderLayout.SOUTH);
}
public static void main(String args[])
{
JFrame f=new JFrame();
Test t=new Test();
f.getContentPane().add(t);
f.pack();
f.setVisible(true);//问题就在这
t.text2.requestFocus();//现在text2就能获得焦点.你把这句注掉再
试,情况如何?
}
}
明白了吧!快给分哦!
JTextField text1=new JTextField();
JTextField text2=new JTextField();
public class Test extends JPanel{
public Test(){
setLayout(new BorderLayout());
add(text1,BorderLayout.NORTH);
add(text2,BorderLayout.SOUTH);
}
public static void main(String args[])
{
JFrame f=new JFrame();
Test t=new Test();
f.getContentPane().add(t);
f.pack();
f.setVisible(true);//问题就在这
t.text2.requestFocus();//现在text2就能获得焦点.你把这句注掉再
试,情况如何?
}
}
明白了吧!快给分哦!
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。