【问题标题】:Container not displaying in JScrollPane容器未显示在 JScrollPane 中
【发布时间】:2020-06-10 13:47:55
【问题描述】:

我有一个JScrollPane,它将填充用户添加的按钮。目前,用户创建了一个新按钮并将其添加到滚动窗格内的容器中,但没有显示任何内容。

这是因为滚动窗格已经显示了吗?

启动滚动窗格和容器:

newHeading.addActionListener(this);
newHeading.setActionCommand("newHeading");

contractContainer.setLayout(new BoxLayout(contractContainer, BoxLayout.Y_AXIS));

scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
scrollPane.add(contractContainer);

contractHeadingPanel.setLayout(new BorderLayout());
contractHeadingPanel.add(newHeading, BorderLayout.SOUTH);
contractHeadingPanel.add(scrollPane, BorderLayout.CENTER);

contractHeadingFrame.setSize(200, 400);
contractHeadingFrame.setAlwaysOnTop(true);
contractHeadingFrame.add(contractHeadingPanel);
contractHeadingFrame.setVisible(true);

向容器中添加新的JButton 组件:

case "newHeading":
    // Adds new details section
    headingDetails.add(new String[0][0]);
    // Adds title to list
    headingTitles.add(JOptionPane.showInputDialog(this, "Heading title:"));
    // Sets up and adds button to container
    JButton a = new JButton(headingTitles.get(headingTitles.size()-1));
    a.addActionListener(this);
    contractContainer.add(a);
    Log.logLine(this.getClass(), "Adding new Heading under " + a.getText());
    // Adds Heading title to list
    headingTitles.add(a.getText());

    scrollPane.revalidate();
    repaint();
    break;

【问题讨论】:

    标签: java swing containers jbutton jscrollpane


    【解决方案1】:
    scrollPane.add(contractContainer);
    

    不要将组件添加到 JScrollPane。该组件需要添加到 scollpane 的viewport。这可以通过以下两种方式之一完成:

    scrollPane = new JScrollPane( contractContainer );
    

    scrollPane = new JScrollPane();
    scrollPane.setViewportView( contractContainer );
    

    除非您在视口中动态更改组件,否则我会使用第一种方式。

    然后,当您将组件添加到可见 gui 时,代码将是:

    contractContainer.add(a);
    contractContainer.revalidate();
    contractContainer.repaint();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-23
      • 1970-01-01
      相关资源
      最近更新 更多