gpt4 book ai didi

java - 为 float 的 JToolBar 设置特定位置

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:12:36 24 4
gpt4 key购买 nike

我想在启动应用程序时为 JToolBar 设置一个特定位置。有什么方法可以设置 JToolBar 在屏幕上特定点上的 float 位置吗?

我以这段代码为例,它将创建一个工具栏并尝试将其设置为 float 在点 (300,200) 处,但它却显示( float )在位置 (0,0)。

public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JToolBar toolbar = new JToolBar();
toolbar.add(new JButton("button 1"));
toolbar.add(new JButton("button 2"));

Container contentPane = frame.getContentPane();
contentPane.add(toolbar, BorderLayout.NORTH);

((BasicToolBarUI) toolbar.getUI()).setFloating(true, new Point(300, 200));

frame.setSize(350, 150);
frame.setVisible(true);
}

谢谢

最佳答案

来自setFloating(boolean, Point)的源代码, Point 参数仅在第一个参数为 false 的情况下使用,用于查找将工具栏停靠到其原始 Container.

基本上,floating 是 boolean 参数,它是这样的:

if(floating),取消停靠工具栏并将其放入Window中,该位置对应内部的floatingX BasicToolBarUI 的 floatingY 变量(根本没有使用 Point 参数)

else ,将其停靠回 Container,使用 Point 参数查找停靠位置(北,东... ).

幸运的是,有一种方法可以修改 floatingXfloatingY 的值:setFloatingLocation(int x, int y)

所以只需在调用 setFloating 之前调用此方法(您可以向其传递一个 null Point 参数,因为它不会被使用无论如何)。

((BasicToolBarUI) toolbar.getUI()).setFloatingLocation(300, 200);
((BasicToolBarUI) toolbar.getUI()).setFloating(true, null);

关于java - 为 float 的 JToolBar 设置特定位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41701664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com