JScrollPane随机无法显示内容

时间:2016-01-28 21:16:09

标签: java swing jscrollpane

我遇到了JScrollPane的问题。它将随机选择显示或不显示。每个滚动窗格中都有两个测试区域。有一点需要注意,如果我调整JFrame的大小,它将会变得可见。当它运行1个盒子或两个盒子可能不可见时。 40%的时间框2将是可见的,但不是1. 30%的时间框1将可见但不是2. 20%的时间两个框都可见。 10%的时间都没有可见的盒子。这些是粗略的数字,但似乎普遍接近。我已经多次运行程序,无论是否重新编译,即使代码没有重新编译,结果也会改变。我有没有布局管理器尝试过这个结果是一样的。我想避免像#34这样的评论;你必须使用布局管理器或小精灵会削减你的眼睛"。我有一个" frame.repaint();"在末尾。这是代码摘录。

JTextArea area1 = new JTextArea(  );
area1.setFont(new Font("Serif", Font.BOLD, 18));
area1.setText("1");
area1.setVisible( true );
JScrollPane scroll1;
scroll1 = new JScrollPane(area1);
scroll1.setLocation( 1, 1 );
scroll1.setSize( (frame.getSize().width / 2) - 2 , frame.getSize().height - 40 );
area1.repaint();
scroll1.revalidate();
scroll1.repaint();
scroll1.getViewport().setScrollMode(JViewport.SIMPLE_SCROLL_MODE);
scroll1.setVisible( true );
frame.add(scroll1);

我已经尝试了太多,要记住,我在网上看到的东西。如果我使用" JScrollPane scroll1 = new JScrollPane(area1);"相反,结果是一样的。如果我使用" scroll1.add(area1);"并且不将它添加到构造函数中,它将不会显示滚动窗格的内容。我还尝试将其设置为可见的虚假添加然后使其可见,结果是相同的。在这一点上,我不知道为什么会发生这种情况,更糟糕的是,运行之间的结果会有所不同。你知道他们对疯狂的看法......

有谁知道如何解决这个问题? 这是一张来自其中一部分的图片。

enter image description here

Here is a shared JAR file

1 个答案:

答案 0 :(得分:3)

frame.setVisible(true);之后,将frame.add(scroll1)放在代码的末尾。这总是对我有用。