繁体   English   中英

在Applet中不进行摆动

[英]Swing not Drawing in Applet

我必须为学校编写一款突破性游戏,但遇到了问题。 我需要绘制2D图形,但看不到它们。

这是我的小程序。 test()是一个JPanel,我将在下面链接。

public class Gamefield extends Applet{

test t;


@Override
public void init() {
    t = new test();
    setSize(1600, 900);

    Frame frame = (Frame)this.getParent().getParent();
    frame.setTitle("Breakout");



    add(t);
}
}

这是我的JPanel,我在其中调用repaint()。

public class test extends JPanel implements Runnable {



public test(){

    setSize(1600,900);


    Thread thread = new Thread(this);
    thread.start();
}

@Override
public void run() {
    while(true){
        System.out.println("a");
        try{
            repaint();
            Thread.sleep(1000/60);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

@Override
public void paintComponent(Graphics g) {
    System.out.println("draw");
    super.paintComponents(g);
    g.setColor(Color.BLACK);
    g.drawOval(500,500,100,100);
    g.fillRect(100,100,100,100);
}

}

我希望有人能帮助我。 我不知道该如何解决。

import java.awt.*;
import javax.swing.*;

public class GameField extends JApplet {

    @Override
    public void init() {
        // Applet is FlowLayout by default, which does not stretch components
        // let's use GridLayout instead
        setLayout(new GridLayout()); 
        add(new test());
    }
}

class test extends JPanel {

    @Override
    public void paintComponent(Graphics g) {
        System.out.println("draw");
        // super.paintComponents(g);  // WRONG method!  Broken paint chain
        super.paintComponent(g);
        g.setColor(Color.BLACK);
        g.drawOval(500, 500, 100, 100);
        g.fillRect(100, 100, 100, 100);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM