我一般都是Java和OOP编程的新手,所以如果你们能给我愚蠢的解释,我会很感激。我真的不明白Graphics对象和paintComponent的工作原理。
Simulation类的基本思想是它将执行以下操作。
1)为我的动画创建一个JFrame。
2)创建一个面板(我尝试使用Canvas,但人们告诉我不要那样做),这个面板适合我的JFrame,动画将我们绘制到这个面板。
3)根据'type'的值(以及我还没有编码的其他条件),它将设置并绘制(到Panel)相应动画的背景图片(图形)。 / p>
4)绘制背景图像后,我不能将它返回到Simulation类并在一个循环中修改它(背景图像),我的模拟在一个线程上运行(因此创建一个动画)。
5)动画结束后我希望模拟JFrame关闭(虽然我甚至不接近这个部分)。
我在这里看到的一切只是告诉我创建类InitSimGraphics并在其中包含paintComponent方法。我希望能够将我的线条/矩形等绘制到面板上,然后再继续使用它,在那里我可以修改它的一部分(也就是让粒子在屏幕上移动)。
我现在正在做的事情显然不起作用,我真的很新,所以请尽量放轻松。我认为一种不同的方法可能是最好的,因为这不起作用。
谢谢!
package comp4Pack;
import javax.swing.*;
import java.awt.*;
public class InitSimGraphics extends JPanel {
Graphics g;
private final int pwidth = 768, pheight = 432;
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawLine(0, 0, pwidth, pheight);
this.g = g;
}
public Graphics getGraphics(){
return g;
}
}
...
$(document).ready(function(){
//START of validate
$('#reply').validate({
rules:{
message:{
required: true,
},
},
submitHandler: function(form) {
var data = $("#reply").serialize();
$.ajax({
type:"POST",
url:"ajax/scripts/msg_crt.php",
data:data,
success:function(data){
alert("Loaded");
}
});
}
});
//END of validate
});
$(document).on('click','#send', function(){
if($('#replay').valid()){// <--- Here is my selector typo
$("#replay").submit(); // <--- Here is my selector typo
}
return false;
});