java - 在java中聚焦时如何获取实际的文本字段

标签 java focus mouseevent textfield

当我单击他时,如何为文本字段设置颜色,并在其他地方单击时将颜色更改回来? 我得到了二维文本字段数组。 当我使用此代码时,它会在最后一个文本字段上设置颜色:/如何获得聚焦的文本字段? 谢谢您

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

最佳答案

您可以像这样使用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);
    }
});

关于java - 在java中聚焦时如何获取实际的文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27434745/

相关文章:

css - 你可以在css中设置文本框焦点吗

java - 鼠标事件,不在 Jframe 上

Java POJO 与 CSV 之间的转换,使用字段名称作为列标题

java - 使用另一个类中的方法从一个类获取实例变量?

java - 安排一个方法递归执行并终止该方法

javascript - focus() 在 Safari 或 chrome 中不起作用

javascript - CSS::contenteditable 中元素的焦点

拖动结束时未调用 QTableView mouseRelease 事件,bug?

jquery - 什么时候选择 mouseover() 和 hover() 函数?

java - 选择特定父级的所有复选框