如何使1个JToolbar按钮大于其余按钮?

时间:2016-01-06 14:09:00

标签: java button overlap jtoolbar

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

如何执行此操作以使一个大工具栏按钮与工具栏边界重叠,但仍然表现得像工具栏的一部分?

Giant toolbar button in the middle

2 个答案:

答案 0 :(得分:1)

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

作为一个黑客,您可以尝试在所有其他组件上绘制超大按钮:

  1. 在工具栏中添加常规按钮以填充工具栏的水平空间,以便为超大按钮保留工具栏上的空间。

  2. 将GlassPane添加到框架中。

  3. 将超大按钮添加到玻璃窗格。

  4. ComponentListener添加到常规按钮并处理componentMoved()事件。每当生成事件时,您需要将超大按钮放在玻璃窗格上,使其在常规按钮上方绘制。查看SwingUtilities课程。有一些方法可以让你相对于不同的容器转换点数。

答案 1 :(得分:0)

有各种方法可以实现这一目标。 我建议的一种方法是创建一个扩展Button类的新类(因为它们在工具栏中使用)。 在这个类中,您将创建一个带有参数“int width”&的构造函数。 “int height”。 在创建工具栏及其按钮时,您只需将这两个参数的值设置为大于其他参数。

不要忘记将参数传递给按钮类

中的“setSize()”方法