【发布时间】:2015-07-20 10:41:03
【问题描述】:
我正在尝试在 Java 中使用 awt 制作井字游戏,但我遇到了一些问题。实际上,这是一项正在进行的工作,其中一些部分还没有完成。
代码如下:
import java.awt.*;
import java.awt.event.*;
class tictactoe extends Frame implements ActionListener
{
public Canvas c1,c2,c3,c4,c5,c6,c7,c8,c9;
Panel p;
Button b;
tictactoe()
{
setLayout(new BorderLayout());
b=new Button("New Game");
add(b,BorderLayout.SOUTH); // Button to reset the game
p=new Panel(new GridLayout(3,3,5,5)); // Canvas objects in GridLayout
c1=new MyCanvas();
c2=new MyCanvas();
c3=new MyCanvas();
c4=new MyCanvas();
c5=new MyCanvas();
c6=new MyCanvas();
c7=new MyCanvas();
c8=new MyCanvas();
c9=new MyCanvas();
p.add(c1);p.add(c2);p.add(c3);
p.add(c4);p.add(c5);p.add(c6);
p.add(c7);p.add(c8);p.add(c9);
add(p);
setBounds(400,100,310,310);
setResizable(false);
setVisible(true);
}
public static void main(String [] args)
{
new tictactoe();
}
public void actionPerformed(ActionEvent ae)
{
// Work in progress
}
}
class MyCanvas extends Canvas
{
public void paint(Graphics g)
{
setBackground(Color.GREEN);
g.drawLine(0,0,120,100); // This is the part where I am facing the problem
}
}
问题是我想在单个Canvas 元素中调用drawline(),但drawLine() 方法在所有九个画布元素中画了一条线。
【问题讨论】:
-
每个画布实例的类型都是
MyCanvas,它的paint方法绘制了您描述的线条。