为什么我的Java repaint()方法不起作用?
来源:爱站网时间:2021-09-16编辑:网友分享
Heyo,为了完成我的大学作业,我需要绘制一些图像并进行竞赛,但是即使在绘制图像(在本例中为图标)时,我也被困住了。我想画任何东西(这就是为什么我有drawLine ...
问题描述
Heyo,为了完成我的大学作业,我需要绘制一些图像并进行竞赛,但是即使在绘制图像(在本例中为图标)时,我也被困住了。我现在想在许多JPanel之一上画任何东西(这就是为什么我有drawLine方法,只是为了对其进行测试),但是我的repaint()方法没有调用我的paintComponent方法,为什么?
import java.awt.*;
import javax.swing.*;
import java.lang.Math;
public class Races{
private int numberOfRacers;
public Races(int numberOfRacers){
this.numberOfRacers = numberOfRacers;
JFrame frame = new JFrame("Races - Name Surname");
Icon icon = new ImageIcon("races.jpg");
frame.setLayout(new GridLayout(numberOfRacers, 1));
frame.setSize(icon.getIconWidth()*20, (icon.getIconWidth()*2)*numberOfRacers);
frame.setVisible(true);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
try{
Thread.sleep(1000); // Sleeping 1 sec
System.out.println("Sleeping one second for the user!");
}catch(InterruptedException ie){
System.out.println(ie);
}
for(int i = 0; i 0 && Integer.parseInt(args[0]) > 0 && Integer.parseInt(args[0])
提前感谢。
思路:
您添加了JPanel
所包含的innerRacer
而不是JPanel
所包含的innerRacer
。
更改:
frame.add(racer.panel);
至:
frame.add(racer);