我有一台JToolbar。我想知道有没有办法阻止它水平发展。我希望它只是垂直的。我确实想让它漂浮起来。
我尝试过创建一个属性已更改的侦听器,并将方向改回垂直方向,但没有成功。谢谢
发布于 2014-02-15 20:19:28
只需使用其他布局,而不是默认的浮动布局。并使用垂直布局。
JToolbar toolbar= new JToolbar();
toolbar.setLayout(new BoxLayout(toolbar, BoxLayout.Y_AXIS));您也可以根本不使用任何布局
toolbar.setLayout(null);但默认情况下,这将是水平的。
发布于 2014-02-15 20:45:17
看看这个https://bugs.openjdk.java.net/browse/JDK-4203039,它有一个如何过滤允许JToolbar停靠的地方的例子。
发布于 2015-09-26 18:12:48
您需要添加以下行:
toolBar.setOrientation(javax.swing.SwingConstants.VERTICAL);代码示例:
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JPanel;
import javax.swing.JToolBar;
import javax.swing.SwingConstants;
class VerticalJToolbar
{
public static void main(String args[])
{
JFrame frame = new JFrame("VerticalJToolbarTest");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(480, 480);
frame.setResizable(true);
frame.setLocationRelativeTo(null);
JPanel panelOrange = new JPanel();
panelOrange.setBackground(Color.ORANGE);
panelOrange.setPreferredSize(new Dimension(100, 100));
JPanel panelBlue = new JPanel();
panelBlue.setBackground(Color.BLUE);
panelBlue.setPreferredSize(new Dimension(100, 100));
JPanel panelGreen = new JPanel();
panelGreen.setBackground(Color.GREEN);
panelGreen.setPreferredSize(new Dimension(100, 100));
JPanel panelRed = new JPanel();
panelRed.setBackground(Color.RED);
panelRed.setPreferredSize(new Dimension(100, 100));
JMenu menu1 = new JMenu("Menu 1");
JMenu menu2 = new JMenu("Menu 2");
JMenu menu3 = new JMenu("Menu 3");
JMenu menu4 = new JMenu("Menu 4");
JToolBar toolBarHorizontal = new JToolBar();
toolBarHorizontal.add(menu1);
toolBarHorizontal.add(menu2);
toolBarHorizontal.add(menu3);
toolBarHorizontal.add(menu4);
JToolBar toolBarVertical = new JToolBar();
toolBarVertical.setOrientation(SwingConstants.VERTICAL);
toolBarVertical.add(panelOrange);
toolBarVertical.add(panelBlue);
toolBarVertical.add(panelGreen);
toolBarVertical.add(panelRed);
JPanel panelCenter = new JPanel();
panelCenter.setBackground(Color.WHITE);
frame.add(toolBarHorizontal, java.awt.BorderLayout.NORTH);
frame.add(toolBarVertical, java.awt.BorderLayout.WEST);
frame.add(panelCenter, java.awt.BorderLayout.CENTER);
frame.setVisible(true);
}
}屏幕截图:

https://stackoverflow.com/questions/21797119
复制相似问题