关于Java中图形的主要困惑

时间:2015-11-24 12:41:29

标签: java swing oop graphics

我一般都是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;
    });

0 个答案:

没有答案