0

固定サイズ400x400のJFrame内にJPanelを配置できるようにしたいと思います。

また、その周りに20px幅の境界線を配置したいと思います。

主な問題は、次のコードがサイズを固定しないことです。 `JScrollPane runningAni = new JScrollPane(new views.cRunningAnimation(model));

    runningAni.setMaximumSize(new Dimension(400,400));

    this.setSize(new Dimension(600,600));
    this.add(runningAni,BorderLayout.CENTER);`

これを行うとき、runningAniパネルはフレーム全体にまたがって伸びます。

    public void paint(Graphics g) {

    this.setBackground(new Color(0,255,0));
    }

私のフルフレームはJPanelだけでなく、それ自体を緑色にペイントしているので、これを知っています(上記のペイントコードはフレームではなく私のパネル用です)

パネルを作成して、常に同じサイズを維持し、その周囲に常に20pxの色付きの境界線があるようにするにはどうすればよいですか?

4

4 に答える 4

3

BorderLayoutサイズを無視します。LayoutManagerサイズを固定サイズに設定できるか、設定されたサイズに対応できるように設定する必要があります。これを可能にするさまざまなレイアウトマネージャーがあります(たとえばGrindBagLayout 、レイアウトマネージャーがまったくないかまったくない)。使いにくいものもあります(例GridBagLayout)。何を使用するかは、レイアウトの残りの部分によって異なります。

おそらく、カスタムパネルを含むレイアウトパネルを使用できます。レイアウトパネルには適切なレイアウトマネージャーが必要であり、の中央に配置できますBorderLayout。これは、既存のレイアウトコードにほとんど変更がないことを意味します。

の要点はBorderLayout、中心を中心コンポーネントで埋めることです。

于 2013-03-25T16:37:44.810 に答える
1

パネルの色を設定するためにpaint()メソッドをオーバーライドしないでください。使用する:

panel.setBackground(...);

パネルを作成するとき。

Jpanelの周囲に境界線を設定するにはどうすればよいですか?

境界線の使用方法を参照してください。

于 2013-03-25T17:04:14.197 に答える
1

レイアウトをnullに設定するだけで、JPanelを追加するクラスになります。次に、setBounds()メソッドを使用して、場所とサイズを設定します。

例えば:

public class Main extends JFrame{

      YourPanelClass panel = new YourPanelClass();

      public Main(){

           // I didn't want to put all the, everyday JFrame methods...

           setLayout(null);

           /*
               First two coordinates indicate the location of JPanel inside JFrame.
               The seconds set of coordinates set the size of your JPanel.
               (The first two coordinates, 0 and 0, tell the JPanel to start at the
                   top left of your JFrame.)
           */
           panel.setBounds(0, 0, 100, 100);

           add(panel);
      }
}

そして、 paintComponent()メソッドを使用することを強くお勧めします。

例:(明らかに、これをJPanelのクラスに入れます。)

public void paintComponent(Graphics g){
     super.paintComponent(g); // don't forget this if you are going to use this method.

     //Basically this makes your JPanel's background green(I did it this way because I like doing it this way better.)
     g.setColor(new Color(0, 255, 0));
     g.fillRect(0, 0, getWidth(), getHeight());
}

これが役に立った場合は、親指を立てることを忘れないでください!

于 2014-11-03T07:27:21.870 に答える
-1
setPreferredSize()
setMinimumSize()
setMaximumSize()

トリックを行う必要があります

于 2013-03-25T16:36:57.847 に答える