gpt4 book ai didi

event-handling - netbeans 中 Jcombobox 上的 Focuslost 事件

转载 作者:行者123 更新时间:2023-12-02 01:03:49 26 4
gpt4 key购买 nike

我试图在我的组合框中绑定(bind)一个 focuslost 事件,但它没有发生。

这是我的代码:

jComboBox1.addFocusListener(new FocusListener(){
public void focusGained(FocusEvent e){

}
public void focusLost(FocusEvent e){
JOptionPane.showConfirmDialog(null,"focuslost");
}
});

我也试过这个-:

JComboBox 默认编辑器有一个内部类 BasicComboBoxEditor$BorderlessTextField,它是获取和失去焦点的组件。

它可以简单地通过-访问:

Component component = comboBox.getEditor().getEditorComponent();  
if (component instanceof JTextField)
JTextField borderlesstextfield = (JTextField) borderless;

但是我在这条线上遇到了错误-

 JTextField borderlesstextfield = (JTextField) borderless;

我是 netbeans 的新手。请指导我。提前谢谢你。

最佳答案

我对此进行了测试(在 JPanel 中添加 JComboBox)。如果面板内有更多元素,则在按下 Tab 键或单击另一个元素时会触发焦点丢失。

考虑到您没有任何其他元素,或者您希望在单击窗口上的某个位置时也触发焦点丢失事件:

保持焦点监听器不变,并在自动生成的 initComponents() 之后添加以下内容:

    jPanel1.setFocusable(true);
jPanel1.setRequestFocusEnabled(true);
jPanel1.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {}

@Override
public void mousePressed(MouseEvent e) {
jPanel1.requestFocusInWindow();
}

@Override
public void mouseReleased(MouseEvent e) {}

@Override
public void mouseEntered(MouseEvent e) {}

@Override
public void mouseExited(MouseEvent e) {}
});

关于event-handling - netbeans 中 Jcombobox 上的 Focuslost 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48862466/

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