K
Kaiser Karlos
Gast
nommal Ich
warum funkt die repaint() Anweißung nicht wenn ich die Methode "ZeichnungAktualisieren()" aufrufe?
Es funktioniert wenn ichs ins paintComponent selber schreibe allerdings muss ich nur selten den Jframe aktualisieren dass das unötige Belastung wäre und mein Programm verlangsamen würde.
danke schommal
warum funkt die repaint() Anweißung nicht wenn ich die Methode "ZeichnungAktualisieren()" aufrufe?
Es funktioniert wenn ichs ins paintComponent selber schreibe allerdings muss ich nur selten den Jframe aktualisieren dass das unötige Belastung wäre und mein Programm verlangsamen würde.
Code:
package schiffeversenken;
import javax.swing.*;
import java.awt.Graphics;
import java.awt.*;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.*;
/**
*
* @author user
*/
public class zeichneWelt extends JPanel {
private JFrame Jframe;
Graphics g;
String title = "src/Grafiken/master.jpg";
BufferedImage bild; //hier noch die arrays deklarieren
static int zeichneSchiff[][]; //jedesmal bei veränderungen hier aktualisieren
//dann mit repaint() des ganze aufm JFrane aktualisieren
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
System.out.println( this.zeichneSchiff[1][1]+" im paintComponent");
zeicheneHintergrund(g); //ab hier alles was es zum zeichnen gibt
zeichneSchiff Schiff = new zeichneSchiff(); //Objekt für Abbildung von Schiffen
Schiff.zeichne(g, zeichneSchiff); //zeichneSchiff wir array: schiffe[][] übergeben
//alles jedesmal in 2 Dimensionale arrays stecken :)
}
protected void zeicheneHintergrund(Graphics g){
g.drawImage(bild,0,20,this);
System.out.println("x: "+bild.getWidth(this));
}
public zeichneWelt(){ //Konstruktor ; Läd Hintergrundbild
try{
bild = ImageIO.read(new File(title));
}catch(IOException ioe){
ioe.printStackTrace();
}
//this.zeichneSchiff = new int[6][4];
}
public static void main() { //main läd JFrame
//String []args
JFrame f = new JFrame();
f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE);
f.setSize(500, 700);
f.setContentPane(new zeichneWelt() );
f.setVisible(true);
}
protected void ZeichnungAktualisieren() {
repaint();
}
}