JScrollBar 不做任何事情



我试图在JPanel上放置一个垂直的JScrollBar。我可以很容易地添加滚动条,但当我运行程序时,滚动条没有任何效果。我可以上下拖动它,但JPanel的内容不会移动。我已经阅读了我能找到的关于如何做到这一点的所有内容,它看起来很简单,但我显然错过了一些东西。

请注意,我的JPanel布局设置为NULL。这是相关代码。谢谢

public JDlgResults(ArrayList<AnsweredProblem> probList) {
    initComponents();
    pnlResults.setLayout(null); //allows free form placing of JLabels
    /* Iterate over the ArrayList and add each problem to the results table */
    Iterator iter = probList.iterator();
    int row = 1;
    while(iter.hasNext()) {
        addRow(row, iter.next());
        row++;
    }
    JScrollBar jScrollResults = new javax.swing.JScrollBar();
    pnlResults.add(jScrollResults);
    jScrollResults.setBounds(590, 0, 17, 196);
}

我假设您的initComponents()方法设置了一组组件,并将它们添加到您的contentPane中,然后建立您的对话框(无论是对话框还是框架)。

简单地将你的JScrollPane添加到该面板中是行不通的。

相反,将您的pnlResults添加到JScrollPane实例中,并使成为您的contentPane。

这是经过设计的。如果滚动条神奇地试图拾取附近的面板并开始滚动,那就有点糟糕了。

在较低级别上,您可以将监听器添加到滚动条中,并自己实现滚动。您还必须告诉滚动条要滚动的内容。

然而,这不是你想要的。您需要一个围绕面板的JScrollPane。通过这种方式,您永远不会直接实例化滚动条,也不必处理滚动的低级机制(这相当复杂)。

相关内容

  • 没有找到相关文章