2009-09-05 9 views
0

Я пытаюсь прослушать вкладку в действии для моего качающегося gui, созданного JFrame. У меня есть JTextField, добавленный в JFrame, который будет получать пользовательский буфер обмена всякий раз, когда будет выбрано окно, чтобы пользователь мог вставить вкладку между программами, скопировав некоторый url, поэтому, когда вернемся к моей программе, этот JTextField будет заполнен скопированной строкой url.action, прослушивание JFrame

EDIT:

Я попытался это:

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

       url= getClipboardData(); 
       } 

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

       } 
      } 

    ); 

он не работает

+0

Так что же это вопрос? Как вытащить из системного буфера обмена, как прослушивать фокусные события или что именно? – aperkins

+0

вопрос - фокусное событие для кадра :) – Hellnar

ответ

1

Фрейм не получает события фокуса. Компонент на кадре получает событие фокусировки.

Если вы хотите знать, когда рамка получает фокус, используйте WindowListener и обработайте событие windowActivated.

+0

спасибо за предложение :) – Hellnar

1

То, что вы хотите, это FocusListener не ActionListener. Проверьте java Doc, и вы будете знать, как его использовать. Это просто.

0

похоже, что вы не устанавливаете данные буфера обмена в текстовое поле.

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

Нечто подобное, вероятно, решить вашу проблему