我正在制作一个在窗口顶部有工具栏的Java应用程序。在这个工具栏上有12个按钮,但客户希望其中一个按钮的大小是所有其他按钮的2倍,如下所示。
如何执行此操作以使一个大工具栏按钮与工具栏边界重叠,但仍然表现得像工具栏的一部分?
答案 0 :(得分:1)
您无法在工具栏中添加按钮,并将其扩展到工具栏的边界之外。也就是说,如果Swing组件被绘制在其容器的边界之外,那么它将被剪裁。
作为一个黑客,您可以尝试在所有其他组件上绘制超大按钮:
在工具栏中添加常规按钮以填充工具栏的水平空间,以便为超大按钮保留工具栏上的空间。
将GlassPane添加到框架中。
将超大按钮添加到玻璃窗格。
将ComponentListener
添加到常规按钮并处理componentMoved()
事件。每当生成事件时,您需要将超大按钮放在玻璃窗格上,使其在常规按钮上方绘制。查看SwingUtilities
课程。有一些方法可以让你相对于不同的容器转换点数。
答案 1 :(得分:0)
有各种方法可以实现这一目标。 我建议的一种方法是创建一个扩展Button类的新类(因为它们在工具栏中使用)。 在这个类中,您将创建一个带有参数“int width”&的构造函数。 “int height”。 在创建工具栏及其按钮时,您只需将这两个参数的值设置为大于其他参数。
不要忘记将参数传递给按钮类
中的“setSize()”方法