求解:我运行一个swing窗口程序,但窗口一打开就要让它失去焦点,并且标题栏变成"灰色"的,灰色是指此窗口没有任何焦点存在,就是用鼠标点击了其它外部其它窗口一样。能不能给个思路,目前要做一个类似windows的osk 虚拟键盘的东西,现在要用java开发,希望大家多给点意见 100分相送

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【kkcheng】截止到2008-07-03 10:12:40的历史汇总数据(不包括此帖):
    发帖的总数量:10                       发帖的总分数:770                      
    结贴的总数量:5                        结贴的总分数:620                      
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:5                        未结的总分数:150                      
    结贴的百分比:50.00 %               结分的百分比:80.52 %                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    楼主加油
      

  2.   

    是这样吗?import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;import javax.swing.JFrame;public class MyTest extends JFrame {    public MyTest() {
            this.setVisible(false);
            this.setFocusableWindowState(false);
            this.setVisible(true);
            this.addWindowListener(new WindowAdapter() {
                public void windowOpened(WindowEvent e) {
                    setFocusableWindowState(true);
                }
            });
        }    /**
         * @param args
         */
        public static void main(String[] args) {
            MyTest frame = new MyTest();
            frame.setSize(300, 300);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }}
      

  3.   

    那就不把状态置回来import java.awt.FlowLayout;import javax.swing.JButton;
    import javax.swing.JFrame;public class MyTest extends JFrame {    public MyTest() {
            this.getContentPane().setLayout(new FlowLayout());
            this.getContentPane().add(new JButton());
            this.setVisible(false);
            this.setFocusableWindowState(false);
            this.setVisible(true);
        }    /**
         * @param args
         */
        public static void main(String[] args) {
            MyTest frame = new MyTest();
            frame.setSize(300, 300);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }}
      

  4.   

    但是我让它置顶 this.setAlwaysOnTop(true); 
    它就不能实现这效果了,一运行就会得到焦点,去除setAlwayOnTop确没有了这种效果,怪事?
      

  5.   

    可以阿,我的是JDK1.6,没问题import java.awt.FlowLayout;import javax.swing.JButton;
    import javax.swing.JFrame;public class MyTest extends JFrame {    public MyTest() {
            this.getContentPane().setLayout(new FlowLayout());
            this.getContentPane().add(new JButton());
            this.setVisible(false);
            this.setFocusableWindowState(false);
            this.setVisible(true);
            this.setAlwaysOnTop(true);
        }    /**
         * @param args
         */
        public static void main(String[] args) {
            MyTest frame = new MyTest();
            frame.setSize(300, 300);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }}
      

  6.   

    我的是jdk1.5的,晕啊,1.6功能还是比1.5好用,不过1.5比较普及,谢谢了这位兄弟,先用1.6实现功能再说,到时再用1.5替换。