gpt4 book ai didi

java - 将焦点放在一个 JTextField 上并执行与其相关的操作

转载 作者:行者123 更新时间:2023-12-02 03:20:56 25 4
gpt4 key购买 nike

我的应用程序有两个 JTextField 和一个 JButton。

我想要一个代码片段,位于

  • 如果第一个 TextField 被聚焦/选择,按钮会将其 TextField (使用 setText 方法)设置为 1,
  • 如果第二个 TextField 被聚焦/选择,按钮会将其 TextField (使用 setText 方法)设置为 1

编辑:我想要做什么(numInput,denInput都是JTextFields)

public void actionPerformed(ActionEvent e) {
String s = e.getActionCommand();
if (numInput.isFocusOwner()) {
if (s.equals("1")) {
if (z == 0) {
numInput.setText(numInput.getText() + "1");
} else {
numInput.setText("");
numInput.setText(numInput.getText() + "1");
z = 0;
}
}
else if (denInput.isFocusOwner()) {
if (s.equals("1")) {
if (z == 0) {
denInput.setText(numInput.getText() + "1");
} else {
denInput.setText("");
denInput.setText(numInput.getText() + "1");
z = 0;
}
}
}

这对我来说永远不起作用。

最佳答案

创建一个扩展 TextActionAction 并将此 Action 添加到您的按钮。

TextAction 有一个 getFocusedComponent() 方法,该方法将返回最后一个获得焦点的文本组件。

该操作的基本代码是:

TextAction action = new TextAction("")
{
@Override
public void actionPerformed(ActionEvent e)
{
JTextComponent textField = getFocusedComponent();
System.out.println( textField.getText() );
}
};

只有当表单上只有两个文本字段时,这才有效。如果您有两个以上,则需要添加额外的代码来验证在单击按钮之前焦点是否位于两个文本字段中的任何一个上。

关于java - 将焦点放在一个 JTextField 上并执行与其相关的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39625432/

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