Java 为浮动JToolBar设置特定位置
我想在启动应用程序时为JToolBar设置一个特定位置。 有没有办法在屏幕上的特定点上设置JToolBar的浮动位置 我以这段代码为例,它将创建一个工具栏,并尝试将其设置为浮点(300200),但它会在位置(0,0)显示它(浮点)Java 为浮动JToolBar设置特定位置,java,swing,jtoolbar,Java,Swing,Jtoolbar,我想在启动应用程序时为JToolBar设置一个特定位置。 有没有办法在屏幕上的特定点上设置JToolBar的浮动位置 我以这段代码为例,它将创建一个工具栏,并尝试将其设置为浮点(300200),但它会在位置(0,0)显示它(浮点) 谢谢要给工具栏一个绝对布局,首先必须将布局设置为null,如下所示:frame.setLayout(null)而不是((basictolbarui)toolbar.getUI()).setFloating(true,新点(300200))您只需使用工具栏。设置边界(x
谢谢要给工具栏一个绝对布局,首先必须将布局设置为null,如下所示:
frame.setLayout(null)代码>而不是((basictolbarui)toolbar.getUI()).setFloating(true,新点(300200))代码>您只需使用工具栏。设置边界(x、y、宽度、高度)代码>
}从的源代码中,点
参数仅在第一个参数为false
的情况下使用,并用于查找将工具栏停靠到其原始容器的位置
基本上,floating
作为布尔参数,如下所示:
if(floating)
,松开工具栏并将其放入窗口中,该位置对应于basictolbarui
的内部floatingX
和floatingY
变量(根本不使用点
参数)
否则
,将其停靠回容器
,使用点
参数查找停靠位置(北、东…)
幸运的是,有一种方法可以修改floatingX
和floatingY
的值:setFloatingLocation(intx,inty)
因此,只需在调用setFloating
之前调用此方法(您可以向其传递null
点
参数,因为它无论如何都不会被使用)
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);
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setLayout(null);
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);
toolBar.setBounds(100,100,50,50);
frame.setSize(350, 150);
frame.setVisible(true);
((BasicToolBarUI) toolbar.getUI()).setFloatingLocation(300, 200);
((BasicToolBarUI) toolbar.getUI()).setFloating(true, null);