我想以编程方式调整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本身的大小?
谢谢!
答案 0 :(得分:0)
已经解决了!
在设置了JScrollPane的preferredSize之后,我只需要在JDialog上调用pack()方法。像这样:
scrollPane.setPreferredSize(tempLabel.getPreferredSize());
super.pack();