TheBigPJ wrote:
> My problem is that it wont display the given image, can anyone tell me
> what thing ive done wrong or missed. I changed something and I cant
> remember what..... its going to be one thing that needs to be changed
> back :S
>
> It only displays a small white box inside a JFrame that is the colour
> I want it to be.
>
> theCAS_Engine works perfectly. Like I said I changed something last
> night and forgot to run it to check it worked and now it doesnt
> work :S
>
> Thanks,
> Peter
> ------------------------------------------
> im****t javax.swing.*;
> im****t java.awt.*;
> im****t java.util.*;
> im****t java.awt.event.MouseListener;
> im****t java.awt.event.MouseEvent;
>
> public class CAS_Interface extends JPanel implements MouseListener{
>
> CAS_Engine theCAS_Engine;
> boolean running;
>
> public static void main(String[] args)
> {
> JFrame mainWindow = new JFrame("CASAT - Connect a Square on a
> Tesseract (Multiplayer)");
>
> JPanel content = new JPanel();
> content.add(new CAS_Interface(), BorderLayout.WEST);
>
> mainWindow.setContentPane(content);
>
> mainWindow.getContentPane().setBackground(new Color(176,196,222));
> mainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
> mainWindow.setLocationRelativeTo(null);
> mainWindow.pack();
> mainWindow.setVisible(true);
> }
>
> public void CAS_Interface()
> {
> setPreferredSize(new Dimension(600,471));
> setBackground(new Color(173,216,230));
> addMouseListener(this);
> theCAS_Engine = new CAS_Engine();
> running = true;
> repaint();
> }
>
> public void paintComponent(Graphics g)
> {
> super.paintComponent(g);
> if (running) {
> drawScreen((Graphics2D) g);
> }
> }
>
> public void drawScreen(Graphics2D g)
> {
> //Uses the game board as defined in the program specification
> Image image = Toolkit.getDefaultToolkit().getImage("./map.png");
> g.drawImage(image, 0,0,this);
>
> // Creates the custom buttons: "New Game", "Play AI", Enter Names,
> // Change Colours and Leave Game
>
> // Start of custom buttons
> g.setColor(new Color(0,191,255));
> g.fillRect(450, 25, 150, 30);
> g.fillRect(450, 405, 150, 30);
> g.fillRect(450, 80, 150, 30);
> g.fillRect(450, 135, 150, 30);
> g.fillRect(450, 190, 150, 30);
>
> g.setColor(new Color(50,241,255));
> g.drawRect(450, 25, 150, 30);
> g.drawRect(450, 80, 150, 30);
> g.drawRect(450, 135, 150, 30);
> g.drawRect(450, 190, 150, 30);
> g.drawRect(450, 405, 150, 30);
>
> g.setColor(new Color(0,0,205));
> g.setFont(new Font("Times New Roman",Font.BOLD, 16));
> g.drawString("New Game", 460, 45);
> g.drawString("Play AI", 460, 100);
> g.drawString("Enter Names", 460, 155);
> g.drawString("Change Colours", 460, 210);
> g.drawString("Leave Game", 460, 426);
> //End of custom buttons
>
>
> //This checks to see what moves have been made and by who
> //start of procedure
> for(int i = 1; i<17;i++)
> {
> System.out.println(theCAS_Engine.getSpotInformation(i));
> if(! (theCAS_Engine.getSpotInformation(i) == 0))
> {
> //Find the colour of the player who choose that spot
>
>
g.setColor(theCAS_Engine.getPlayersColor(theCAS_Engine.getSpotInformation(i)
> == 1 ));
>
> //Fill in the appropiate spot
> if(i == 1)
> {
> g.fillOval(2,62,12,12);
> }
> else if(i == 2)
> {
> g.fillOval(250,4,12,12);
> }
> else if(i == 3)
> {
> g.fillOval(416,121,12,12);
> }
> else if(i == 4)
> {
> g.fillOval(124,213,12,12);
> }
> else if(i == 5)
> {
> g.fillOval(102,139,12,12);
> }
> else if(i == 6)
> {
> g.fillOval(223,106,12,12);
> }
> else if(i == 7)
> {
> g.fillOval(297,172,12,12);
> }
> else if(i == 8)
> {
> g.fillOval(166,213,12,12);
> }
> else if(i == 9)
> {
> g.fillOval(106,248,12,12);
> }
> else if(i == 10)
> {
> g.fillOval(222,212,12,12);
> }
> else if(i == 11)
> {
> g.fillOval(290,286,12,12);
> }
> else if(i == 12)
> {
> g.fillOval(168,329,12,12);
> }
> else if(i == 13)
> {
> g.fillOval(31,284,12,12);
> }
> else if(i == 14)
> {
> g.fillOval(245,214,12,12);
> }
> else if(i == 15)
> {
> g.fillOval(380,354,12,12);
> }
> else if(i == 16)
> {
> g.fillOval(137,455,12,12);
> }
> }
> }
>
> //If the game is finished then display the winner
>
> //Start of game Finished
> if(theCAS_Engine.getisTheGameFinished())
> {
> //Place a transparent blanket over the board
> AlphaComposite ac =
> AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.5f);
> g.setComposite(ac);
> g.setColor(Color.blue);
> g.fillRect(0,0,432,471);
>
> //Turn the transparency off for the displaying of the winner
> information
> ac = AlphaComposite.getInstance(AlphaComposite.SRC_OVER,1.0f);
> g.setComposite(ac);
> g.setColor(Color.green);
> g.setFont(new Font("Times New Roman",Font.BOLD, 32));
> g.drawString("Game Over", 150, 200);
>
> //Check who won and display there name in there colour
> switch(theCAS_Engine.checkWon())
> {
> case 0:
> g.drawString("No Winner!", 145, 250);
> break;
> case 1:
> g.setColor(theCAS_Engine.getPlayersColor(true));
> g.drawString(theCAS_Engine.getPlayersName(true) + " Wins!", 130,
> 250);
> break;
> case 2:
> g.setColor(theCAS_Engine.getPlayersColor(false));
> //Check if player 2 was the AI
> if(theCAS_Engine.getisAIPlaying())
> {
> g.drawString("AI WINS!!!", 130, 250);
> }
> else
> {
> g.drawString(theCAS_Engine.getPlayersName(false) + " Wins!",
> 130, 250);
> }
> }
> //End of Game Finished
> }
>
> }
Since all the code isn't here we can't compile it so it is very
difficult to know what is actually causing your problem. I can tell you
this, that calling Toolkit.getImage() in the paintComponent() method is
not a good idea. Whether that can cause it to not draw I don't know.
Speaking of that, createImage() is preferred over getImage() as
getImage() causes the image to be cached. If you are using a modern
compiler, 1.4 or later, then you should use ImageIO class methods to
load images.
I do have a question, why do you create a JPanel to add this JPanel to
and set that panel as the content pane rather than just adding this
JPanel to the JFrame?
--
Knute Johnson
email s/nospam/linux/
--
Posted via NewsDemon.com - Premium Uncensored Newsgroup Service
------->>>>>>http://www.NewsDemon.com<<<<<<------
Unlimited Access, Anonymous Accounts, Uncensored Broadband Access


|