gpt4 book ai didi

Java - 是否可以将焦点监听器添加到组合框?

转载 作者:行者123 更新时间:2023-11-29 05:35:06 26 4
gpt4 key购买 nike

我不知道如何在组合框上实现焦点监听器。我知道这不是一件简单的事情,但其他人似乎已经成功了 [1] [2] [3] ,但在仔细检查每一个后,我无法复制他们的结果。在网上广泛搜索后,查看最新的 Oracle guide , Oracle documentation等等,我来过这里。我的问题很简单:

是否可以将焦点监听器添加到组合框,如果可以,怎么做?

目标是创建一个与 Google 搜索基本相同的字段。您可以输入搜索查询,它会在文本字段下方显示一个下拉列表,其中包含可能的搜索匹配项。如果一切都失败了,我将把一个组合框和一个文本字段放在彼此之上,并设置某种精心设计的可见性切换,但我不想...

使用:
Java 1.7.0_21 (← 旁注:为什么我必须转义这个下划线才能使这段文本变为斜体?下划线有什么作用?)
Windows 7 x64

import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JComboBox;
import javax.swing.JTextField;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;

public class focustest extends JFrame {

private JPanel contentPane;
private JTextField textField;
public focustest theframe;

public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
focustest theframe = new focustest();
theframe.setVisible(true);
}
});
}

public focustest() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 106);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JComboBox comboBox = new JComboBox();
comboBox.addFocusListener(new FocusAdapter() {
@Override
public void focusGained(FocusEvent arg0) {
JOptionPane.showMessageDialog(theframe, "focus gained!", null,JOptionPane.PLAIN_MESSAGE);
}
@Override
public void focusLost(FocusEvent arg0) {
JOptionPane.showMessageDialog(theframe, "focus lost!", null,JOptionPane.PLAIN_MESSAGE);
}
});
comboBox.setEditable(true);
contentPane.add(comboBox, BorderLayout.NORTH);
textField = new JTextField();
contentPane.add(textField, BorderLayout.SOUTH);
textField.setColumns(10);
}

}

最佳答案

comboBox.getEditor().getEditorComponent().addFocusListener(new FocusAdapter() {
// ....
}

祝你好运。

关于Java - 是否可以将焦点监听器添加到组合框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19803627/

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