我正在慢慢学习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,但对我来说,这可能会导致空指针异常。
我在 Board 类中有构造板方法,里面有一个带有 super() 的构造函数 Board()。
public Board(){
super();
}
然后我有一个主类,它只创建一个 Board 类型的对象并调用我的方法。我搜索了所有我知道要看的地方,到处都说我所拥有的是画线的方法。然后我发现其他有空指针异常的人要么没有得到解决方案,要么没有得到适合我的解决方案。我试过 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();
}
}