2014-12-12 2 views
1

Как я могу установить цвет в текстовое поле, когда я нажимаю на него и меняю цвет назад, когда его щелкают в другом месте? У меня есть 2 размера массива текстовых полей. Когда я использую этот код, он устанавливает цвет на последнем texfield:/Как я могу получить текстовое поле, которое сфокусировано? СпасибоКак получить фактическое текстовое поле при сфокусированном в java

 window.getContentPane().setLayout(new GridLayout(1,2)); 
    Border lineBorder = new LineBorder(Color.BLACK,2); 

    JPanel p2 = null; 
    JPanel p1 = new JPanel(new GridLayout(3,3)); 
    for (int k =0; k<9; k++) 
    { 
     p2 = new JPanel(new GridLayout(3,3)); 

     p2.setBorder(lineBorder); 
     for(int i =0; i <=8; i++){ 
      a = k; 
      b = i; 
      p2.add(tf[k][i] = new JTextField(1), BorderLayout.CENTER); 
      tf[k][i].setHorizontalAlignment(JTextField.CENTER); 

      tf[k][i].addMouseListener(new MouseAdapter(){ 
       public void mouseClicked(MouseEvent e){ 
        tf[a][b].setBackground(Color.BLACK); 
       } 
      }); 
     } 
     for(int i = 0; i <=8; i++){ 
      p1.add(p2); 
     } 
    } 

    JPanel p3 = new JPanel(); 

ответ

1

Вы можете использовать addFocusListener как это

JTextField myTextField = new JTextField(); 
myTextField.addFocusListener(new FocusListener() { 
    @Override 
    public void focusGained(FocusEvent fe) { 
     myTextField.setForeground(Color.RED); 
    } 

    @Override 
    public void focusLost(FocusEvent fe) { 
     myTextField.setForeground(Color.GREEN); 
    } 
}); 
Смежные вопросы