gpt4 book ai didi

java - 如何添加一个 Action 监听器来对不同的 JTextField 执行相同的操作?

转载 作者:行者123 更新时间:2023-12-01 11:20:51 29 4
gpt4 key购买 nike

目前我有两个问题

1) 如何添加一个对多个 JTextField 执行相同操作的操作监听器?我知道我必须添加操作监听器并简单地调用 textField.addMouseListener(this),但是如果我有多个 JTextField 怎么办?为了简洁起见,请查看 mouseClicked

2) 当 TextField 获得焦点时,将背景颜色更改为 255、255、180。当 TextField 失去焦点时,恢复为原始背景颜色。我该如何完成这个任务?

一个代码中的两个问题:

public class MainFrame implements MouseListener {

public static void main(String[] args) {
// TODO Auto-generated method stub
// Main Frame
JFrame mainFrame = new JFrame("New Account Registration");

JPanel gridPanel = new JPanel(new GridLayout(10,2));
JPanel gridGenderPanel = new JPanel(new GridLayout(1,2, 4, 3));
JPanel flowButton = new JPanel(new FlowLayout());

//JLabels
JLabel title = new JLabel("New Account Registration");

Color newColor = new Color(255,255,180);

// JTextFields
JTextField nameField = new JTextField();
nameField.addMouseListener(this);

JTextField emailField = new JTextField();
nameField.addMouseListener(this);

JPasswordField passField = new JPasswordField();
passField.addMouseListener(this);

JPasswordField confirmPassField = new JPasswordField();
confirmField.addMouseListener(this);

JTextField addressField = new JTextField();
addressField.addMouseListener(this);

JTextField phoneField = new JTextField();
phoneField.addMouseListener(this);

gridPanel.add(title);
gridPanel.add(nameField);
gridPanel.add(emailField);
gridPanel.add(passField);
gridPanel.add(confirmPassField);
gridPanel.add(addressField);
gridPanel.add(countryField);


mainFrame.add(gridPanel);

mainFrame.setSize(600, 700);
mainFrame.setVisible(true);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


}

@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
if (e.getClickCount() == 1) {
//How do i set the same thing to a different JTextField?
setBackground(Color.BLUE);

}

}

@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub

}

@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub

}

@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub

}

@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub

}

}

最佳答案

对于 1),您可以获取另一个 TextField 并在 MouseClick 上设置您想要的属性。

对于 2),您可以使用焦点监听器。

focusGained(FocusEvent e)
focusLost(FocusEvent e)
<小时/>
public class MainFrame implements MouseListener, FocusListener {

JTextField nameField;
JTextField emailField

public static void main(String[] args) {

}


@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
if (e.getClickCount() == 1) {
nameField.setBackground(Color.GRAY);
emailField.setBackground(Color.GRAY);
}

}

public void focusGained(FocusEvent e) {

JTextField field = (JTextField) e.getSource();
field.setBackground(Color.GRAY);
}

public void focusLost(FocusEvent e) {
JTextField field = (JTextField) e.getSource();
field.setBackground(Color.WHITE);
}
}

关于java - 如何添加一个 Action 监听器来对不同的 JTextField 执行相同的操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31241399/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com