-1

まず、この関連する質問を確認しましたが、機能させることができませんでした。

さて、私の質問:動的に描画されるJPanelを内部に含むJFrameがあります。さて、このパネルを描くと、画面全体を占め、端まで広がります。パネルでBoxLayout.Y_AXISを使用しました。

どのように私はこれを達成しますか...

スクリーンショットを添付しました:

私が得たもの: 私が得たもの

私が欲しいもの:

私が欲しいもの

編集:ソースコードの追加(最小化、実際ではない)

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);
  }
}
4

1 に答える 1

1
  • メソッドpack()に基づいて画面への出力をファイナライズします

    a) 使用済みLayoutManager

    b)Size/PrefereredSize

    Component現在の の階層内のすべての要素から返されます

  • BoxLayoutデフォルトSize/PrefereredSizeで受け入れますが、この属性は ごとに異なる実装になる可能性があることに注意してLayoutManagerください

于 2012-04-18T11:31:12.950 に答える