如题,困扰好久,谢谢帮个忙!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【pingpingdong】截止到2008-07-10 18:26:41的历史汇总数据(不包括此帖):
    发帖的总数量:46                       发帖的总分数:1030                     每贴平均分数:22                       
    回帖的总数量:29                       得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:29                       结贴的总分数:680                      
    无满意结贴数:7                        无满意结贴分:170                      
    未结的帖子数:17                       未结的总分数:350                      
    结贴的百分比:63.04 %               结分的百分比:66.02 %                  
    无满意结贴率:24.14 %               无满意结分率:25.00 %                  
    楼主加油
      

  2.   

    另外,再问一下大家,能有什么办法注册热键吗,类似于qq的ctrl+alt+a截屏似的.
      

  3.   


    //最前端
    jframe.setAlwaysOnTop(true);
    透明的东东自己去找,网上有第三方包的
      

  4.   

    1.让JScrollPane透明,就要让他逐层透明,首先自己透明,之后它的ViewPort透明,之后ViewPort上的View透明,比较麻烦,我只能想到这样做一个例子:import java.awt.BorderLayout;
    import java.awt.Color;import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTree;public class SimpleTest {    /**
         * @param args
         */
        public static void main(String[] args) {
            JFrame frame = new JFrame();
            JScrollPane sPane = new JScrollPane();
            JTree tree = new JTree();
            sPane.setViewportView(tree);
            tree.setOpaque(false);
            JPanel panel = new JPanel();
            panel.setLayout(new BorderLayout());
            panel.setBackground(Color.BLUE);
            panel.add(sPane, BorderLayout.NORTH);
            JLabel label = new JLabel("Label");
            sPane.setOpaque(false);
            label.setOpaque(false);
            panel.add(label, BorderLayout.SOUTH);
            frame.getContentPane().setLayout(new BorderLayout());
            frame.getContentPane().add(panel, BorderLayout.CENTER);
            frame.setVisible(true);
            frame.setSize(500, 500);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setAlwaysOnTop(true);
            sPane.getViewport().setOpaque(false);
        }
    }
    2.这个简单,设置个属性就行:frame.setAlwaysOnTop(true);上面代码中也写了
      

  5.   

    先谢谢zwgs1985和craky了!
    没看懂zwgs1985写的代码什么意思,透明的现在要不要无所谓,请问怎么实现热键啊!jdk中有现成的类或者方法吗?
      

  6.   

    如果是控件的热键,就直接添加KeyListener,如果是全局的热键,如下    /**
         * 为RootPaneContainer组件添加键盘事件
         * @param rpc RootPaneContainer组件
         * @param action 需要执行的动作
         * @param keyName 键的名称
         * @param keyCode 键的数字代码
         * @param modifiers 任意修饰符的按位或组合
         */
        public static void registerKeyEvent(RootPaneContainer rpc, Action action, String keyName, int keyCode, int modifiers)
        {
            JRootPane rp = rpc.getRootPane();
            InputMap inputMap = rp.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
            inputMap.put(KeyStroke.getKeyStroke(keyCode, modifiers), keyName);
            rp.getActionMap().put(keyName, action);
        }
    用法
            Action action = new AbstractAction()
            {
                private static final long serialVersionUID = 3322001448168076177L;            public void actionPerformed(ActionEvent e)
                {
                    System.out.println("Do something...");
                }
            };        registerKeyEvent(jframe, action, "随便什么都行,只要不重复", KeyEvent.VK_S, KeyEvent.CTRL_MASK);
    以上代码实现是的Ctrl + S打印Do something...,如果不要组合键,最后一个参数置0
      

  7.   

    请问,你这段代码,切换程序时能使用吗,具体意思计划比如我现在的当前程序是outlook,我使用Ctrl + S能够打印吗?谢谢你了!
      

  8.   


    不能,要实现你所述的功能,必须利用JNI调用C/C++写好的库
      

  9.   

    哦,当java程序获得焦点的时候,监听按键我是知道的,就是不知道失去焦点时怎么使用热键获得系统焦点,我去研究一下JNI,谢谢你了craky
    !不知道难不难,呵呵!