如何以编程方式调整JScrollPane本身(而不是视口)的大小?

时间:2013-08-31 12:10:26

标签: java swing jscrollpane

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

到目前为止,我尝试使用JScrollPane的setPreferredSize并重新验证它,但它不起作用。 这是我创建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本身的大小?

谢谢!

1 个答案:

答案 0 :(得分:0)

已经解决了!

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

scrollPane.setPreferredSize(tempLabel.getPreferredSize());
super.pack();