【问题标题】:java jscrollpanejava jscrollpane
【发布时间】:2012-03-13 08:41:10
【问题描述】:

我在显示 JScrollPane 的组件时遇到问题。让我先解释一下上下文。我有一个大的拆分窗格:

        center = new JSplitPane(JSplitPane.VERTICAL_SPLIT, p, p1);
        center.setDividerLocation(0.9);
        center.setDividerSize(3);
        center.setResizeWeight(1);
        center.setContinuousLayout(true);

p 窗格显示正确,这里没有问题。但是p1 窗格不会显示,我可以看到 splitPane 的底部是空的,但仅此而已。

        JPanel p = new JPanel();
        p.add(canvas);
        JPanel p1 = new JPanel();
        p1.add(canvasPropPane);

canvasPropPane 是一个滚动窗格,我这样初始化:

        VolumeSizeAndPosition volum = new VolumeSizeAndPosition();
        canvasPropPane = new JScrollPane(volum);

volume 在一个独立的框架上进行了测试,并显示了正确的方式。 我尝试在canvasPropPane 上显示一个简单的按钮canvasPropPane.add(wildButton);,它有一个奇怪的行为:只有在我将鼠标悬停在它的位置上之后它才会绘制按钮;在重绘时(调整滚动窗格的大小后)它会消失。

【问题讨论】:

  • 请使用SSCCE编辑您的问题
  • @mKorbel 我真的没有更多信息可以提供。
  • 抱歉太难提出建议,也不明智
  • 我使用了canvasPropPane.setViewportView(volum);,它现在绘制组件。
  • 神秘消失的问题(setViewportView 应该具有与使用视图作为参数实例化滚动窗格完全相同的行为)会让我非常紧张 :-) 在你的鞋子里,我会继续寻找 real 原因...

标签: java swing jscrollpane


【解决方案1】:

我通过在所有底层嵌套 Swing 对象上调用 invalidate() 解决了类似的问题。因此,对于您的特定问题 p.invalidate() 和 p1.invalidate() 可能会有所帮助。我认为这种奇怪的行为是 Swing 中的一个错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-19
    • 2014-04-19
    • 1970-01-01
    • 2011-03-31
    • 2012-03-12
    相关资源
    最近更新 更多