Я только начал разрабатывать бейсбольную игру с использованием 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
.....
}
Что я могу рассмотреть, чтобы решить эту проблему?