Hallo zusammen,
ich habe folgendes kleines Programm geschrieben (soll später für weiter Übungen herhalten), allerdings habe ich das Problem, das die paintComponents-Methode des GamePanels nie aufgerufen wird und somit der Text auch nicht erscheint. Bei anderen Versuchen hat es schon geklappt. Fehlermeldungen gibt es keine und beim vergleichen mit den anderen Programmen find ich auch keinen Fehler. Woran könnte es liegen?
Main.java:
Game.java
GamePanel.java
Ich habe es probeweise noch so versucht:
Das ist ähnlich dem Beispiel von Quaxli's Tutorial, allerdings passiert auch hier nichts.
Finde einfach den Fehler nicht.
Hoffe ihr könnt mir helfen!
Gruß
ich habe folgendes kleines Programm geschrieben (soll später für weiter Übungen herhalten), allerdings habe ich das Problem, das die paintComponents-Methode des GamePanels nie aufgerufen wird und somit der Text auch nicht erscheint. Bei anderen Versuchen hat es schon geklappt. Fehlermeldungen gibt es keine und beim vergleichen mit den anderen Programmen find ich auch keinen Fehler. Woran könnte es liegen?
Main.java:
Java:
package main;
public class Main {
public static void main(String[] args) {
new Game(200 , 200 , "JaRTest");
}
}
Game.java
Java:
package main;
import javax.swing.JFrame;
public class Game extends JFrame {
private static final long serialVersionUID = 1L;
private GamePanel gamePanel;
public Game(int width, int height, String title) {
super(title);
gamePanel = new GamePanel(width , height , this);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setResizable(false);
this.add(gamePanel);
this.pack();
this.setLocationRelativeTo(null);
this.setVisible(true);
Thread th = new Thread(gamePanel);
th.start();
}
}
GamePanel.java
Java:
package main;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JPanel;
public class GamePanel extends JPanel implements Runnable {
private static final long serialVersionUID = 1L;
private Game parent;
public GamePanel(int width, int height, Game parent) {
this.parent = parent;
this.setPreferredSize(new Dimension(width , height));
}
@Override
public void paintComponents(Graphics g) {
super.paintComponents(g);
g.drawString("Test" , 50 , 50);
}
@Override
public void run() {
while(parent.isVisible()) {
this.repaint();
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
Ich habe es probeweise noch so versucht:
Java:
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Test extends JPanel {
private static final long serialVersionUID = 1L;
public Test() {
JFrame frame = new JFrame("Test");
this.setPreferredSize(new Dimension(200 , 200));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.add(this);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
this.repaint();
}
@Override
public void paintComponents(Graphics g) {
super.paintComponents(g);
g.drawString("Test" , 50 , 50);
}
public static void main(String[] args) {
new Test();
}
}
Das ist ähnlich dem Beispiel von Quaxli's Tutorial, allerdings passiert auch hier nichts.
Finde einfach den Fehler nicht.
Hoffe ihr könnt mir helfen!
Gruß