2012-06-14 26 views
1

我使用JPanel上添加JComponents,我試圖設置JPanel可聚焦所以當用戶點擊JPanel,它會取消選擇任何JComponent並調用JComponent的聽衆。我已經讀過幾乎所有的Q &有人問過這個問題,我找不到任何有用的東西。那麼我想:是否有另一個容器可以使用?哪些擺動容器可以設置爲可調焦的?

回答

2

你試過panel.requestFocus();?由於JPanelComponent的子類,因此它也可以調用此方法。這將關注於特定時刻的任何事情。

編輯:

這裏不用示出它的工作代碼示例。

import java.awt.Dimension; 
import java.awt.event.MouseAdapter; 
import java.awt.event.MouseEvent; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JTextField; 
import javax.swing.SwingUtilities; 

public class PanelOnClickGrabFocus { 
    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       JFrame f = new JFrame(); 
       f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       final JPanel p = new JPanel(); 
       p.setPreferredSize(new Dimension(400, 400)); 
       JTextField tf = new JTextField(34); 
       p.add(tf); 
       f.setContentPane(p); 
       f.pack(); 
       f.setVisible(true); 
       p.addMouseListener(new MouseAdapter() {  
        @Override 
        public void mousePressed(MouseEvent e) { 
         p.requestFocus(); 
        } 
       }); 
      } 
     }); 
    } 
} 
+1

*「你試試。」 *我做到了,是的,它的工作原理在這裏.. –

+1

請參閱**編輯**在那裏你會找到一個代碼示例呈現我說的。 – Boro

相關問題