Java JScrollBar什么都不做

Java JScrollBar什么都不做,java,swing,layout-manager,jscrollbar,null-layout-manager,Java,Swing,Layout Manager,Jscrollbar,Null Layout Manager,我试着在JPanel上放一个垂直的JScrollBar。我可以很容易地添加滚动条,但是当我运行程序时,滚动条没有任何效果。我可以上下拖动它,但JPanel的内容不会移动。我已经阅读了所有我能找到的关于如何做到这一点的资料,看起来很简单,但我显然遗漏了一些东西 请注意,我的JPanel布局设置为空。这是相关代码。谢谢 public JDlgResults(ArrayList<AnsweredProblem> probList) { initComponents(); p

我试着在JPanel上放一个垂直的JScrollBar。我可以很容易地添加滚动条,但是当我运行程序时,滚动条没有任何效果。我可以上下拖动它,但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);
}

那是故意的。如果滚动条神奇地试图拾取其附近的面板并开始滚动,那就有点糟糕了

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


然而,这不是你想要的。您需要一个围绕面板的JScrollPane。这样,您就不会直接实例化滚动条,也不必处理相当复杂的低级滚动机制。

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

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

然而,这不是你想要的。您需要一个围绕面板的JScrollPane。这样,您就不必直接实例化滚动条,也不必处理相当复杂的低级滚动机制。

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

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

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

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

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


相反,请将pnlResults添加到JScrollPane实例中,并将其设置为contentPane。

如果要从initComponents提供相关代码,可以提供更多指导。为了更快地获得更好的帮助,请发布.1 my JPanel布局设置为NULL的帖子。如果不是这个问题的原因,那么是其他问题的原因。使用布局!2请特别了解用于类、方法和属性名称的案例,并一致使用。如果您要从initComponents提供相关代码,则可以提供更多指导。为了更快地获得更好的帮助,请发布一篇.1 my JPanel layout设置为NULL的文章。如果不是这个问题的原因,那么是其他问题的原因。使用布局!2请特别了解用于类、方法和属性名称的用例,并一致使用它。