0

(ちなみに、私はコード自体に対する批判を求めているわけではありません。コードが非効率的であることはわかっています。さまざまなことをテストしているだけで、自分で学びたいと思っています。) 私はこのコードを実行していますが、実行できます。プログラムを実行しても、作成した が表示されない理由JFrameがわかりません。左上にプログラム名が表示されます (macちなみに、私は を使用しているので、これはプログラムが実行中であることを意味します) 約 3 ~ 5 秒間、その後終了します。エラーは表示されませんJFrame。どちらも表示されません。

import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class TicTacToe extends JFrame
{ 
    JPanel board= new JPanel();
    static boolean isXTurn = true;
    static boolean isXTopLeft = false;
    static boolean isOTopLeft = false;
    static boolean isXTopCenter = false;
    static boolean isOTopCenter = false;
    static boolean isXTopRight = false;
    static boolean isOTopRight = false;
    static boolean isXCenterLeft = false;
    static boolean isOCenterLeft = false;
    static boolean isXCenterCenter = false;
    static boolean isOCenterCenter = false;
    static boolean isXCenterRight = false;
    static boolean isOCenterRight = false;
    static boolean isXBottomLeft = false;
    static boolean isOBottomLeft = false;
    static boolean isXBottomCenter = false;
    static boolean isOBottomCenter = false;
    static boolean isXBottomRight = false;
    static boolean isOBottomRight = false;

    String letterTopLeft;
    String letterTopCenter;
    String letterTopRight;
    String letterCenterLeft;
    String letterCenterCenter;
    String letterCenterRight;
    String letterBottomLeft;
    String letterBottomCenter;
    String letterBottomRight;

public TicTacToe()
{   
    JButton btnTopLeft = new JButton(letterTopLeft);
    JButton btnTopCenter = new JButton(letterTopCenter);
    JButton btnTopRight = new JButton(letterTopRight);
    JButton btnCenterLeft = new JButton(letterCenterLeft);
    JButton btnCenterCenter = new JButton(letterCenterCenter);
    JButton btnCenterRight = new JButton(letterCenterRight);
    JButton btnBottomLeft = new JButton(letterBottomLeft);
    JButton btnBottomCenter = new JButton(letterBottomCenter);
    JButton btnBottomRight = new JButton(letterBottomRight);

    this.setLayout(null);

    btnTopLeft.setLayout(null);
    btnTopCenter.setLayout(null);
    btnTopRight.setLayout(null);
    btnCenterLeft.setLayout(null);
    btnCenterCenter.setLayout(null);
    btnCenterRight.setLayout(null);
    btnBottomLeft.setLayout(null);
    btnBottomCenter.setLayout(null);
    btnBottomRight.setLayout(null);

    btnTopLeft.setBounds(0, 0, 100, 100);
    btnTopCenter.setBounds(100, 0, 100, 100);
    btnTopRight.setBounds(200, 0, 100, 100);
    btnCenterLeft.setBounds(0, 100, 100, 100);
    btnCenterCenter.setBounds(100, 100, 100, 100);
    btnCenterRight.setBounds(200, 100, 100, 100);
    btnBottomLeft.setBounds(0, 200, 100, 100);
    btnBottomCenter.setBounds(100, 200, 100, 100);
    btnBottomRight.setBounds(200, 200, 100, 100);

    board.setBounds(0, 0, 300, 300);

    btnTopLeft.setPreferredSize(new Dimension(100,100));

    board.add(btnTopLeft);
    board.add(btnTopCenter);
    board.add(btnTopRight);
    board.add(btnCenterLeft);
    board.add(btnCenterCenter);
    board.add(btnCenterRight);
    board.add(btnBottomLeft);
    board.add(btnBottomCenter);
    board.add(btnBottomRight);



    setSize(300, 300);
    setBackground(Color.gray);
    setTitle("Tic-Tac-Toe");
    setLocationRelativeTo(null);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setVisible(true);
}

public static void main(String[] theory)
{

}
 }
4

3 に答える 3

8

2 つの問題があります。

  • 受け取ったコメントに記載されているように、メイン メソッドは空です。そこにある提案に従ってください。

  • ボード JPanel は JFrame に関連付けられていません。コンストラクター メソッドの最後に次の行を追加します。

    this.add (board);
    
于 2012-09-18T01:58:14.497 に答える
1
jframename  jf =  new jframename();
jf.setVisible(true);
于 2012-09-18T03:44:47.337 に答える
1

メイン メソッドは次のようになります。

public static void main(String[] args) {
    new TicTacToe();
}

これにより、TicTacToe クラスの新しいインスタンスが呼び出され、コンストラクターが自動的に実行されます。

于 2012-09-18T01:58:40.360 に答える