1

我想以编程方式调整 JScrollPane 的大小。我不想调整 JScrollPane 的视口,而是 JScrollPane 本身与父 JDialog 一起调整。

到目前为止,我尝试设置 JScrollPane 的 PreferredSize 并重新验证它,但它不起作用。这是我创建 JScrollPane 并将其添加到 JDialog 的代码。

public ConnectionTreeTooltip(MainFrame parent) {
        super(parent, "", false);
        super.setUndecorated(true);
        JPanel contentPane = (JPanel) super.getContentPane();
        contentPane.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED, Color.blue, Color.red));
        tipLabel = new JLabel();
        tipLabel.setBackground(Color.WHITE);
        scrollPane = new JScrollPane(tipLabel);
        scrollPane.setPreferredSize(new Dimension(100, 100));
        scrollPane.setBorder(BorderFactory.createEmptyBorder(3, 3, 1, 1));
     // super.setLayout(new BorderLayout());
        super.getContentPane().add(scrollPane);
        super.pack();
    }

所以我的 JScrollPane 已经创建好了,每当 JLabel 的文本发生变化时,它的视口就会自动调整大小。

如何与父 JDialog 一起调整 JScrollPane 本身的大小?

谢谢!

4

1 回答 1

0

已经解决了!

在我设置了 JScrollPane 的preferredSize 之后,我只需要在 JDialog 上调用 pack() 方法。像这样:

scrollPane.setPreferredSize(tempLabel.getPreferredSize());
super.pack();
于 2013-08-31T12:19:10.030 回答