java - Swing:JComboBox 中所选项目旁边的 float 面板

标签 java swing jcombobox

我创建了一个带有小窗口(组合框大小)的应用程序。我需要创建一个位于窗口外的 float 面板,它位于 JComboBox 中所选项目的旁边。 (见附图)。

alt text

我一直在阅读有关 JComboBox.setRenderer(customRenderer) 等的信息。但是在我走这条路之前我只是想知道是否有可能在窗口外渲染一些东西。我怀疑是这样,因为组合框本身设法在窗口外呈现它的弹出列表。

我是 Swing 的新手,所以任何建议都将不胜感激。

最佳答案

自定义渲染器是不可能的,因为 Swing 组件是轻量级的。也就是说,Java 被赋予了一个 native 窗口,并且所有组件绘制都在该窗口中进行。在您的例子中,这是包含组合框的 JFrame。

不过,您可以做的是创建一个新的未装饰窗口并相应地设置它的位置,然后在其中绘制您想要的任何内容。

编辑:当 Java 需要在它的窗口边界外绘制时(例如弹出消息或下拉组合框的情况),如果组件落在边界内,它会使用 swing 轻量级机制。但是,如果组件超出边界,它会自动替换为在 Activity 窗口外具有自己的原生绘图表面的 awt 重量级组件。

关于java - Swing:JComboBox 中所选项目旁边的 float 面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1376233/

相关文章:

java - 如何使用带有空值和泛型类型的 JComboBox?

java - 在组合框中创建选项作为可用串行端口

java - 无法序列化 session 的 session 属性 SPRING_SECURITY_CONTEXT

java - junit 未找到 Web 应用程序上下文 : no ContextLoad Listener registered?

java - 需要在JTable中动态添加JCheckBox

java - 插入带有动画的 JList

Java Swing - 导致伪影的半透明组件

java - 从 java 代码打开命令提示符并运行一些命令并读取 cmd 提示符显示?

java - JScrollPane 中的滚动条视口(viewport) "connected to"在哪里?

java - ActionPerformed 自执行