0

我试过getTitlePosition,但它似乎只返回边框的起点0,而不是标题本身。我也尝试了 getBorderJustification,但它返回了 Center 的 int 值。

有没有办法在 TitledBorder 中获取实际文本的 x 位置?

Box container = Box.createVerticalBox();
Box topBox = new Box(BoxLayout.PAGE_AXIS);
Box btmBox = new Box(BoxLayout.PAGE_AXIS);
TitledBorder border = new TitledBorder("Title");
border.setTitleJustification(TitledBorder.CENTER);

topBox.add(new JLabel(new ImageIcon(new BufferedImage(200,40,BufferedImage.TYPE_INT_RGB))));
btmBox.add(new JLabel(new ImageIcon(new BufferedImage(200,40,BufferedImage.TYPE_INT_RGB))));

topBox.setBorder(border);
btmBox.setBorder(border);

container.add(topBox);
container.add(btmBox);
4

1 回答 1

2

如果标题居中,我无法弄清楚如何确保弹出窗口保持在标题上方

因此,您需要检查标题位置。如果它居中,则使用基本数学:

  1. 你知道面板的宽度
  2. 你知道弹出窗口的宽度
  3. 从面板宽度中减去弹出宽度并除以 2。
于 2018-07-20T17:41:09.877 回答