简体   繁体   English

专注于Java时如何获取实际文本字段

[英]How to get actual textfield when is focused in java

how can i set color to textfield when i click on him and change color back when is clicked elsewhere? 当我单击他时,如何为文本字段设置颜色,而在其他地方单击时,如何更改颜色? I got 2 dimensions array of textfields. 我有二维数组的文本字段。 When i use this code it set color on last texfield :/ How can i get textfield which is focused? 当我使用此代码时,它会在最后一个texfield上设置颜色:/如何获得聚焦的textfield? Thank you 谢谢

        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();

You can use addFocusListener like this 您可以像这样使用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);
    }
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM