JFrame's Oval находится за прямоугольниками JAVA - PullRequest
0 голосов
/ 30 мая 2018

Итак, я создаю игру Tic Tac Toe для моей темы по компьютерному программированию.Моя проблема в том, что когда я добавляю овал в свой JFrame, он помещается за мои плитки игрового поля (это прямоугольники).

(Имейте в виду, я добавил дополнительный параметр в прямоугольник и овал)выбрать его цвет).

Итак, мои вопросы: есть ли простой способ изменить цвет объекта?Как я могу поместить овалы поверх прямоугольников?

import javax.swing.*;
import java.awt.*;
import java.util.Scanner;

public class GameBoard{
   static JFrame f = new JFrame("Tic Tac Toe");
   static JPanel win = new JPanel();
   static Rectangle re[][] = new Rectangle[3][3];

   static Oval player1[][] = new Oval[9][9];
   static Oval player2[][] = new Oval[9][9];  

   public static void main(String args[]){
      f.setBounds(50, 50, 256, 279);
      f.setLayout(null);
      f.setVisible(true);
      f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


      win.add(new Rectangle(0,0,80,80,1));
      win.add(new Rectangle(81,0,80,80,0));     
      win.add(new Rectangle(162,0,80,80,1));

      win.add(new Rectangle(0,81,80,80,0));
      win.add(new Rectangle(81,81,80,80,1));
      win.add(new Rectangle(162,81,80,80,0));

      win.add(new Rectangle(0,162,80,80,1));
      win.add(new Rectangle(81,162,80,80,0));
      win.add(new Rectangle(162,162,80,80,1));
      f.getContentPane().add(win);
      f.repaint();

      userInput();

   }   

   static int p1Count = 0;
   static int p2Count = 0;

   static void userInput(){
      int uImpCalc = 1; 
      Scanner s = new Scanner(System.in);
      while(uImpCalc <= 9){

         int x = s.nextInt();
         int y = s.nextInt();
         if(x <= 3 && x > 0){
            if(y <= 3 && y >0){
               int rX = x*80;
               int rY = y*80;
               if(uImpCalc%2 == 0){
                  player1[p1Count][p1Count] = new Oval(rY, rX, 80, 80, 2); 
                  win.add(player1[p1Count][p1Count]);
                  p1Count++;
               }else{
                  player2[p2Count][p2Count] = new Oval(rY, rX, 80, 80, 1); 
                  win.add(player2[p2Count][p2Count]);
                  p2Count++;
               }
               win.repaint();

               System.out.println("Entering '"+x+", "+y+"'");
               uImpCalc++;

            }else{
               System.out.println("Invalid Y: "+y);
            }

         }else{
            System.out.println("Invalid X: "+x);
         }

      }
     System.out.println("Game Over");
      System.exit(0); 
   }
}

Очень ценится!

...