我看不到 Swing JSeparator

6

我有这段代码:

  JPanel jpMainExample = new JPanel(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));
  jpMainExample.add(new JLabel("JLabel"));
  jpMainExample.add(new JTextField("JTextField"));
  jpMainExample.add(new JSeparator(JSeparator.VERTICAL));
  jpMainExample.add(new JRadioButton("JRadioButton"));
  jpMainExample.add(new JSeparator(SwingConstants.VERTICAL));
  jpMainExample.add(new JComboBox<>(new String[] {"JComboBox"}));
  jpOUT.add(jpMainExample);

但是,我看不到分隔线。 enter image description here 出了什么问题?

2
请查看https://dev59.com/8nE95IYBdhLWcg3wKqyq。它涉及到不同的布局,但可能会有所帮助。 - bradimus
"我看不到分隔符。" 在某些PLAF中,分隔符是不可见的(但仍然占据空间)。如果没有分隔符,组件的放置会如何呈现? - Andrew Thompson
1个回答

7
分隔符的preferredSize是(2, 0)。FlowLayout尊重preferred size。由于高度为0,因此没有任何内容可绘制。
因此,您需要使用不同的布局管理器来调整组件的大小以垂直填充可用空间。
请查看Swing教程中有关如何使用分隔符的部分,其中提供了一个工作示例。它展示了如何使用BoxLayout

1
可以使用setMinimumSize()方法来设置分隔符的最小大小,这适用于FlowLayout布局。 - trinity420

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接