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

标签 java swing jscrollpane

我想以编程方式调整 JScrollPane 的大小。我不想调整 JScrollPane 的视口(viewport)大小,而是调整 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 的文本发生变化,它的视口(viewport)就会自动调整大小。

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

谢谢!

最佳答案

已经解决了!

在设置 JScrollPane 的 PreferredSize 后,我只需调用 JDialog 上的 pack() 方法即可。就像这样:

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

关于java - 如何以编程方式调整 JScrollPane 本身(而不是视口(viewport))的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18547986/

相关文章:

java - 对于默认不支持的语言环境,如何将本地化添加到 JFileChooser?

php - 连续Ajax GET时jscrollPane消失

Java jScrollPane 不显示滚动条

jquery - 带边框的 CSS 边框框会导致不必要的滚动条

java - 如何在发生更改时将扩展 AbstractTableModel 的类保存到文件中?

java - 为什么动态壁纸不能在 Samsung Epic 4G 上正确显示?

java - 我的java是1.5.0 & javac是1.6.0_24,是不是说明我的java安装不一致?

Java 7 服务器默认 GC

java - 机器人类,mouseMove无限循环

java - 使用 Java 创建 Windows 快捷方式