2009-09-05 55 views
0

我正在试听JFrame制作的摇摆gui的tab-in制表符动作。我将JTextField添加到JFrame中,每当选择窗口时都会获得用户剪贴板,以便用户可以在程序之间切换,复制一些URL,以便返回到我的程序时,此JTextField将由复制的url字符串填充。为JFrame监听动作

编辑:

我已经试过这样:

frame.addFocusListener(
      new FocusListener() { 
       public void focusGained(FocusEvent e) { 

       url= getClipboardData(); 
       } 

       @Override 
       public void focusLost(FocusEvent arg0) { 
        // TODO Auto-generated method stub 

       } 
      } 

    ); 

它不工作

+0

那么究竟是什么问题?如何从系统剪贴板中拉出,如何倾听焦点事件,或者究竟是什么? – aperkins 2009-09-05 17:32:45

+0

问题是框架的焦点事件:) – Hellnar 2009-09-05 17:50:12

回答

1

帧不收到一个焦点事件。框架上的组件获取焦点事件。

如果您想知道帧何时获得焦点,请使用WindowListener并处理windowActivated事件。

+0

感谢您的建议:) – Hellnar 2009-09-06 11:16:11

1

你需要的是一个没有的FocusListener一个ActionListener。看看java Doc,你就会知道如何使用它。这很容易。

0

看起来您并未将剪贴板数据设置到文本字段上。

frame.addFocusListener(new FocusListener() { 
    public void focusGained(FocusEvent e) { 
     getJTextField().setText(getClipboardData()); 
    } 
    public void focusLost(FocusEvent e) { 
     //ignored 
    } 
}); 

类似的东西可能会解决您的问题