[英]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.