Я не уверен, как перекрасить JFrame по условиям в основной функции - PullRequest
0 голосов
/ 11 мая 2019

Я только начал разрабатывать бейсбольную игру с использованием Java. но мне стало трудно перекрашивать удар, мяч, доску. Я сделал доску по умолчанию, просто показывая слова S, B, O и круглую панель, заполненную черным. То, что я хочу сделать, это изменить цвет этого круга как обработку игрового симулятора в основном. Я не уверен, как перекрасить Jframe по условию основной функции

public class baseBallSimul extends JFrame{

   public baseBallSimul() {
       super("ContentPane Example");
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       setTitle("SBOExample");
       setSize(600,600);
       setBackground(Color.red);
       JPanel sbo=new JPanel();                
       Object[] sboList=new Object[11];


      //Todo initialize Jpanel as gridpanel(3,4) and fills it with CirclePanel 
      redraw(sboList,sbo);
      setVisible(true);
   }

И я создал класс CirclePanel для управления circlePanel

   class CirclePanel extends JPanel {
        int centerX, centerY, radius;
        Color circle_color=Color.red;
        public CirclePanel(int centerX, int centerY, int radius, Color c) {
            .......
            revalidate();
            repaint();
        }
        public void setCircle(int centerX, int centerY, int radius, Color c) {
            this.centerX = centerX;
            ......
            this.circle_color = c;
            revalidate();
            repaint();
        }


        protected void paintComponent(Graphics g) {

            super.paintComponent(g);
            g.setColor(this.circle_color);
            g.fillOval(centerX, centerY, radius*2, radius*2);
        }
    }

я хочу знать, как я могу заставить эту доску реагировать немедленно

   public static void main(String[] args) {
      JFrame frame=new baseBallSimul();
               .....
              //game starts
              .......
      //somcondition occured
      if(strike)
          //change one of S circle as red
               .....
   }

Что я могу рассмотреть, чтобы решить эту проблему?

...