Grafik ist nur ganz kurz sichtbar

Status
Nicht offen für weitere Antworten.

Vril

Bekanntes Mitglied
Habe da ein Programm das ein Balkendiagramm zeichnet. Die Werte für das Balkendiagramm werden über eine *.txt (Auswahl mittels FileDialog) eingelesen. Die Werte in der *.txt stehen untereinander, z.B.: 25, 50, usw.

Wenn ich das Programm jetzt starte und Daten einlese, erscheint das Balkendiagramm aber nur ganz kurz im Frame und verschwindet sofort wieder.

Hat jemand eine Idee an was das liegen könnte?
Code:
import java.awt.Color; 
import java.awt.FileDialog; 
import java.awt.Frame; 
import java.awt.Graphics; 
import java.awt.Menu; 
import java.awt.MenuBar; 
import java.awt.MenuItem; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.io.BufferedReader; 
import java.io.FileReader; 


public class Balkendiagramm3 extends Frame implements ActionListener 
{ 
    private MenuItem mLesen; 

    // Diese Werte stehen jetzt in einer Datei und sollen eingelesen werden: 
    // int[] data = {15, 8, 45, 74, 60, 20, 33}; 
    int[] data = new int[100]; 

    private void loadFile(String Name) 
    { 
        String buffer = null; 
        int i = 0; 

        try 
        { 
            BufferedReader br = new BufferedReader(new FileReader(Name)); 
            while ((buffer = br.readLine()) != null) 
            { 
                data[i++] = Integer.parseInt(buffer); 
                System.out.println(">> " + buffer); //debug 
            } 
            br.close(); 
        } 
        catch (Exception e) 
        { 
            e.printStackTrace(); 
        } 
    } 

    public Balkendiagramm3(String title) 
    { 
        super(title); 
        setSize(400, 300); 
        setLayout(null); 
        

        MenuBar mb = new MenuBar(); 
        Menu m = new Menu("Daten einlesen"); 
        mLesen = new MenuItem("Öffnen"); 
        m.add(mLesen); 
        mLesen.addActionListener(this); 
        mb.add(m); 
        setMenuBar(mb); 
        setVisible(true); 
    } 

    private void ShowFileSelectBox(int load_save) 
    { 
        FileDialog Dir = new FileDialog(this, "Filename?", load_save); 
        Dir.setDirectory("."); 
        Dir.setVisible(true); 
        String Name = Dir.getFile(); 
        if (Name != null) 
        { 
            if (load_save == FileDialog.LOAD) 
            { 
                loadFile(Dir.getDirectory() + Name); 
                balkendiagrammAnzeigen(data, getGraphics()); 
            } 
            else System.out.println("Sichern nicht implementiert"); 
        }  
    } 

    public void actionPerformed(ActionEvent event) 
    { 
        if (event.getSource() == mLesen) ShowFileSelectBox(FileDialog.LOAD); 
    } 


    private int sucheGroessterWert(int[] data) 
    { 
        int groessterWert = data[0]; 
        for (int zaehler = 0; zaehler < data.length; zaehler++) 
        { 
            if (data[zaehler] > groessterWert) groessterWert = data[zaehler]; 
        }  
        return groessterWert; 
    } 

    private int[] skaliereWerte(int[] data, int groessterWert, int yHoehe) 
    { 
        int[] newArray = new int[data.length]; 
        for (int zaehler = 0; zaehler < data.length; zaehler++) 
        { 
            newArray[zaehler] = data[zaehler] * yHoehe / groessterWert; 
        }  
        return newArray; 
    } 
    
        public void balkendiagrammAnzeigen(int[] data, Graphics g) 
    { 

        int groessterWert; 
        int[] skalierteDaten = new int[data.length]; 

        int yAnfang = 50; 
        int yHoehe = 200; 
        int xAnfang = 50; 
        int breite = 30; 
        int luecke = 10; 

        groessterWert = sucheGroessterWert(data); 
        skalierteDaten = skaliereWerte(data, groessterWert, yHoehe); 

        int x = xAnfang; 
        g.setColor(Color.red); 
        for (int zaehler = 0; zaehler < skalierteDaten.length; zaehler++) 
        { 
         g.fillRect(x, yAnfang + yHoehe - skalierteDaten[zaehler], breite,
         skalierteDaten[zaehler]); 
            x = x + breite + luecke; 
        } setVisible(true); 
    } 

   

    public static void main(String[] args) 
    { 
        new Balkendiagramm3("Balkendiagramm mit Daten einlesen"); 
    } 

}
 

thE_29

Top Contributor
Da nachher die paint Methode kommt und du alles aufs Graphics draufpinselst und das nicht in der public void paint() Methode!

Diese Methode überschreibt dir dann wieder alles mit den swing Komponenten => dein Bild ist weg!

Du musst die Funktion: balkendiagrammAnzeigen im public void paint() - Methode musst du überschreiben - aufrufen, sodass es bei jedem repaint() bleibt!
 

thE_29

Top Contributor
Du schreibst einfach die Funktion

Hab mich bisi verschrieben, Funktion heißt ja bisi anders :)

Code:
  public void paint(Graphics g)
  {
    super.paint(g); //das er auch brav die SwingObjekte und den rest zeichnet!
     //... dein Code oder der Aufruf von balkendiagrammAnzeigen(...)
   }

Die Funktion schreibst einfach irgndwo rein => somit ist sie überschrieben :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
fragenÜber(fragen); Turtle Grafik mit GUI (JFrame) Java Basics - Anfänger-Themen 3
D Grafik auf ein JPane ausgeben. Java Basics - Anfänger-Themen 6
J Konstruktoren und Grafik Java Basics - Anfänger-Themen 3
J "Tetris" - Problem bei der Grafik Java Basics - Anfänger-Themen 5
R Grafik in CSV einbinden Java Basics - Anfänger-Themen 2
S Suche aktuelles 2D Grafik Tutorial Java Basics - Anfänger-Themen 5
B Java -Turtle Grafik - kennt sich jemand damit aus? Java Basics - Anfänger-Themen 1
S Erste Schritte 2D Grafik Probleme mit KeyListener. Java Basics - Anfänger-Themen 18
D aufbauende Grafik Java Basics - Anfänger-Themen 13
8 Grafik erstellen Java Basics - Anfänger-Themen 6
Z Jump and Run - Grafik,Logik und GUI trennen Java Basics - Anfänger-Themen 4
G Bei Mouseover Grafik ändern, gutes Vorgehen gesucht Java Basics - Anfänger-Themen 0
V jab ich eclipse verrückt gemacht :D ? array Jpanel, Jlabel Grafik Fehler / Frage Java Basics - Anfänger-Themen 5
L Grafik Kollision Detektierung Java Basics - Anfänger-Themen 4
L OOP Grafik in Circle Objekt füllen Java Basics - Anfänger-Themen 3
S Grafik löschen Java Basics - Anfänger-Themen 10
C Grafik einsperren Java Basics - Anfänger-Themen 2
E Quelltext für Grafik verschwindet Java Basics - Anfänger-Themen 9
S Grafik verschwindet Java Basics - Anfänger-Themen 8
O Java Grafik-Programmierung? Java Basics - Anfänger-Themen 16
R 2D Grafik zeichnen Java Basics - Anfänger-Themen 4
B Grafik zeichnen Java Basics - Anfänger-Themen 25
S Teilstücke aus einer Grafik extrahieren Java Basics - Anfänger-Themen 2
Maxim6394 Grafik rotieren Java Basics - Anfänger-Themen 11
S Probleme mit JMenü und Grafik Java Basics - Anfänger-Themen 2
0 Grafik eine bestimmte Strecke laufen lassen Java Basics - Anfänger-Themen 6
R Hilfe bei erster Grafik Java Basics - Anfänger-Themen 2
A Gui Grafik Java Basics - Anfänger-Themen 4
maddin86 Grafik in .jar einbetten Java Basics - Anfänger-Themen 3
M import einer Grafik aus .jar funktioniert nicht Java Basics - Anfänger-Themen 6
M Grafik export in ein Jar File Java Basics - Anfänger-Themen 5
O Grafik in Frame laden Java Basics - Anfänger-Themen 9
H Diverse Dinge: Unstabile Grafik, Druckt Grafik nicht,Tooltipp verschwindet hinter Grafik Java Basics - Anfänger-Themen 3
H Grafik auf einem JPanel bewegen. Java Basics - Anfänger-Themen 7
F JLabel mit Grafik füllen Java Basics - Anfänger-Themen 3
K Grafik vergrößern/verkleinern Java Basics - Anfänger-Themen 3
F Zugriffsproblem - Funktion von Grafik trennen Java Basics - Anfänger-Themen 6
H HtmlUnit - Grafik speichern Java Basics - Anfänger-Themen 2
R Taste gedrückt = Grafik zeichen ?!? Java Basics - Anfänger-Themen 8
D PNG-Grafik erzeugen Java Basics - Anfänger-Themen 8
A Grafik erstellen und in Frame einfügen Java Basics - Anfänger-Themen 17
T Drucken von Listen bestehend aus Grafik und Text (unter swing) Java Basics - Anfänger-Themen 7
A grafik 2d Objekte mit der Maus bewegen Java Basics - Anfänger-Themen 4
A Grafik 2d Objekte farblich ausfüllen Java Basics - Anfänger-Themen 15
C Grafik einbinden Java Basics - Anfänger-Themen 11
F Größe von Grafik-Containern verschieben Java Basics - Anfänger-Themen 2
J Unterschied zwischen 2 Grafik Methoden Java Basics - Anfänger-Themen 2
M Grafik neuzeichnen Java Basics - Anfänger-Themen 8
M Grafik als Resource laden? Java Basics - Anfänger-Themen 2
G erste Schritte in Fenster und Grafik-Programmierung Java Basics - Anfänger-Themen 2
$ Inhalt von JPanel als Grafik? Java Basics - Anfänger-Themen 2
K Grafik beim JFrame oben Links ändern nur wie ? Java Basics - Anfänger-Themen 8
J Grafik Java Basics - Anfänger-Themen 3
K Grafik abspeichern, X11 Fehlermeldung Java Basics - Anfänger-Themen 15
T Zeigerposition auf Grafik messen? Java Basics - Anfänger-Themen 5
M ausm String eine Grafik erstellen Java Basics - Anfänger-Themen 4
F Grafik auf Button passt nicht Java Basics - Anfänger-Themen 1
E Grafik in bestimmtes frame einbinden . Java Basics - Anfänger-Themen 13
F Teilen einer großen Grafik Java Basics - Anfänger-Themen 2
M Grafik erstellen Java Basics - Anfänger-Themen 8
C Clear im Grafik Editor Java Basics - Anfänger-Themen 16
C Grafik flimmert bzw. flackert bei Bewegung Java Basics - Anfänger-Themen 11
N Grafik formatieren Java Basics - Anfänger-Themen 7
E fehlermeldung bei rekursiver grafik Java Basics - Anfänger-Themen 11
M wie kombiniere ich grafik und swing-komponenten Java Basics - Anfänger-Themen 16
N Java Problem bei Grafik und OoP Java Basics - Anfänger-Themen 7
H Streichholzziehen - Grafik? Java Basics - Anfänger-Themen 3
M Grafik auf einem JPanel erneut darstellen Java Basics - Anfänger-Themen 3
S Grafik verschwindet aus JTabbedPane Java Basics - Anfänger-Themen 4
C Grafik in einem Panel als Bild exportieren Java Basics - Anfänger-Themen 8
K Verstehe Rekursion nicht ganz Java Basics - Anfänger-Themen 7
S Eine Idee umsetzen ganz schnell!? Java Basics - Anfänger-Themen 68
districon Backtracking funktioniert nicht ganz Java Basics - Anfänger-Themen 3
ZH1896ZH Verstehe verschieden Scanner und hasNext() nicht ganz Java Basics - Anfänger-Themen 2
S Was bewirkt ganz genau throw hinter einem Funktionsnamen? Java Basics - Anfänger-Themen 14
O Ganz einfache Frage - Array Java Basics - Anfänger-Themen 5
S Ich verstehe die RegEx Tabelle von Javadoc nicht so ganz Java Basics - Anfänger-Themen 3
chuxXo Input/Output CSV Datei wird nicht ganz ausgelesen Java Basics - Anfänger-Themen 5
M Comparable und Comparator nicht ganz klar Java Basics - Anfänger-Themen 1
S Dateien/LinkedList/StringBuffer - SOrtierung klappt nicht so ganz Java Basics - Anfänger-Themen 2
T Sortieren/Suche klappt nicht ganz (String Array) Java Basics - Anfänger-Themen 2
P ganz simpler algorithmus Java Basics - Anfänger-Themen 3
B Erste Schritte Schleife will nicht ganz Java Basics - Anfänger-Themen 3
M Ganz einfaches Beispiel, finde den Fehler aber nicht :( Java Basics - Anfänger-Themen 2
V Ganz kurze Java-Hilfe - Ich finde meinen Fehler nicht Java Basics - Anfänger-Themen 4
-horn- Wer nicht ganz schlau - Java in GPU? Java Basics - Anfänger-Themen 9
T JScrollPane ganz runter Scrollen Java Basics - Anfänger-Themen 4
F Datentypen Ganz simpler Taschenrechner mit switch Java Basics - Anfänger-Themen 10
A If-Schleife spinnt - ganz einfach Code - Riesen Problem :) Java Basics - Anfänger-Themen 9
S vielleich ganz simpel.. Java Basics - Anfänger-Themen 7
H Typumwandlung String --> Int (ganz einfach) Java Basics - Anfänger-Themen 9
Developer_X Java GridLayout nicht ganz ausgereift Java Basics - Anfänger-Themen 6
G Hilfe: Label soll ganz nach oben! Java Basics - Anfänger-Themen 6
D Projekt mit einer Datenbank verwirklichen, oder vlt ganz and Java Basics - Anfänger-Themen 2
T Ganz simple Konstruktoraufgabe Java Basics - Anfänger-Themen 3
M Caeser Verschlüsselung ganz einfach(nicht für mich) Java Basics - Anfänger-Themen 6
N In einer JToolbar das Icon ganz rechts anordnen Java Basics - Anfänger-Themen 5
D Hab mal eine Frage. ganz leicht wahrscheinlich :D Java Basics - Anfänger-Themen 6
V Insert into klappt nicht so ganz Java Basics - Anfänger-Themen 6
P Farbwertanteile ausrechnen! geht so nich ganz Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben