1

グリッドとJPanelを含むJFrameを使用した簡単なゲームを書いています。
これが私の擬似コードです:

void MyJframeConstructor()
{
  // some basic bootstrap logic
  // calling repaint to draw grid
  repaint();

  // Grid is drawn fine.
  // Showing user a confirm dialog box on which I add below JPanel.

  if(confirmed)
  {
   // GameInfoPanel extends JPanel.
    infoPanel = new GameInfoPanel(new FlowLayout(FlowLayout.LEFT));
    infoPanel.setPreferredSize(new Dimension(400, 100));
    infoPanel.setLocation(500, 50);
    this.add(infoPanel);
    infoPanel.validate();      
  }
}

ここでの私の問題は、JFrameまたはウィンドウが480 x 680
であるということです。この中で、480x480の領域にグリッドを描画しています。
その下では、JPanelを500,50に配置し、寸法を400、100にします。
ただし、このコードを実行すると、ユーザーが[OK]で確認すると、JPanelはJFrame全体を埋めます。
アプリの存続期間中、パネルをその場所に配置し、サイズを一定に保つにはどうすればよいですか?
どんな助けでも大歓迎です、そして前もって感謝します。

4

1 に答える 1

4

この中で、480x480の領域にグリッドを描画しています。

  • JPanelのPreferredSizeをオーバーライドする

  • JFrame.pack()次に、JFrame.setVisible(true)最後のコード行として呼び出します

  • InitialThreadを読む必要があります

  • JPanel( )が1つしかない場合は、FlowLayoutではなくfeでbuilt_inJPanel filling entire JFrame使用しますBorderLayoutJFramemyFrame.add(infoPanel, BorderLayout.CENTER)

  • JFrameこれObjectをローカル変数として拡張しないでください

于 2012-12-16T09:22:12.610 に答える