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

为可过滤和可编辑的jComboBox项目设置工具提示

张承颜
2023-03-14

我有一个可过滤和可编辑的JComboBox。我想为JComboBox中的每一项设置一个工具提示——我想我应该使用JToolTip来做这件事。

我试着用了这个链接的答案:Java Swing:JComboBox项目上的Mouseover text?。

但是当JComboBox显示过滤的项目时,JToolTip索引的顺序会发生变化。在这种情况下,我不知道如何为每个JComboBox项目设置正确的JToolTip文本。

如果你能就这个问题给我一些建议,我将不胜感激。

共有1个答案

沈博涉
2023-03-14

jComboBox是可过滤和可编辑的。

如果组合框是可编辑的,并且用户向组合框添加了新项,如何提供工具提示?

但是当jComboBox显示过滤后的项目时,jToolTip索引的顺序会发生变化。

不要基于索引进行查找。相反,您需要基于项(或项的toString()值)进行查找。为此,您可以使用哈希映射

HashMap<String, String> tooltips = new HashMap<String, String>();
tooltips.put("A", "tooltip for item A");
tooltips.put("B", "tooltip for item B");

然后在渲染器中,您可以使用:

String tooltip = tooltips.get( value.toString() );
 类似资料:
  • < br >我有这段代码,其中我设计了一个< code >可编辑的JComboBox来侦听我的< code>keyPressed事件,并显示一条消息,说明键已被按下。但我不知道为什么这没用。作为初学者,我可能在逻辑上/概念上犯了错误。 因此,我想征求关于如何构建代码的建议,以使其工作。 密码

  • 我想为自定义组合框中的值设置一个工具提示值。基本上,我的组合框包含一个人的首字母列表——当他们悬停在上面时,我想让它显示这个人的全名。我的组合框基本上是一个JTable的单元格/列,它有自己的TableCellRenler和DefaultCellEditor。列表是一个JList(模型中的内部类)——我尝试过直接设置“setToolTipText”方法,但似乎不起作用。 下面是代码: *JTabl

  • 在我的应用程序中,有一个JComboBox,其中包含大约200个条目。使用该应用程序的人抱怨说,即使他们确切地知道列表的最后一个元素是什么,也必须一直滚动到底部是令人沮丧的。 所以我把JComboBox设置成可编辑的,这样他们就可以输入最后一个元素了。但是,我的数据库不接受该组合框的下拉列表中没有的任何值。 有没有办法使JComboBox仅“可键入”而不是“可编辑”,因此它将允许您键入值,但前提是

  • 我正在使用金属 L 但当我这样做时,cb。setEditable(false),框内出现一个附加边框(在图片“下拉”中变为红色,您可以在名为“固定”的图片中看到原始颜色)。虽然我尝试设置边界,也尝试使用自己的CellRenderer,但边界仍然会被绘制。在我看来,不需要的边界不是来自细胞渲染器。当我试图从cb本身操纵边框时(请参见注释/),它只添加/删除了一个额外的外部边框。编辑部分似乎也不对我负

  • 问题内容: 如果我想将cq5组件设置为在A页中可编辑但在B页中不可编辑,是否可以。 例如:在A页上,我有C组件,我们允许作者打开对话框并编辑该组件。但是我们不允许作者打开对话框来编辑页面B上的组件C。我尝试研究cq:EditConfig 链接,但这还不足以解决我的问题。 问题答案: 您可以在包含之前设置ComponentContext.BYPASS_COMPONENT_HANDLING_ON_IN

  • 问题内容: 我想为自定义组合框中的值设置工具提示值。基本上,我的组合框包含一个姓名缩写的列表- 当他们将鼠标悬停在上方时,我希望它显示该姓名的全名。我的组合框基本上是JTable的一个单元格/列,它具有自己的TableCellRenderer和DefaultCellEditor。该列表是一个JList(模型中的内部类)-iv尝试直接设置’setToolTipText’方法,但这似乎不起作用。 这是