ok im trying to create basically a tic tac toe game in java. However im
having a bit of trouble with the basics, being new to java and all.
What ive done is create a class called XOPanel, that creates a array of
objects called XOSquare. XOPanel creates a window and what i want it to
do is draw a 3x3 gris on this window and fill each of these spaces with
its coresponding XOSquare. Each XOSquare is just a JPanel i want
created so that later on an X or O will be drawn to it. However right
now my window pops up, but im unsure how to get the array to draw, or
how to fill each position with its XOSquare. Heres what i ahve so far:
XOPanel:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class XOPanel extends JPanel implements MouseListener {
private int squareSize;
private XOSquare[][] boardArray;
private int width = 400, height = 400;
public XOPanel(){
boardArray = new XOSquare[3][3];
setSize(width, height);
}
private void paintComponet(Graphics g){
super.paintComponent(g);
int paneHeight = this.getHeight();
int paneWidth = this.getWidth();
if (paneHeight < paneWidth)
squareSize = paneHeight / 3;
else
squareSize = paneWidth / 3;
for (int row=0; row<3; row++){
for (int col=0; col<3; col++){
g.drawRect(col*squareSize, row*squareSize, squareSize,
squareSize);
}
}
}
public static void main(String[] args){
JFrame f = new JFrame("Test");
XOPanel xoPanel = new XOPanel();
f.getContentPane().add(xoPanel);
f.setSize(xoPanel.width, xoPanel.height);
f.setVisible(true);
f.addWindowListener
( new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0);
}
}
);
}
XOSquare:
import java.awt.Rectangle;
public class XOSquare extends Rectangle {
public XOSquare(int width, int height){
this.setSize(width, height);
}
}
im hoping you guys can help.
Thomas Weidenfeller - 30 Oct 2006 09:59 GMT
> XOPanel creates a window and what i want it to
> do is draw a 3x3 gris on this window and fill each of these spaces with
> its coresponding XOSquare. Each XOSquare is just a JPanel
Here you go likely wrong.
With JPanel one either uses
1) JPanel + Java 2D graph drawing
or
2) JPanel + LayoutManager + Components (incl. additional JPanels)
For graphics one typically uses option 1): Completely drawing the
contents of the JPanel with the Java 2D API, instead of placing
additional panels on the main JPanel.
Mixing option 1) and 2) on the same JPanel is often not a good idea. You
easily end up in all sorts of unpleasant hacks.
/Thomas

Signature
The comp.lang.java.gui FAQ:
http://gd.tuwien.ac.at/faqs/faqs-hierarchy/comp/comp.lang.java.gui/
ftp://ftp.cs.uu.nl/pub/NEWS.ANSWERS/computer-lang/java/gui/faq