私は現在Javaプロジェクトをコーディングしていますが、JPanelであるいくつかのタイルを含むJPanelというボードが必要です。それらを適切なサイズのレイアウトに追加します。ボタンはJFrameのgrouplayoutで、最初のタイルは適切なサイズになり、他は1pの幅と50pの高さや1 * 1pのようなばかげたサイズになります。GridLayout preferredreedのサイズを考慮しないパネルの追加
私は何かが間違っているとは思わないが、すべてがJFrameに追加され、正しい行数と行数で正しいレイアウトに追加され、サイズはTileクラスで50 * 50pに設定されます。ここでは、グラフィック設定を含むいくつかのコードスニペットは、特にコンストラクタは、以下のとおりです。
Tile.java:
class Case extends JPanel
{
private int _color;
private boolean _star;
private Case _casePere;
private ArrayList<Case> _fils;
private int _x,_y;
public Case(int x, int y)
{
_color = 0;
_star = false;
_casePere = null;
_fils = new ArrayList<Case>();
_x = x;
_y = y;
setPreferredSize(new Dimension(50,50));
setMinimumSize(new Dimension(50,50));
setBackground(Color.WHITE);
}
Board.java:あなたがしたい場合
class Board extends JPanel{
private Case[][] _grid;
private Case[] _starsp1;
private Case[] _starsp2;
// constructeur
public Board(int nbStars, int length){
_grid = new Case[length][length];
_starsp1 = new Case[nbStars];
_starsp2 = new Case[nbStars];
//graphisme
Dimension d = new Dimension(50*length, length*50);
setBackground(Color.BLACK);
setPreferredSize(d);
GridLayout layout = new GridLayout(Constante.length, Constante.length,2 ,2);
setLayout(layout);
for(int y=0; y<length; ++y)
{
for(int x=0; x<length; ++x)
{
_grid[x][y] = new Case(x,y);
add(_grid[x][y]);
}
}
、私はいくつかのスニペットを追加することができますWindowクラスですが、Boardのほかに、他のコンポーネントには問題がありません。主に、いくつかのコンポーネントを追加してグループ化しています。私はJPanelのの1を上書き私の場合クラスでのgetXとのgetYをオーバーライドし、ちょっとダム問題を再度、答えてくれてありがとう
た:あなたは取締役会の描画が編集をどのように動作するかを見ることができるようにここでは、出力のスクリーンショットです
問題を示す適切な[mcve]を投稿してください。それは、ボードパネルとその子だけのフレームを作成することです。コードの最初の部分を取得してから、他のコンポーネントを追加します。 – camickr