私はゆっくりとJavaを学んでおり、三目並べゲームを作成することにしました。私はボードを描くことを試みました、そして私は誰もがうまくいくと言った線を描く簡単な方法を見つけました。私はこれまでにこれを持っています:
public void constructBoard() {
JFrame frame = new JFrame("Tic Tac Toe");
frame.setSize(600,600);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.toFront();
Graphics lines = new Graphics();
lines = getGraphics();
lines.drawLine(100,100,300,500);
lines.setColor(Color.black);
// JLabel label = new JLabel ("Hello, World!", SwingConstants.CENTER);
// frame.add(label, BorderLayout.CENTER);
}
JFrameが表示され、タイトルは表示されますが、行がありません。私は複数のことを試しましたが、その中には次のような別の方法があります。
public void drawBoard(Graphics lines){
lines = getGraphics();
lines.drawLine(100,100,300,500);
lines.setColor(Color.black);
}
しかし、メインクラスでこれを呼び出すと、グラフィックスタイプと一致させるために括弧の間に何かが必要であることがわかります。私のコンパイラ(Eclipse)はnullを推奨していますが、私にとっては、nullポインタ例外が発生している可能性があります。
BoardクラスにコンストラクターBoardメソッドがあり、その中にsuper()を持つコンストラクターBoard()があります。
public Board(){
super();
}
次に、Board型のオブジェクトを作成し、メソッドを呼び出すメインクラスがあります。私は見ることがわかっているところならどこでも検索しました、そしてどこでも私が持っているものは線を引く方法であると言います。次に、nullポインターの例外がある他のユーザーは、解決策が得られていないか、自分に合った解決策が得られていません。私はDebugGraphicsを試し、すべてをメインクラスに入れました。lines= new Graphics(); しかし、それは私にエラーを与えます。助けてくれてありがとう。
フルボードクラス:
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Board extends JPanel {
public Board(){
super();
}
public void constructBoard() {
JFrame frame = new JFrame("Tic Tac Toe");
frame.setSize(600,600);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.toFront();
Graphics lines = new Graphics();
lines = getGraphics();
lines.drawLine(100,100,300,500);
lines.setColor(Color.black);
// JLabel label = new JLabel ("Hello, World!", SwingConstants.CENTER);
// frame.add(label, BorderLayout.CENTER);
}
}
フルメインクラス:
import java.awt.Color;
import java.awt.Graphics;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Board board = new Board();
board.constructBoard();
}
}