Java 如何";“包装”;JFrame中的JPanel?

Java 如何";“包装”;JFrame中的JPanel?,java,swing,jframe,panel,Java,Swing,Jframe,Panel,首先,我已经检查了相关的问题,但无法使其工作 现在,我的问题是: 我有一个JFrame,里面包含一个动态绘制的JPanel。现在,当我画这个面板时,它占据了整个屏幕,并扩散到边缘。我在面板上使用了BoxLayout.Y_轴 我是如何做到这一点的 我已经附上了截图: 我得到的: 我想要什么: 编辑:添加源代码(最小化,非实际) 方法pack()根据 a) 已使用LayoutManager 及 b) Size/PrefereredSize 从当前组件的层次结构中的所有元素检索 BoxLayou

首先,我已经检查了相关的问题,但无法使其工作

现在,我的问题是: 我有一个JFrame,里面包含一个动态绘制的JPanel。现在,当我画这个面板时,它占据了整个屏幕,并扩散到边缘。我在面板上使用了BoxLayout.Y_轴

我是如何做到这一点的

我已经附上了截图:

我得到的:

我想要什么:

编辑:添加源代码(最小化,非实际)

  • 方法
    pack()
    根据

    a) 已使用
    LayoutManager

    b)
    Size/PrefereredSize

    从当前
    组件的层次结构中的所有元素检索

  • BoxLayout
    默认接受
    Size/PrefereredSize
    ,请注意,对于每个
    LayoutManager
    ,此属性的实现可能不同


您可以在JFrame上调用pack(),将其打包到最合适的窗口中。@mino:我打算“打包”的面板容器也是一个面板,并且在很大程度上是嵌套的。那么,在这种情况下,你的建议会起作用吗?而且,如果你提供你使用的代码而不是图像,它也会有帮助。然后我们可以告诉您哪里出了问题。:-)我的直觉是,你还没有提供足够的信息来回答这个问题。我建议你正确拼写“that”、“you”和“please”等词,并发布一个.dats相关信息,thnx…但无法解决我的问题
public class DialogReportsMain extends JDialog implements ActionListener 
{
  public DialogReportsMain(JFrame mParent, boolean isModal) 
  {  
  /*******************************************/

  setLayout(new BorderLayout(0, 0));

      /***************************************/
      addNorthContent(this);
      addWestContent(this);
      addSouthContent(this);

      /***************************************/
  JPanel mOrderHeaderContainer = new JPanel();
    mOrderHeaderContainer.setLayout(new BoxLayout(mOrderHeaderContainer, BoxLayout.Y_AXIS));

        /***************************************/
        // Table Number
        JLabel mLabelTableNumber = new JLabel("Table: "
                                                + new Integer(mOrderDetails.mTableNumber).toString());
        mOrderHeaderContainer.add(mLabelTableNumber);

        /***************************************/
        // Dates
        JPanel mPanelDates = new JPanel();
        mPanelDates.setLayout(new GridLayout(1, 2, 20, 0));

            JLabel mLabelReceivedDateTime = new JLabel(mOrderDetails.mReceivedDateTime);
            mPanelDates.add(mLabelReceivedDateTime);

            JLabel mLabelBillDateTime = new JLabel(mOrderDetails.mBillDateTime);
            mPanelDates.add(mLabelBillDateTime);

        mOrderHeaderContainer.add(mPanelDates);

        /***************************************/
        // Waiter Details
        JLabel mLabelWaiterDetails = new JLabel("Waiter: "
                                                + new Integer(mOrderDetails.mWaiterId).toString()
                                                + " ("
                                                + mOrderDetails.mWaiterName
                                                + " )"
                                                );
        mOrderHeaderContainer.add(mLabelWaiterDetails);

        /***************************************/
        // Blank Lines
        mOrderHeaderContainer.add(new JLabel());
        mOrderHeaderContainer.add(new JLabel());

    /***************************************/
            add(mOrderHeaderContainer, BorderLayout.CENTER);


  /*******************************************/
  setTitle("Reports");
  setModalityType(ModalityType.MODELESS);
  setDefaultCloseOperation(DISPOSE_ON_CLOSE);
  setResizable(true);
  setMinimumSize(new Dimension(100, 400));
  makeDialogFullScreen(this);
  setLocationRelativeTo(null);
  }
}