【问题标题】:How to dynamically add jPanels to a JScrollPane that has been added to the JFrame using NetBeans GUI creator?如何使用 NetBeans GUI 创建器将 jPanel 动态添加到已添加到 JFrame 的 JScrollPane?
【发布时间】:2012-11-03 11:10:05
【问题描述】:

这可能是一个愚蠢的问题,我宁愿不使用 NetBeans 内置的 GUI 编辑器,但有人要求我这样做。

我遇到的问题是我正在尝试将 JPanel(本身包含一些标签)添加到 JFrame 上已经存在的 JScrollPane。 JScrollPane 和 JFrame 是使用 NetBeans GUI 编辑器创建的。

我有一个 ArrayList(大小未定)的订单,对于 ArrayList 中的每个订单,我正在尝试创建一个 JPanel 并将其放入 JScrollPane。

我无法将 JPanel 添加到 JScrollPane,然后将标签添加到 JPanel。我查看了在线教程,但所有教程都需要参考 JFrame ......但是因为我使用的是 NetBeans 附带的内置 GUI 编辑器,所以我无法在代码中引用 JFrame。

我目前使用的代码:

    FlowLayout experimentLayout = new FlowLayout(FlowLayout.CENTER);
    JPanel panel = new JPanel();
    panel.setLayout(experimentLayout);
    JPanel panel2 = new JPanel();
    JLabel label2 = new JLabel("Hello");
    scrollPane.add(panel); //ScrollPane is already on form (put there by GUI editor)
    panel.add(panel2);
    panel2.add(label2);

非常感谢任何有关如何将这些 JPanel 添加到 JScrollPane 的帮助!

【问题讨论】:

    标签: java swing jframe jpanel jscrollpane


    【解决方案1】:

    没有代码,不可能 100% 确定,但您会像自己构建 UI 那样做。

    jScrollPane1.setViewportView(yourPanel);
    

    如果您无法直接访问框架的内部,那么您需要提供某种访问方法以允许您这样做。

    【讨论】:

    • 有 setViewComponent() 方法吗?它一直告诉我 NetBeans 中没有,当我在 Google 上搜索时找不到任何信息:(顺便说一句,我添加了代码 :) 感谢您的帮助
    • 对不起,我的错,它实际上是 setViewportView - 这就是你使用 ipad 得到的:P
    【解决方案2】:

    我想通了!我使用了 scrollPane.getViewport().add(panel);而不仅仅是 .add :)

    感谢您的帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多