Geo*_*off 5 java eclipse repaint
我一直在做一个刽子手游戏来自学Java.我已进入框架的主体.
this.add(new PaintSurface(), BorderLayout.CENTER);
Run Code Online (Sandbox Code Playgroud)
我有:
private class PaintSurface extends JComponent {
Shape found = null;
public PaintSurface(){
JOptionPane.showMessageDialog(null, "Repainting");
Shape s;
msgbox("LL: " + intLivesLost);
switch(intLivesLost){
//draw the Hanged man
case 10:
//Face + KILL
case 9:
//2nd Arm
case 8:
//1st Arm
case 7:
//2nd Leg
case 6:
//1st Leg
case 5:
//Body
case 4:
//Head
shapes.add(s);
case 3:
//Horizontal Bar
s = new Line2D.Float(100, 450, 250, 450);
shapes.add(s);
//Rope
s = new Line2D.Float(250, 450, 250, 500);
shapes.add(s);
case 2:
//Vertical Bar
s = new Line2D.Float(100, 450, 100, 670);
shapes.add(s);
case 1:
//Stand
s = new Line2D.Float(40, 670, 460, 670);
shapes.add(s);
break;
default:
break;
}
}
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2.setStroke(new BasicStroke(4));
g2.setColor(Color.BLACK);
for (Shape count : shapes){
g2.draw(count);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用:
repaint();
Run Code Online (Sandbox Code Playgroud)
...每次更新框架时,整个项目,新信猜测,错误猜测,新游戏.
当应用程序首次运行JOptionPane.showMessageDialog(null,"重绘")时; 弹出,所以我知道它被称为.在那之后,"重新绘制"弹出不再出现,所以我知道重绘(); 电话什么也没做.我知道代码正在进入repaint(); 调用,因为我在它们之前和之后放置了一个JOptionPane.showMessageDialog.
我试过没有运气:
移除所有();
重新验证();
的getContentPane()重绘();
任何提示和技巧都将非常感激.
编辑:我按照你的推荐尝试了它,把代码放在"绘画"中,认为这是我以前的方式,它仍然无法正常工作.谢谢.
| 归档时间: |
|
| 查看次数: |
144 次 |
| 最近记录: |