jscrollbar什么都不做

vh0rcniy  于 2021-07-09  发布在  Java
关注(0)|答案(2)|浏览(384)

我试着把一个垂直的jscrollbar放在一个jpanel上面。我可以很容易地添加scoll条,但是当我运行程序时,我的滚动条没有任何效果。我可以上下拖动,但jpanel的内容不会移动。我已经阅读了所有我能找到的关于如何做到这一点,这似乎非常简单,但我显然错过了一些东西。
请注意,我的jpanel布局设置为空。这是相关代码。谢谢!

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);
}
1cosmwyk

1cosmwyk1#

我想你的 initComponents() 方法设置一组组件并将它们添加到contentpane中,并建立对话框(无论是对话框还是框架)。
只需添加 JScrollPane 对那个小组来说是行不通的。
相反,添加 pnlResultsJScrollPane 示例并使其成为您的contentpane。

rjzwgtxy

rjzwgtxy2#

那是故意的。如果滚动条奇迹般地尝试在其附近拾取面板并开始滚动它们,那就有点糟糕了。
在较低的级别上,您可以将侦听器添加到滚动条并自己实现滚动。你还必须告诉滚动条有多少滚动。
然而,这不是你想要的。您需要一个jscrollpane,它环绕在您的面板上。这样,您就不会直接示例化滚动条,也不必处理滚动的低级机制(这相当复杂)。

相关问题