皆さん、皆、私はGUIでJavaでチェッカーボードを描こうとしています。私はゲームボードの四角形の正方形のクラスを作成しました。gridlayoutを使ってパネルに項目を配置する
広場クラス:
import javax.swing.*;
import java.awt.*;
public class Square extends JPanel {
private int width = 80;
private int height = 80;
private int x,y;
private Color color;
public Square(int x, int y, Color color) {
this.x = x;
this.y = y;
this.color = color;
}
public void paint(Graphics graphics){
//setSize(new Dimension(width,height));
graphics.setColor(color);
graphics.drawRect(x,y, width,height);
graphics.fillRect(x,y,width,height);
}
}
は基本的に私はその後、正方形のオブジェクトのグリッドレイアウトパネルを追加し8で8のグリッドレイアウトでパネルを作りたかったのです。最初の行には赤、黒、赤、黒、赤、黒、赤、黒の四角が含まれ、2番目の行には黒、赤、黒、赤、黒、赤、黒、
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setPreferredSize(new Dimension(600,600));
JPanel panel = new JPanel(new GridLayout(8,8));
panel.setLayout(new GridLayout(8, 8));
panel.setBackground(Color.green);
Square redsqr1 = new Square(0,0, Color.RED);
Square blksqr1 = new Square(0,0, Color.BLACK);
Square redsqr2 = new Square(0,0, Color.RED);
Square blksqr2 = new Square(0,0, Color.BLACK);
Square redsqr3 = new Square(0,0, Color.RED);
Square blksqr3 = new Square(0,0, Color.BLACK);
Square redsqr4 = new Square(0,0, Color.RED);
Square blksqr4 = new Square(0,0, Color.BLACK);
Square redsqr5 = new Square(0,0, Color.RED);
Square blksqr5 = new Square(0,0, Color.BLACK);
Square redsqr6 = new Square(0,0, Color.RED);
Square blksqr6 = new Square(0,0, Color.BLACK);
Square redsqr7 = new Square(0,0, Color.RED);
Square blksqr7 = new Square(0,0, Color.BLACK);
Square redsqr8 = new Square(0,0, Color.RED);
Square blksqr8 = new Square(0,0, Color.BLACK);
panel.add(redsqr1);
panel.add(blksqr1);
panel.add(redsqr2);
panel.add(blksqr2);
panel.add(redsqr3);
panel.add(blksqr3);
panel.add(redsqr4);
panel.add(blksqr4);
panel.add(blksqr5);
panel.add(redsqr5);
panel.add(blksqr6);
panel.add(redsqr6);
panel.add(blksqr7);
panel.add(redsqr7);
panel.add(blksqr8);
panel.add(redsqr8);
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
}
私は出力が各正方形の間には大きなスペースを2列に配置された理由として出力
は興味があるだけ取得するプログラムを実行します。赤、黒、赤、黒、赤、黒、赤、黒の四角と二番目の行に黒、赤、黒、赤、黒を含むように最初の列を持つために、 、赤、黒、赤い四角。
ご協力いただきありがとうございます。
ご返信ありがとうございます。申し訳ありませんが私の遅い返信。私があなたの助けを受けた日にはうまくいきました。その後、ほぼ一週間後にjLayeredPaneとしてsqauresを実装しようとしましたが、私はそれをすべて使いこなしました。そしてsqauresはチェッカーボードをもう形成しません。ちょうど1つのsqaureが描かれています。 –
ようこそ。ハッピーは助けてくれました。 StackOverFlowでは、通常、回答が役立つときに、その答えの左側にある緑色のチェックマークをチェックして、質問の回答としてマークすることができます。 – STaefi
また、 'JLayeredPane'の場合は、[MCVE]のもう一つの質問があり、より早くより良いヘルプを受けることができます。 – STaefi