一个很奇怪的问题,在Linux下JPasswordFiled有时候无法输入任何字符。
测试代码如下:
public class Test
{
    public static void main( String[] args ) throws Exception
    {
        JFrame f = new JFrame( "Frame" );
        f.setLayout( new FlowLayout() );
        f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        f.setLocationRelativeTo( null );        f.getContentPane().add( new JPasswordField( 10 ) );
        f.getContentPane().add( new JButton( "Button" ) );
        f.getContentPane().add( new JTextField( 10 ) );
        f.pack();
        f.setVisible( true );
    }
}
JRE版本:1.6
Linux版本:不详,反正挺新的
桌面:GNOME问题描述:
一个非常简单的窗口,上面有一个密码框,一个按钮,一个文本框。三个控件都没有任何自定义的事件处理程序。
一开始密码框工作正常,但是点击了中间那个按钮之后,就无法在密码框输入任何字符了。如果你在右边的文本框输入一些字符,这个时候密码框又正常工作了!怀疑是Java的Bug或者是操作系统GUI和Java的兼容性问题。因为这段简单的代码几乎不可能有任何问题。
另外我尝试对密码框注册了KeyListener和FocusListener,但是密码框接收到了焦点事件,而对击键事件没有响应。有条件的同学能不能帮忙运行一下上面这段代码,并告知运行结果和JRE版本以及Linux版本,谢谢!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【ZJXHZ】截止到2008-07-22 14:37:11的历史汇总数据(不包括此帖):
    发帖的总数量:2                        发帖的总分数:30                       每贴平均分数:15                       
    回帖的总数量:12                       得分贴总数量:8                        回帖的得分率:66%                      
    结贴的总数量:2                        结贴的总分数:30                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!
      

  2.   

    顶,有Linux环境的同学能不能帮忙测试一下?
      

  3.   

    f.setLocationRelativeTo( null ); 
    把这一行放在pack()后面试试
      

  4.   

    我刚刚也遇到这个问题。
    我用的是fedora 6 + JDK 1.6.0_10它需要设置支持输入法才可以,不然就无法输入。
    JPasswordField.enableInputMethods(true)应该是个bug吧
      

  5.   

    不是bug,文档里讲的清楚: