Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中使用JScrollPane_Java_Swing_Scroll_Jscrollpane - Fatal编程技术网

如何在Java中使用JScrollPane

如何在Java中使用JScrollPane,java,swing,scroll,jscrollpane,Java,Swing,Scroll,Jscrollpane,如何在下面给出的代码中获得JList组件周围的滚动条?它似乎不能正常工作:( 听着,我可能没有回答你需要什么,因为我不记得有多少swing布局。我很久以前就不使用它了 但是在您的JPanel上删除设置布局(我记得)它可以使用以下代码: public JButtonO() { super("the button"); this.setSize(400, 200); // Create a panel with a borderlayout JPanel jpane

如何在下面给出的代码中获得JList组件周围的滚动条?它似乎不能正常工作:(


听着,我可能没有回答你需要什么,因为我不记得有多少swing布局。我很久以前就不使用它了

但是在您的JPanel上删除设置布局(我记得)它可以使用以下代码:

public JButtonO() {
    super("the button");
    this.setSize(400, 200);

    // Create a panel with a borderlayout
    JPanel jpanel = new JPanel(new BorderLayout());

    JLabel label = new JLabel("Output Items:");
    label.setAlignmentX(1);
    label.setAlignmentY(1);
    // Add Label to top of layout
    jpanel.add(label, BorderLayout.NORTH);

    JList conList = new JList(values);
    conList.setVisibleRowCount(3);
    JScrollPane scroller = new JScrollPane(conList);
    //AddScroll to center
    jpanel.add(scroller);

    //Add Panel to JFrame
    this.add(jpanel);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setVisible(true);

  }
我认为问题在于JPanel的默认布局管理器。由于它的工作方式,您的卷轴“srink”不足以创建卷轴

希望它有帮助,即使没有太多的解释

事实上:在我发布答案后,我看到了您的错误。现在我可以解释错误所在。您已经在JScrollPane中添加了您的JList:

JScrollPane scroller = new JScrollPane(conList);
但在那之后,你把它放在JPanel中:

panel.add(conList);
这将更改yout JList的显示位置,并让JScroll再次清空。如果没有组件,它将以0x0大小显示,并且不会绘制(即使在那里)


现在我想我帮了你的忙。听着,我可能没有回答你需要什么,因为我不记得有多少swing布局。我很久以前就不使用它了

但是在您的JPanel上删除设置布局(我记得)它可以使用以下代码:

public JButtonO() {
    super("the button");
    this.setSize(400, 200);

    // Create a panel with a borderlayout
    JPanel jpanel = new JPanel(new BorderLayout());

    JLabel label = new JLabel("Output Items:");
    label.setAlignmentX(1);
    label.setAlignmentY(1);
    // Add Label to top of layout
    jpanel.add(label, BorderLayout.NORTH);

    JList conList = new JList(values);
    conList.setVisibleRowCount(3);
    JScrollPane scroller = new JScrollPane(conList);
    //AddScroll to center
    jpanel.add(scroller);

    //Add Panel to JFrame
    this.add(jpanel);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setVisible(true);

  }
我认为问题在于JPanel的默认布局管理器。由于它的工作方式,您的卷轴“srink”不足以创建卷轴

希望它有帮助,即使没有太多的解释

事实上:在我发布答案后,我看到了您的错误。现在我可以解释错误所在。您已经在JScrollPane中添加了您的JList:

JScrollPane scroller = new JScrollPane(conList);
但在那之后,你把它放在JPanel中:

panel.add(conList);
这将更改yout JList的显示位置,并让JScroll再次清空。如果没有组件,它将以0x0大小显示,并且不会绘制(即使在那里)


现在我想我帮助了=D

将包含JList
conList
的JScrollPane
滚动条添加到JPanel
面板就足够了。
错误在于您正在第二次添加JList

   JScrollPane scroller = new JScrollPane(conList);
   panel.add(label);
   panel.add(scroller);
   panel.add(conList); // <---THIS LINE SHOULD BE DELETED...
JScrollPane scroller=新的JScrollPane(conList);
面板。添加(标签);
面板。添加(滚动条);

panel.add(conList);//将包含JList
conList
的JScrollPane
滚动条添加到JPanel
面板就足够了。
错误在于您正在第二次添加JList

   JScrollPane scroller = new JScrollPane(conList);
   panel.add(label);
   panel.add(scroller);
   panel.add(conList); // <---THIS LINE SHOULD BE DELETED...
JScrollPane scroller=新的JScrollPane(conList);
面板。添加(标签);
面板。添加(滚动条);

panel.add(conList);//JScrollPane
具有称为滚动条策略的设置,这些设置说明何时显示滚动条。您可以使用构造函数或通过调用
setVerticalScrollBarPolicy()
setHorizontalScrollBarPolicy()
来设置滚动条策略。默认策略为“根据需要”,这意味着只有当组件太大而无法显示整个组件时,才会显示滚动条。因此,如果您的列表位于窗口内,则滚动条将不可见,但当您使用鼠标缩小窗口时,滚动条将变为可见。您可以将一个或两个策略更改为“始终”如果需要,使用相应的常量使滚动条始终可见。

JScrollPane
具有称为滚动条策略的设置,这些设置说明何时显示滚动条。您可以使用构造函数或调用
setVerticalScrollBarPolicy()来设置它们
设置水平滚动条策略()
。默认策略为“根据需要”,这意味着只有当组件太大而无法显示整个组件时,才会显示滚动条。因此,如果您的列表位于窗口内,则滚动条将不可见,但当您使用鼠标缩小窗口时,滚动条将变为可见。您可以将一个或两个策略更改为“始终”使用相应的常量来创建滚动条如果这是您需要的,则始终可见。

要更快获得更好的帮助,请发布一条。要更快获得更好的帮助,请发布一条。kosmulski,非常感谢您的贡献。不过,前两位贡献者帮助我解决了问题。kosmulski,非常感谢您的贡献。不过,前两位贡献者帮助我解决了问题。