Java 如何使1个JToolbar按钮比其他按钮大?
我正在制作一个在窗口顶部有工具栏的Java应用程序。此工具栏上有12个按钮,但客户希望其中一个按钮的大小为所有其他按钮的2倍,如下所示 我如何才能做到这一点,使一个大工具栏按钮与工具栏边界的边缘重叠,但其行为仍像工具栏的一部分Java 如何使1个JToolbar按钮比其他按钮大?,java,button,overlap,jtoolbar,Java,Button,Overlap,Jtoolbar,我正在制作一个在窗口顶部有工具栏的Java应用程序。此工具栏上有12个按钮,但客户希望其中一个按钮的大小为所有其他按钮的2倍,如下所示 我如何才能做到这一点,使一个大工具栏按钮与工具栏边界的边缘重叠,但其行为仍像工具栏的一部分 实现这一目标有多种方法。 我建议的一种方法是创建一个扩展Button类的新类(因为它们在工具栏中使用)。 在这个类中,您使用参数“intwidth”和“intheight”创建一个构造函数。 创建工具栏及其按钮时,只需将这两个参数的值设置为大于其他参数的值 不要忘记将参数
实现这一目标有多种方法。 我建议的一种方法是创建一个扩展Button类的新类(因为它们在工具栏中使用)。 在这个类中,您使用参数“intwidth”和“intheight”创建一个构造函数。 创建工具栏及其按钮时,只需将这两个参数的值设置为大于其他参数的值
不要忘记将参数传递给button类中的“setSize()”方法您不能将按钮添加到工具栏并使其扩展到工具栏的边界之外。也就是说,如果在其容器的边界之外绘制Swing组件,则该组件将被剪裁 作为黑客,您可以尝试在所有其他组件的顶部绘制超大按钮:
ComponentListener
,并处理componentMoved()
事件。无论何时生成事件,您都需要将您的超大按钮放置在玻璃窗格上,以便将其绘制在常规按钮的顶部。查看SwingUtilities
类。有一些方法允许您转换相对于不同容器的点这将导致工具栏的大小适合最大的按钮。他想要一个“重叠工具栏边界边缘”的按钮。如果你创建一个扩展JButton的新类。然后在创建新按钮对象时,将宽度和高度作为参数。此按钮应与工具栏的边界重叠,因为它位于工具栏顶部。布局管理器将始终在父面板的边界内绘制组件。一个组件不会重叠多个容器。我注意到有一个JLayer类,我将看看是否可以使用它来完成我需要的任务: