【发布时间】:2019-12-09 17:47:34
【问题描述】:
我在 JScrollPane 内有一个 JTree,它位于 JPanel 内。
我遇到的问题是 width 在我用节点或长名称的节点填充 JTree 时未修复。
这里是一个例子:
如您所见,左边的比右边长。
我的目标是保持它们的大小完全相等,将主窗口分别拆分为 50%。
这里是用来生成窗口的代码。
有没有办法固定 JScrollPane 的宽度大小? 谢谢。
public void initialize() {
this.frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
JMenuBar menuBar = new JMenuBar();
frame.setJMenuBar(menuBar);
JMenu mnNewMenu = new JMenu("Services");
mnNewMenu.setHorizontalAlignment(SwingConstants.CENTER);
menuBar.add(mnNewMenu);
frame.getContentPane().setLayout(new MigLayout("", "[grow][grow]", "[grow][grow]"));
JPanel left_JPanel = new JPanel();
frame.getContentPane().add(left_JPanel, "cell 0 0,grow");
left_JPanel.setLayout(new MigLayout("", "[grow]", "[grow]"));
left_ScrollPane = new JScrollPane();
left_JPanel.add(left_ScrollPane, "cell 0 0,grow");
JLabel left_Label = new JLabel("Left Scroll Pane");
left_Label.setFont(new Font("Tahoma", Font.BOLD, 12));
left_Label.setForeground(Color.BLUE);
left_Label.setHorizontalAlignment(SwingConstants.CENTER);
left_ScrollPane.setColumnHeaderView(left_Label);
JTree left_tree = new JTree();
left_ScrollPane.setViewportView(left_tree);
JPanel right_JPanel = new JPanel();
frame.getContentPane().add(right_JPanel, "cell 1 0,grow");
right_JPanel.setLayout(new MigLayout("", "[grow]", "[grow]"));
JScrollPane right_ScrollPane = new JScrollPane();
right_JPanel.add(right_ScrollPane, "cell 0 0,grow");
right_JTree = new JTree(phModel);
right_JTree.setVisibleRowCount(8);
right_ScrollPane.setViewportView(right_JTree);
JLabel right_Label = new JLabel("Right Scroll Pane");
right_Label.setFont(new Font("Tahoma", Font.BOLD, 12));
right_Label.setForeground(Color.BLUE);
right_Label.setHorizontalAlignment(SwingConstants.CENTER);
right_ScrollPane.setColumnHeaderView(right_Label);
}
【问题讨论】:
标签: java swing jscrollpane jtree windowbuilder