java - 如何使 1 个 JToolbar 按钮比其他按钮大?

标签 java swing jbutton overlap jtoolbar

我正在制作一个在窗口顶部有一个工具栏的 Java 应用程序。此工具栏上有 12 个按钮,但客户希望其中一个按钮的大小是所有其他按钮的 2 倍,如下所示。

我怎样才能做到这一点,使一个大的工具栏按钮与工具栏边界的边缘重叠,但仍然表现得像它是工具栏的一部分?

Giant toolbar button in the middle

最佳答案

您不能将按钮添加到工具栏并将其扩展到工具栏的边界之外。也就是说,如果将 Swing 组件绘制在其容器的边界之外,它们将被剪裁。

作为 hack,您可以尝试在所有其他组件之上绘制超大按钮:

  1. 向工具栏添加一个常规按钮以填充工具栏的水平空间,从而为超大按钮保留工具栏上的空间。

  2. 将 GlassPane 添加到框架中。

  3. 将超大按钮添加到玻璃 Pane 中。

  4. 向常规按钮添加一个ComponentListener 并处理componentMoved() 事件。无论何时生成事件,您都需要将超大按钮放置在玻璃 Pane 上,使其绘制在常规按钮的顶部。查看 SwingUtilities 类。有一些方法可以让您转换相对于不同容器的点。

关于java - 如何使 1 个 JToolbar 按钮比其他按钮大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34635161/

相关文章:

java - libavcodec.so : has text relocations

java - Java 字节变量怎么会是 128?

java - 并非所有 JComponent 都被绘制

java - 图像图标未显示在 JButton 上

java - 如何在树节点中没有父链接的情况下获取二叉树的根?

java - 通过在其上应用正则表达式来替换 InputStream

java - 使用 BufferedInputStream 抛出异常

Java 图形对象和滚动 - 最简单的方法?

java - jButton 在更改文本标签时调整大小

java - 如何在 *ComponentUI 类(Swing 应用程序)中设置默认首选大小(重新定义 UI)?