【问题标题】:BorderLayout problems边框布局问题
【发布时间】:2014-06-12 13:52:24
【问题描述】:

我有 chartPanel (JFreeChart)、buttonPanelerrorPanel

    frame.add(chartPanel, BorderLayout.PAGE_START);
    JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
    errorPanel = new JLabel("Error String");
    errorPanel.setHorizontalAlignment(JLabel.CENTER);
    frame.getContentPane().add(buttonPanel, BorderLayout.CENTER);
    frame.getContentPane().add(errorPanel, BorderLayout.SOUTH);

当我改变应用程序窗口的高度时,buttonPanel 和 errorPanel 消失了。

当我不使用 JLabel 时:

    frame.add(chartPanel);
    JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
    frame.getContentPane().add(buttonPanel, BorderLayout.SOUTH);

改变应用程序窗口的高度是可以的。如何使它正确并且没有窗口缩放问题?

【问题讨论】:

    标签: java layout jfreechart border-layout


    【解决方案1】:

    当您添加到 JFrame 时,默认位置是 CENTER,但是由于您将图表添加到 PAGE_START 现在它不可扩展...

    解决方案:

    拿出来直接说

    frame.add(chartPanel);
    

    对于errorPanel和ButtonPanel

    只需使用 BorderLayout 创建一个新的 JPanel 并将其添加到 Frame Layout 的 SOUTH。 然后在 JPanel 中添加您的 ButtonPanel 和 ErroPanel,就像您在 Jframe 中所做的一样。

    【讨论】:

      【解决方案2】:

      试试这个:

      frame.addComponentListener(new ComponentListener(){
      
          public void componentResized(ComponentEvent e) {
              frame.pack();
          }
      
          public void componentMoved(ComponentEvent e) {}
          public void componentShown(ComponentEvent e) {}
          public void componentHidden(ComponentEvent e) {}
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-04
        • 1970-01-01
        相关资源
        最近更新 更多