如何在JScrollPane上添加JButton?

3

你好,我正在使用swing制作桌面应用程序,在这里使用了jscrollpane。我想在jscrollpane中添加多个按钮,但目前只能添加单个按钮。请问如何实现?

下面是我的代码:

 public class AddingToJScrollPane {

  public static void main(String args[]) {
    JFrame frame = new JFrame("Tabbed Pane Sample");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JLabel label = new JLabel("Label");
    label.setPreferredSize(new Dimension(1000, 1000));
    JScrollPane jScrollPane = new JScrollPane(label);

    JButton jButton1 = new JButton("Hello");
     JButton jButton2 = new JButton("Hello");

    jScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    jScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    jScrollPane.setViewportBorder(new LineBorder(Color.RED));
    jScrollPane.getViewport().add(jButton1,jButton2);

    frame.add(jScrollPane, BorderLayout.NORTH);
    frame.setSize(400, 150);
    frame.setVisible(true);
  }
}

更新代码

public class AddingToJScrollPane {

  public static void main(String args[]) {
    JFrame frame = new JFrame("Tabbed Pane Sample");
    JPanel panel = new JPanel();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel.setLayout( new GridLayout() );
    JLabel label = new JLabel("Label");
    label.setPreferredSize(new Dimension(1000, 1000));
    JScrollPane jScrollPane = new JScrollPane(panel);

    JButton jButton1 = new JButton("Hello");
     JButton jButton2 = new JButton("He");

   // jScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    jScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    jScrollPane.setViewportBorder(new LineBorder(Color.RED));
   // jScrollPane.getViewport().add(panel);

    frame.add(jScrollPane, BorderLayout.NORTH);
    panel.add(jButton1);
     panel.add(jButton2);
    frame.setSize(400, 150);
    frame.setVisible(true);
  }
}

我该如何实现我想要的输出?感谢您提前帮忙。


我该如何实现我想要的输出?你想要的输出具体是什么? - Paul Samsotha
编辑您的帖子以显示您尝试过的内容。不要删除当前代码。只需在您拥有的代码下面写下EDIT,然后在其下面发布新代码。 - Paul Samsotha
让我们在聊天室里继续这个讨论 - user3377703
如何实现我想要的输出?请复制/粘贴您描述所需输出的部分。 - Andrew Thompson
1个回答

8
将按钮添加到具有适当布局(例如GridLayoutFlowLayout)的面板中。将面板添加到滚动窗格中。

我已经完成了这个任务,能够得到多个按钮,但它们的排列方式不正确。 - user3377703
2
  1. 我不是你的“亲爱的”。
  2. 所述问题是“将多个按钮放入滚动窗格中”,因此已经解决了。
  3. 如果你希望我在不知道使用了什么布局或者预期效果是什么的情况下解决布局问题,那么你一定认为我是某种神奇的巫师。但事实并非如此。
- Andrew Thompson
为了使派生自JScrollPane的JScrollBars中的setUnitIncrement更改整数值以进行自然滚动 - mKorbel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接