当前位置: 首页 > 知识库问答 >
问题:

使用来自jList的输入的jTextfield

归和惬
2023-03-14

我有一个jTextfield,必须从JList获取输入。在FocusGaut属性上,jList应该正好出现在jTextfield下面,而在FocusLost属性上,jList应该消失。我已经做了一些编码,但我得到一个问题在它。在FocusGaut属性中,会出现jList,但单击它后,它会转到其他jTextfield的背面,该背面位于前一个TextField的下方。以下是我的代码:

private void txtAccountFocusGained(java.awt.event.FocusEvent evt) {                                       
    jScrollPane3.setLocation(txtAccount.getX(), txtAccount.getY()+txtAccount.getHeight());
    jScrollPane3.setVisible(true);    //scrollpane associated with list
    listAccount.setVisible(true);   //listAccount is jList
}

private void listAccountMouseClicked(java.awt.event.MouseEvent evt) {                                         
    txtAccount.setText((String)listAccount.getSelectedValue());
    jScrollPane3.setVisible(false);  //scrollpane associated with list
    txtSalesLedger.requestFocus(); //it is next field
}

共有1个答案

庄经国
2023-03-14

使用JComboBox而不是JTextField。您可以调用JComboBox.SetEditable(true),然后JComboBox将具有一个编辑器JTextField。正是你想要的,用户可以输入任何文本,也可以用箭头图标打开列表框。此外,您还可以通过调用jComboBox.showPopup()使列表自动显示。如果将焦点侦听器添加到JComboBox的编辑器文本字段中,那么当用户单击文本字段时,还可以从那里显示弹出窗口。弹出列表可以用箭头图标关闭。

下面是示例代码

final JComboBox comboBox = new JComboBox( 
    new Object[] { "", "Item #1", "Another item", "Something else" } );

comboBox.setEditable( true );

comboBox.getEditor().getEditorComponent().addFocusListener( new FocusAdapter() {
    @Override
    public void focusGained( final FocusEvent event ) {
        comboBox.showPopup();
    }
} );

注意:组合框的第一项是一个空字符串。我添加了这一点,以便组合框的编辑器文本字段最初不会显示任何值。当然,如果您想要一个初始值,您可以删除它。

 类似资料:
  • 问题内容: 我在Goji框架上运行了一些东西: 我希望有人能帮助我做的是弄清楚如何提交HTML表单以将数据发送到Golang代码。 因此,如果存在一个带有name属性的输入字段,并且该属性的值是name,并且用户在其中输入名称并提交,那么在提交的表单页面上,Golang代码将打印问候,名称。 这是我能想到的: 这是我的hello.html文件: 在身体里: 如何连接到使Golang代码获取的是在表

  • 我有三个输入,我想添加,当我把我的第一个数字"5"console.log显示"0"下一个输入字段我输入"2"这将console.log第一个输入字段的数字"5"第三个我输入我在“7”console.log看到的“5”。 为什么会发生这种情况,我该如何解决它。 JavaScript.

  • 我让一个用户输入一个整数字符串,然后将它们添加到ArrayList,但我需要验证每个条目是否为正整数。我尝试了do/while循环、嵌套while环,而使用嵌套if和每个循环都会遇到自己的一组问题。 作为我当前设置的示例:用户输入例如:1 2 3 4 pageVar是我的扫描仪,pageRef是我的ArrayList 运行这个my while在等待更多的输入时被卡住了,我不知道如何打破它。

  • 问题内容: 我有一个线程类“ MyThread”和主应用程序,简称为“ Gui”。我想从线程类创建一些对象,但在本示例中,我仅创建了一个对象。线程类完成一些工作,然后向Gui类发出信号,指示需要用户输入(此指示目前仅是更改按钮的文本)。然后,线程应等待用户输入(在这种情况下为单击按钮),然后继续执行其操作… 如何在(多个)线程中等待用户输入? 问题答案: 默认情况下,具有事件循环,可以处理信号和插

  • 在将控制权转移到位于程序中另一个类中的另一个方法后,我在接受来自键盘的输入时遇到了很大问题。我得到的错误是: 以下是我的主要代码。我没有把它剥离下来,以便让你看到我在发布这个问题之前尝试过的多种方法,直到问题存在的地方。 这是包含从 obj 调用的方法的类 请注意,在提及Fname时 再一次,我面临的问题是在提示用户输入全名后接受来自键盘的输入。程序跳过它,记录一个空值,并导致我的程序的其余部分无

  • 我在 Azure blob 存储中有一个 csv 文件,我想打开该文件并根据用户输入获取某些数据。我有两个问题: 1)空AzureWebJobStorage值在local.settings.json 我尝试使用AzureWebJobsStorage输入绑定,但值似乎为空。我不知道如何在local.settings.json中编辑什么值。因此,得到这个错误: 已执行Functions.HttpExa