从 JComboBox 渲染器获取工具提示

2024-02-20

我有一个扩展 JPanel 的 ComboBox 渲染器并有两个标签。 在这里,我需要在鼠标移至时显示工具提示图标标签仅有的。如果鼠标在标签项不应显示工具提示。

    import java.awt.Color;
    import java.awt.Component;
    import java.awt.Dimension;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.Insets;



    import javax.swing.JLabel;
    import javax.swing.JList;
    import javax.swing.JPanel;
    import javax.swing.ListCellRenderer;
    import javax.swing.plaf.metal.MetalIconFactory;

    public class MyItemRenderer extends JPanel implements ListCellRenderer
    {
      private JLabel labelItem = new JLabel();
      private JLabel iconLabel = new JLabel();

      public MyItemRenderer() {
          setLayout(new GridBagLayout());
          GridBagConstraints constraints = new GridBagConstraints();
          constraints.fill = GridBagConstraints.HORIZONTAL;
          constraints.weightx = 1.0;
          constraints.insets = new Insets(2, 2, 2, 0);

          labelItem.setOpaque(true);
          labelItem.setHorizontalAlignment(JLabel.LEFT);

          iconLabel.setOpaque(true);
          iconLabel.setHorizontalAlignment(JLabel.RIGHT);
          iconLabel.setPreferredSize(new Dimension(14, 16));
          iconLabel.setMaximumSize(new Dimension(14, 16));


          add(labelItem, constraints);

          GridBagConstraints constraints1 = new GridBagConstraints();
          constraints1.weightx = 0;
          constraints1.insets = new Insets(0, 0, 0, 2);

          add(iconLabel, constraints1);

          setBackground(Color.LIGHT_GRAY);

      }

      @Override
      public Component getListCellRendererComponent(JList list, Object value,
              int index, boolean isSelected, boolean cellHasFocus) {
          String item = (String) value;

          labelItem.setText(item);

          // set icon
          iconLabel.setIcon(MetalIconFactory.getFileChooserDetailViewIcon());

          if (isSelected) {
              labelItem.setBackground(Color.BLUE);
              labelItem.setForeground(Color.YELLOW);
              iconLabel.setBackground(Color.BLUE);
              iconLabel.setForeground(Color.YELLOW);
          } else {
              labelItem.setForeground(Color.BLACK);
              labelItem.setBackground(Color.LIGHT_GRAY);
              iconLabel.setForeground(Color.BLACK);
              iconLabel.setBackground(Color.LIGHT_GRAY);
          }

          return this;
      }
  }

我的工具提示仅在鼠标悬停在图标区域时才需要出现。这意味着用户只需要获得他们想要的工具提示。请帮忙。


覆盖getToolTipText(MouseEvent event)的方法MyItemRenderer, 翻译MouseEvent进入坐标空间iconLabel(或者您想要的任何组件)。如果MouseEvent落在组件的边界内,然后返回不同的结果

就像是...

    @Override
    public String getToolTipText(MouseEvent event) {
        String tooltip = super.getToolTipText(event);
        Point p = SwingUtilities.convertPoint(this, event.getPoint(), iconLabel);
        if (iconLabel.contains(p)) {
            tooltip = "I'm a banana";
        }
        return tooltip;
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 JComboBox 渲染器获取工具提示 的相关文章

  • 光学标记阅读器的开源库[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想要一个用于光学标记读取 OMR 的开源库 有这样的库吗 我想在我的 java 应用程序中使用这个库 zxing 可能对你有用 http
  • 使用 Jersey Client 忽略自签名 ssl 证书 [重复]

    这个问题在这里已经有答案了 我正在使用 Jersey 客户端库对 jboss 上运行的其余服务运行测试 我使用自签名证书在服务器上正确设置了 https 在本地主机上运行 但是 每当我使用 https url 运行测试时 都会收到以下错误
  • Swagger 3.0.0:如果没有 SwaggerConfig 和 @Profile,则无法在生产中禁用

    我正在从 2 x 升级到 SpringFox Swagger 3 0 0 它引入了 Spring Boot 启动器springfox boot starter消除了对基于 2 x 的需要的依赖性SwaggerConfig NO LONGER
  • Java 的 System.arraycopy() 对于小数组有效吗?

    是Java的System arraycopy 对于小数组来说是高效的 或者它是本机方法这一事实是否使其可能比简单的循环和函数调用效率低得多 本机方法是否会因跨越某种 Java 系统桥梁而产生额外的性能开销 稍微扩展一下 Sid 所写的内容
  • JPA 为每个项目选择最新实例

    假设我有一个会议实体 每次会议都有一个与会者和一个会议日期 在我的会议表中 我可能为每个与会者举行多个会议 每个会议都有不同的日期 我需要一个 JPA 查询 该查询将为所有与会者仅选择最新的会议 例如 如果我的桌子看起来像这样 Meetin
  • 如何使用 Gradle 2.10 将 ANTLR 词法分析器语法导入到另一个语法中?

    我一直在和 Terence Parr 一起学习 ANTLR 4权威的 ANTLR 4 参考 到目前为止我一直在使用 Gradle 2 10 及其内置 ANTLR 插件进行跟踪 然而 我在获取一些我从第 4 章第 38 41 页改编的代码以使
  • 如何使用java避免Mysql数据库中的“数据因列被截断”?

    在我的 Java 程序中 Hibernate Bean 类定义一列 例如 TimtableVO java Column name REPEAT DAYS private WeekdayType repeatDays hear Weekday
  • 嵌套枚举是静态的吗?

    读书时这个问题 https stackoverflow com questions 25011061 why can enum implementations not access private fields in the enum cl
  • 如何使用 JAVA 和 ADB 命令检查 Appium 中键盘是否打开

    我正在尝试检查 Android 默认键盘是否打开 我没有找到任何可以在 Appium 中使用 JAVA 和 ADB 命令检查键盘的内容 我发现这个 ADB 命令可以检查键盘是否打开 adb shell dumpsys input metho
  • JavaPreparedStatementUTF-8字符问题

    我有一份准备好的声明 PreparedStatement st 在我的代码中 我尝试使用 st setString 方法 st setString 1 userName userName 的值为 ak a setString 方法将 ak
  • Ubuntu 的打包 - Web 应用程序

    Web 应用程序没有与 C 或类似文件不同的 make 文件 但是 它需要放置在特定的目录中 例如 var www 我是 Linux 打包新手 所以我的问题是 如何将我的应用程序打包到 deb 中 以便在安装时将其放入 etc myprog
  • Apache HttpClient 执行时会在所有 HTTP 5XX 错误上抛出 IOException 吗?

    The Apache HttpClient 文档 http hc apache org httpcomponents client ga httpclient apidocs org apache http client HttpClien
  • jsf 中的类型未找到属性

    我正在尝试调用 jsf 中使用 primefaces 的属性 但我有错误 500 在托管bean PersonelBean 类型上找不到 我正在使用 hibernate jsf 和 spring PersonelBean java Mana
  • 捕获 XSS(跨站脚本)攻击的最佳正则表达式(Java 中)?

    杰夫实际上在净化 HTML http refactormycode com codes 333 sanitize html 但他的示例是用 C 编写的 而我实际上对 Java 版本更感兴趣 有人有更好的 Java 版本吗 他的示例是否足以直
  • Java中如何限制文件大小

    我正在我的应用程序中创建一个文件 并继续向该文件中写入一些内容 但是当我的文件达到一定大小 比如说 100 行 后 我想删除第一行并将新行写入底部 要求是我的文件应该受到限制 但它应该保留我写入文件的最新内容 请告诉我在Java中是否可行
  • 如何手动添加Android Studio依赖

    我多次尝试向我的项目添加依赖项 但每次都会出现错误 我想添加它们的依赖项是 de hdodenhof circleimageview 1 3 0 and com github bumptech glide glide 3 6 1 所以我想下
  • 用于从链表中删除元素的大 O 表示法[重复]

    这个问题在这里已经有答案了 我正在阅读有关链接列表的内容 我发现 从链表中删除所需的元素需要 O n 运行时间 其中 n 是元素的数量 列表中的元素 http www cs mcgill ca dprecup courses IntroCS
  • 在测试期间调用预定方法[重复]

    这个问题在这里已经有答案了 我正在使用 Maven 开发 SpringBoot 应用程序 我有一个班级 Component有方法的注释m与 Scheduled initialDelay 1000 fixedDelay 5000 注解 这里f
  • 在 Vavr 中结合任一者?

    我有几个Vavr https www vavr io Either https www vavr io vavr docs either的 我想调用一个函数Right每个 Either 的值 例如 Either
  • Java applet 是否会违反同源策略

    我需要请求一些东西并从其他域获取信息 我知道由于同源政策 javascript 无法做到这一点 我的另一个选择是通过我的服务器发出代理请求 我不希望请求来自我的服务器的 IP 也不想为我的服务器创建额外的负载 并且希望客户端这样做 是否可以

随机推荐

  • 在 Monotouch 中编译 lambda 并调用设备上的委托

    我目前正在 MonoTouch 中移植 NET 代码库 并且目前正在研究一种接收Expression
  • 为什么我的“计数前导零”程序出现故障?

    以下代码返回 Hacker s Delight 书中的前导零的数量 include
  • 当我重命名项目时,Xcode 6.3 崩溃

    昨天我将 Xcode 更新到 6 3 版本 因为我的 iPhone 具有 8 3 软件版本 并且 Xcode 想要最新版本来运行该应用程序 现在一切都已更新 但 Xcode 无法再重命名该项目了 如果我复制该项目 然后打开它并在 身份 和
  • 如何将我的编译器与 eclipse 集成?

    我有一个使用 flex bison 和 C 编写的迷你编译器 我想在 eclipse 中使用它 就像使用java编译器一样 但我不知道如何做到这一点 所以我需要一些帮助和一些建议 Thanks 创建商业品质的 Eclipse IDE htt
  • 无法启动 net 6 + React 应用程序的 SPA 代理

    我正在创建一个基于 ASP NET CORE Web 应用程序 React 模板的新项目 然后我根据需要配置 ClientApp 我使用自己的 webpack config js 而不是 CRA 前端工作正常 当我运行它时它按预期启动npm
  • jQuery 启用/禁用显示/隐藏按钮和选择选项。获取剩余选项值

    我有一个使用文本字段中的值填充的选择列表 我还有两个按钮 一个添加按钮 用于将输入的值添加到选择列表中 一个删除按钮 用于从选择列表中删除输入的值 我想使用 jQuery 执行以下操作 如果在文本字段中输入的值为无法使用在选择列表中 显示添
  • PHP Curl 异步响应

    我有一个 PHP 文件 它通过curl 调用另一个PHP 文件 我试图让第二个文件向第一个文件发送响应 让它知道它已启动 问题是第一个不能等待第一个完成执行 因为这可能需要一分钟或更长时间 我需要它立即发送响应 然后继续处理常规业务 我尝试
  • Wordpress,为所有链接添加 标签

    当我在 WordPress 网站上撰写博客文章时 我想在所有锚标记内动态添加一个 span 标记 其数据属性与锚标记具有相同的值 Example 我在 WordPress 中写的内容 p Some text with a href a li
  • 在 TriggerDagRunOperator 中提供上下文

    我有一个 dag 它被另一个 dag 触发 我已经通过这个 dag 传递了一些配置变量DagRunOrder payload字典以同样的方式官方示例 https github com apache incubator airflow blo
  • 寻找最常见的组合

    我有一个包含 2 列 ID 号和品牌的数据框 X1 X2 1234 A89 1234 A87 1234 A87 1234 A32 1234 A27 1234 A27 1235 A12 1235 A14 1235 A14 1236 A32 1
  • swift2 中协议扩展的限制和默认值

    所以我在研究协议扩展时遇到了一个 有趣 的问题 我想写一个Meters and Kilometers用于测试某些东西的单元类型 作为一个类 它非常容易做到这一点 其中有一个基类 并且两个子类都覆盖基类 而只是覆盖一个简单的值 Convers
  • 使用 js.dart 公开 auth0 API

    我正在编写一个 Dart Angular2 应用程序 但它与当前的问题无关 我试图通过使用 1https pub dartlang org packages js 公开它的 API 来将 Auth0Lock 与 dart 一起使用 我正在使
  • 如何在 Mac OSX 上的 Qt 中使用 pkcs12/pfx 成功执行 SSL 加密?

    Qt 新手和开发跨平台应用程序 需要来自服务器和客户端的 SSL 身份验证基于 pem 的加密适用于 Linux Android Windows 然而 Mac OSX 存在问题 我们的代码如下所示 QFile privateKeyFile
  • UIButton:需要一个圆形点击区域

    好的 我有 6 个自定义 UIButton 他们的正常状态图像都是圆形图像 它们的间距相等 但所有圆圈都相互接触 自定义 UIbutton 其上有圆形图像 的问题在于该按钮的点击区域是方形的 并且该方形的角与其他自定义按钮的点击区域重叠 我
  • 使用 Rails 助手渲染部分内容

    根据我的理解 助手主要用于清理视图中某些特定于视图的逻辑 但是在我当前的新项目 遗留应用程序 中 我偶然发现了很多看起来像这样的助手 def itemprepare render partial gt items itemlist summ
  • Django 管理内联的国家/州/城市下拉菜单

    我有一个 BusinessBranch 模型的城市外键 我的城市模型还具有州和县模型的州和国家外键 我很难在 BusinessBranchInline 中显示州和国家 地区下拉菜单 实现这一目标的最佳方法是什么 如果下拉列表根据其父级的值来
  • 使用“mm”说明符格式化月份的 DateTime ToString 问题

    我在获取正确的格式时遇到问题 我期待 2013 10 但我得到的是 2013 00 为什么会这样 我该如何解决这个问题 DateTime dt DateTime Parse 2013 Oct 01 string str2 dt ToStri
  • 如何在 C# 中执行结构体内联初始化?

    我应该在我的任意结构中实现什么成员才能使以下分配成为可能 public struct MyStruct String s Int length MyStruct myStruct new MyStruct s Hello length 5
  • 如何在 ASP.NET Core 中返回 401 而不是 302?

    我试图让 ASP NET Core Identity 在用户未登录时返回 401 我添加了一个 Authorize 属性到我的方法 而不是返回 401 而是返回 302 我尝试了很多建议 但似乎没有任何效果 包括services Confi
  • 从 JComboBox 渲染器获取工具提示

    我有一个扩展 JPanel 的 ComboBox 渲染器并有两个标签 在这里 我需要在鼠标移至时显示工具提示图标标签仅有的 如果鼠标在标签项不应显示工具提示 import java awt Color import java awt Com