Java JFrame';椭圆被放置在矩形的后面

Java JFrame';椭圆被放置在矩形的后面,java,jframe,jpanel,rectangles,Java,Jframe,Jpanel,Rectangles,所以,我正在为我的计算机编程主题制作一个Tic-Tac-Toe游戏。我的问题是,当我在JFrame中添加一个椭圆形时,它会被放置在游戏板的瓷砖后面(它们是矩形) (请注意,我已经为矩形和椭圆形添加了一个额外的参数来选择其颜色) 所以我的问题是: 有没有一种简单的方法来更改对象的颜色? 如何将椭圆放置在矩形顶部 import javax.swing.*; import java.awt.*; import java.util.Scanner; public class GameBoard{

所以,我正在为我的计算机编程主题制作一个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); 
   }
}
import javax.swing.*;
导入java.awt.*;
导入java.util.Scanner;
公共类游戏板{
静态JFrame f=新JFrame(“Tic Tac Toe”);
静态JPanel win=newjpanel();
静态矩形re[][]=新矩形[3][3];
静态椭圆形播放器1[][]=新椭圆形[9][9];
静态椭圆形播放器2[][]=新椭圆形[9][9];
公共静态void main(字符串参数[]){
f、 挫折(50、50、256、279);
f、 setLayout(空);
f、 setVisible(真);
f、 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
添加(新矩形(0,0,80,80,1));
添加(新矩形(81,0,80,80,0));
添加(新矩形(162,0,80,80,1));
添加(新矩形(0,81,80,80,0));
添加(新矩形(81,81,80,80,1));
添加(新矩形(162,81,80,80,0));
添加(新矩形(0162,80,80,1));
添加(新矩形(81162,80,80,0));
添加(新矩形(162162,80,80,1));
f、 getContentPane().add(win);
f、 重新油漆();
用户输入();
}   
静态int p1Count=0;
静态整数p2Count=0;
静态void userInput(){
int uImpCalc=1;
扫描仪s=新的扫描仪(System.in);

while(uImpCalc)你可以创建一个按钮或标签的矩阵,当用户点击它们时,根据用户添加一个十字或椭圆形的图像。谢谢,伙计,但是我被要求输入一个坐标,即“1 1”,并在带有该坐标的矩形中放置一个绿色或蓝色的椭圆形