我刚刚开始使用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
.....
}
我可以考虑解决什么问题?