0
現在、Java GUIでTic Tac Toeのシンプルなバージョンをコーディングしています。私は競技場の設定に問題があります。ボタンは、プレーヤーが「X」または「O」のいずれかを押すことができる正方形を表します。Tic Tac Toe Java GUIセットアッププレイフィールド
//Playing field class
import java.awt.*;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Color;
class TicTacToeFrame extends JFrame {
private JFrame game = new JFrame("Tic Tac Toe");
private JPanel pane1, pane2, pane3;
Button button = new Button();
public TicTacToeFrame() {
game.setSize(300, 300);
game.setVisible(true);
game.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pane1 = new JPanel();
pane2 = new JPanel();
pane3 = new JPanel();
add(pane1, BorderLayout.NORTH);
add(pane2, BorderLayout.CENTER);
add(pane3, BorderLayout.SOUTH);
pane1.setBackground(Color.white);
pane2.setBackground(Color.white);
pane3.setBackground(Color.white);
placeButton();
}
public void placeButton() {
for (int i = 1; i < 10; i++) {
if (i < 4) {
pane1.add(button.getButton());
}
else if (3 < i && i < 7) {
pane2.add(button.getButton());
}
else if (6 < i && i < 10) {
pane3.add(button.getButton());
}
}
}
}
//Button class
import javax.swing.JButton;
import java.awt.event.ActionListener;
public class Button {
private JButton button;
private int number = 0;
private String player;
public Button() {
button = new JButton();
}
public String getPlayer() {
return player;
}
public JButton getButton() {
return button;
}
public void changePlayer() {
for (int i = 1; i < 10; i++) {
if (number % 2 == 0) {
player = "X";
}
else {
player = "O";
}
number++;
}
}
}
私がメインでプログラムを実行すると、フレームを受信すると、正方形を表すはずのボタンが配置されません。助けて?
あなたが追加した後のペインを追加フレームを再描画してみてください。 –
'getButton()'を呼び出すだけで、グリッド全体に** ** ** ** JButtonを追加するだけです。その1つのボタンを返します。それを必要とする各スポットに対して新しいJButtonを作成する必要がありますが、これは実行していません。 –
@HovercraftFullOfEels * "JButtonをグリッド全体に1つだけ追加しています" * Hombreを閉じるが、sombreroはありません。 'Button Button = new Button();' OP: 'JButton button = new JButton();'(ただし、9つのボタンを使用します。 **編集:** D'Oh! OPに 'JButton'を拡張したクラス' Button'があることを認識していませんでした。 :P OP:カスタムクラスに既存のクラスの名前を使用しないもう一つの理由。 –