NetBeans 6.0.1 / Zeichnen auf Canvas

Status
Nicht offen für weitere Antworten.

Steve-H

Mitglied
Hallo,

Ich habe nen Problemchen bei meinem Programm. Das Problem sieht folgendermaßen aus...

Ich möchte ein Bildchen auf einen Canvas zeichnen, dies hat auch schon geklappt. Ich lade das Bild erst in nen Image, von dort gehts dann auf Graphics von Canvas. So weit so gut.

Allerdings will ich, dass das Bild neu gezeichnet wird sobald aus irgend einem Grund das Bild nicht mehr komplett angezeigt wird. Zum Beispiel weil ich ein Fenster über den Canvas gezogen habe oder ich das Programm minimiert und dann wieder maximiert habe. Ich habe schon ComponentShown, Resize usw probiert, allerdings immer ohne Erfolg.

Hat jemand von euch ne Idee wie ich dies umsetzen könnte? Kann ne andere Komponente das mit dem Zeichnen vielleicht besser?

Ich weiß, gehört hier nicht rein aber wollte ned noch nen 2. Thread aufmachen...
Des weiteren bekomme ich keine Hilfe angezeigt wenn ich F1 drücke während ich ne Komponente markiert habe (das Hilfefenster öffnet sich aber). Weiß jemand wie ich das beheben kann damit ich in der Hilfe gescheit rumwühlen kann, bzw wo ich die Hilfe überhaupt her bekomme.

schonmal Danke fürs lesen ;-)
mfg
Stephan
 

L-ectron-X

Gesperrter Benutzer
Steve-H hat gesagt.:
Allerdings will ich, dass das Bild neu gezeichnet wird sobald aus irgend einem Grund das Bild nicht mehr komplett angezeigt wird. Zum Beispiel weil ich ein Fenster über den Canvas gezogen habe oder ich das Programm minimiert und dann wieder maximiert habe.
Darum kümmert sich die VM schon alleine, du hast sicher einen Fehler im Code. Die VM ruft die paint()-/repaint()-Methode auf, sobald etwas aus oben angeführten Gründen neu gezeichnet werden muss.

Steve-H hat gesagt.:
Kann ne andere Komponente das mit dem Zeichnen vielleicht besser?
Kommt drauf an, ob du mit Swing oder AWT arbeitest.

Steve-H hat gesagt.:
Ich weiß, gehört hier nicht rein aber wollte ned noch nen 2. Thread aufmachen...
Des weiteren bekomme ich keine Hilfe angezeigt wenn ich F1 drücke während ich ne Komponente markiert habe (das Hilfefenster öffnet sich aber). Weiß jemand wie ich das beheben kann damit ich in der Hilfe gescheit rumwühlen kann, bzw wo ich die Hilfe überhaupt her bekomme.
Tjo... ???:L wovon redest du?
 

Steve-H

Mitglied
Müsste ich dem Canvas nicht irgendwie sagen was er bei Repaint neu malen soll? Wenn ich allerdings auf den Canvas klicke habe ich da keinen Event der Repaint oder so heißt.

Hier mal der Code von den betroffenen Funktionen:

Code:
//damit lade ich das Bild von der Platte in nen Image
protected Image LoadGrafic(String szDN) throws IOException
{
        Image Image;
        File imageFile;
        //Datei öffnen und in Buffer laden
        imageFile = new File(szDN);
        Image = ImageIO.read(imageFile);

        return Image;
}


//dann hole ich mir folgendermaßen die Graphics vom Canvas
gWorldMap = canvasWorld1.getGraphics();

//und hier soll er das ganze auf den canvas pinseln. In imgWorldMap ist das geladene Image
gWorldMap.drawImage(imgWorldMap, 0, 0, rootPane);

habe die drawImage habe ich in den verschiedenen Events (shown, resize usw) mal eingesetzt, allerdings wollte das Bild als nur beim Click Event erscheinen.


Bezüglich Swing und AWT. Daher ich mehr als neu in Java bin, habe bisher nur C/C++ gemacht, kenne ich mit denen noch ned so recht aus. Habe von beiden mal Komponenten genommen, jenachdem wo ich die Komponente gefunden habe die ich brauchte.


Das mit der Hilfe war auf die Hilfe von NetBeans bezogen. Wenn ich F1 drücke um die Hilfe aufzurufen sagt er mir immer dass keine Hilfe für das ausgewählte Objekt (z.B. dem ComponentShown Event) hinterlegt ist. Aber auf der NetBeans Seite wurde ich nicht fündig nach ner Hilfe die man runterladen kann und dann einbinden.

Danke für deine schnelle Antwort
mfg
Stephan
 

L-ectron-X

Gesperrter Benutzer
Steve-H hat gesagt.:
Code:
//dann hole ich mir folgendermaßen die Graphics vom Canvas
gWorldMap = canvasWorld1.getGraphics();
Das Graphics-Objekt sollte nicht gespeichert werden. Besser ist es, die paint()-Methode zu überschreiben.
 

Steve-H

Mitglied
Wie meinst du das mit dem überschreiben?

So?..

canvasWorld1.paint(Graphics)


Und ohne das Graphics Objekt kann ich ja kein drawImage machen und somit auch nicht das Bild auf das Graphics Obejct zeichnen damit es danach auf dem Canvas dargestellt wird.
 

L-ectron-X

Gesperrter Benutzer
Du solltest deine Klasse von Canvas erben lassen (wenn du ein AWT-Programm schreibst) und darin die paint()-Methode überschreiben. In der paint()-Methode zeichnest du dann. Das Graphics-Objekt bekommt die paint()-Methode von der VM als Argument übergeben.
Code:
public void paint(Graphics g) {
   super.paint(g);
   if(imgWorldMap != null) {
      g.drawImage(imgWorldMap, 0, 0, this);
   }
}
 

Steve-H

Mitglied
Mein Klasse erbt schon von JFrame, allerdings habe ich das mit dem überschreiben auch ohne das Vererben versucht.

Es klappt so halber. Er zeichnet das Bild zwar neu, zumindest in den meisten Fällen, allerdings wird das Bild als links oben ausgerichtet. Was wohl an den Paramtern in ImageDraw liegt.

Ein weiteres Problem ist, dass ich insgesamt 3 Canvas habe, auf 3 unterschiedlichen Panels eines JTabbedPane, auf die jeweils was verschiedenes gepinselt werden soll. Auf die Art und Weise würde ja dann immer das gleiche in den 3 Canvas drin stehen da das Image immer das gleiche ist.

Ich habe es dann mal so probiert...

Code:
public void paint(Graphics g) 
    {                   
        if (panMessure.isVisible())
        {
            if(imgMessure != null) 
                g.drawImage(imgMessure, canvasMessure.getX(), canvasMessure.getY(), canvasMessure);
        } else if (panLocation.isVisible())
        {
            if(imgWorldMap != null) 
                g.drawImage(imgWorldMap, canvasWorld1.getX(), canvasWorld1.getY(), canvasWorld1);
        } else if (panLocationAdd.isVisible())
        {
            if(imgWorldMapAdd != null) 
                g.drawImage(imgWorldMapAdd, canvasWorldAdd.getX(), canvasWorldAdd.getX(), canvasWorldAdd);
        }
    }

allerdings malt er dann noch immer links oben rum. Wenn ich anstatt "g" die gespeicherte Graphics (zum Beispiel gWorldMap) verwende, dann sieht es so aus als würde das Bild zuerst auf den Canvas gezeichnet. Dann aber sofort wieder überzeichnet.
 

L-ectron-X

Gesperrter Benutzer
Da haben wir schon das nächste Problem, ich dachte, du würdest auf meine Hinweise anspringen.
Vermeide es AWT und Swing zu mischen. Canvas ist eine schwergewichtige AWT-Componente. Ersetze die durch ein leichtgewichtiges JPanel und überschreibe in den erbenden Klassen die paintComponent()-Methode zum zeichnen.
Die bisher benutzten Methoden zum Zeichnen kannst du beibehalten.
 

Steve-H

Mitglied
Ok, ich werd das tun sobald mein Besuch wieder weg ist. Kann allerdings ne Weile dauern.

Ich wünsch dir nen schönen Abend und vielen Dank für deine Hilfe bisher.

btw, ich habe dich mal in ICQ geadded, dass wir eventuell dort reden können (falls es dir recht ist), dann schreibe ich hier nicht das Forum zu ;-)

mfg

Edit: das Problem hat sich gelöst. Ich habe ne neue Klasse hinzugefügt welche von JPanel erbt und dort das malen rein gemacht. Daraus erzeuge ich nen Objekt und weise es dem Panel in der Grafik zu.

nochmals Danke für deine Hilfe lectronx
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin Netbeans Anwendungsfilename Java Basics - Anfänger-Themen 1
Juelin Netbeans mit JavaFX, FXML und Scenebuilder Java Basics - Anfänger-Themen 11
Juelin Netbeans und javafx Java Basics - Anfänger-Themen 6
P Netbeans installation geht nicht Java Basics - Anfänger-Themen 26
P Probleme mit NetBeans: Wie lässt sich jar. Datei an einem MacBook öffnen Java Basics - Anfänger-Themen 21
I GUI über Eclipse oder NetBeans Java Basics - Anfänger-Themen 23
R Keine Verbindung zu MySql über Netbeans Java Basics - Anfänger-Themen 15
K Netbeans Deployment - lib in einziges jar integrieren Java Basics - Anfänger-Themen 2
M Erste Schritte NetBeans Fehlermeldung Java Basics - Anfänger-Themen 2
MiMa Klassen in Projekte wiederverwenden ?? (Netbeans IDE) Java Basics - Anfänger-Themen 8
Bluedaishi Netbeans Problem Java Basics - Anfänger-Themen 12
J Projekt nicht editierbar modifizieren (NetBeans 8) Java Basics - Anfänger-Themen 10
T Netbeans und Eclipse Probiere programmiere probiere Java Basics - Anfänger-Themen 2
M Netbeans Projekt lauffähig abspeichern Java Basics - Anfänger-Themen 3
M In Netbeans Programm so abspeichern dass es funktioniert Java Basics - Anfänger-Themen 8
W Fehler in der Entwicklungsumgebung NetBeans Java Basics - Anfänger-Themen 14
C Erste Schritte (Netbeans) no main classes found Java Basics - Anfänger-Themen 5
K Erste Schritte Netbeans Programm läuft nicht Java Basics - Anfänger-Themen 23
J Libraries in Netbeans Java Basics - Anfänger-Themen 5
G Java mit NetBeans Java Basics - Anfänger-Themen 5
B Netbeans Java Version 8.0.2 und Yosemite Java Basics - Anfänger-Themen 1
S Konsole Lanterna in NetBeans einbinden Java Basics - Anfänger-Themen 5
S Template Choosing "Primeface" in Netbeans 8.0.2 Java Basics - Anfänger-Themen 0
F Text anhand bestimmter Trennzeichen in Textteile trennen (netbeans) Java Basics - Anfänger-Themen 7
Lord.Djerun (Netbeans) Bei TimeUnit.Seconds,Sleep() hängt sich das komplette Programm auf.. Java Basics - Anfänger-Themen 8
Lord.Djerun (Taschenrechner Netbeans) Komma nur einmal schreiben & 0 ersetzen Java Basics - Anfänger-Themen 1
P Problem mit Netbeans Java Basics - Anfänger-Themen 8
T Java Netbeans Grobrasterfilter Java Basics - Anfänger-Themen 0
K Seltsames Ergebnis in Netbeans bei einfacher Multiplikation Java Basics - Anfänger-Themen 5
F APP außerhalb von Netbeans starten Java Basics - Anfänger-Themen 2
D netbeans 7.3 fxapplication Java Basics - Anfänger-Themen 2
-horn- While Ausgabe Netbeans Java Basics - Anfänger-Themen 3
T NetBeans - Int in Textfield Java Basics - Anfänger-Themen 11
L NetBeans Applet in html Java Basics - Anfänger-Themen 4
H [JAVA] NetBeans GUI Builder - Events Java Basics - Anfänger-Themen 10
M NetBeans Code Java Basics - Anfänger-Themen 12
T Classpath Klassen einbinden netbeans Java Basics - Anfänger-Themen 5
M Netbeans streicht Methodenbezeichner durch Java Basics - Anfänger-Themen 2
S ButtonKlick mit JFrame (Netbeans) fragen.. Java Basics - Anfänger-Themen 8
A Netbeans /Gamegrid hilfe!? Java Basics - Anfänger-Themen 17
T jTable - netbeans Java Basics - Anfänger-Themen 2
C jTable Netbeans Java Basics - Anfänger-Themen 3
M Netbeans ausführbare Jar erzeugen Java Basics - Anfänger-Themen 4
P Netbeans Platform - JLabel und JPanel setLocation Problem Java Basics - Anfänger-Themen 2
H NEtBeans: Fehler: XXX has private access... Java Basics - Anfänger-Themen 2
M In Netbeans kein Problem, im Terminal schon Java Basics - Anfänger-Themen 3
P Java Datei ohne Netbeans ausführen Java Basics - Anfänger-Themen 7
G NetBeans Contains files with errors Java Basics - Anfänger-Themen 14
F NetBeans Clear and Build löscht Dateien? Java Basics - Anfänger-Themen 5
M Netbeans Listener - Anonymous, inner class, main class? Java Basics - Anfänger-Themen 4
I Netbeans - jTabbedPane Hintergrundfarbe ändern Java Basics - Anfänger-Themen 13
J Argumenten eingabe Netbeans Java Basics - Anfänger-Themen 5
R Netbeans hängt sich beim profilen auf Java Basics - Anfänger-Themen 4
O Build in Netbeans Java Basics - Anfänger-Themen 12
U Input/Output FileNotFoundException in Netbeans, in Eclipse nicht Java Basics - Anfänger-Themen 5
F Probleme nach dem Wechsel von Eclipse zu NetBeans Java Basics - Anfänger-Themen 15
S Erste Schritte HelloWorld in NetBeans Java Basics - Anfänger-Themen 8
B assert befehl in netbeans Java Basics - Anfänger-Themen 3
D Libarie und Javadoc in Netbeans einbinden? Java Basics - Anfänger-Themen 6
B Netbeans SQL Stmt Escapen Java Java Basics - Anfänger-Themen 9
MisterSeven Netbeans - Dropdown Menü erstellen? Java Basics - Anfänger-Themen 4
J Netbeans + JApplet-Form Java Basics - Anfänger-Themen 5
E Netbeans, "class does not have a main method" Java Basics - Anfänger-Themen 8
D Selbstprogrammierte Datein in Netbeans nutzen? Java Basics - Anfänger-Themen 2
J NetBeans-Projekt zu Datei? Java Basics - Anfänger-Themen 2
Hindi93 Netbeans Datei exportieren Java Basics - Anfänger-Themen 7
N NetBeans Projekt im Terminal starten Java Basics - Anfänger-Themen 2
C Netbeans will Plugin mangelns JDK nicht installieren ? Java Basics - Anfänger-Themen 2
N netbeans schaltfläche mit code belegen ? Java Basics - Anfänger-Themen 7
T Netbeans: Import von Externen Packet Java Basics - Anfänger-Themen 5
S Netbeans instalieren Java Basics - Anfänger-Themen 2
B Zeilenweises ausführen in NetBeans Java Basics - Anfänger-Themen 2
P Datentypen HTML Dokument speichern (Netbeans) Java Basics - Anfänger-Themen 10
N Anordnug der Komponenten mit NetBeans Java Basics - Anfänger-Themen 9
J Wie kann ich Netbeans in Eclipse integrieren? Java Basics - Anfänger-Themen 7
S Unterschiede Netbeans und .jar Java Basics - Anfänger-Themen 4
S NetBeans Project erstellen Java Basics - Anfänger-Themen 17
M netbeans exe Java Basics - Anfänger-Themen 5
S Programm erstellen (mit netbeans) Java Basics - Anfänger-Themen 15
B JAR Datei mit NetBeans erstellen und ausführen Java Basics - Anfänger-Themen 23
O Mit Netbeans .jar erstellen Java Basics - Anfänger-Themen 2
Spin GUI Builder in Netbeans Java Basics - Anfänger-Themen 3
C setResizable(false) unter NetBeans Java Basics - Anfänger-Themen 3
M netbeans GUI builder Java Basics - Anfänger-Themen 2
S Wo speichere ich Bilder für Applets (Netbeans) Java Basics - Anfänger-Themen 5
T MySQL-Dienst starten und stoppen aus Netbeans Java Basics - Anfänger-Themen 3
M package in Netbeans IDE Java Basics - Anfänger-Themen 3
D Eclipse und NetBeans Java Basics - Anfänger-Themen 3
J Programm läuft in Netbeans, aber nicht in der Konsole Java Basics - Anfänger-Themen 6
H Multiple JFrames im GUI Editor von NetBeans Java Basics - Anfänger-Themen 2
V Merkwürdiges Problem mit Netbeans und implements Java Basics - Anfänger-Themen 10
M Benutzer löschen mittels Netbeans Java Basics - Anfänger-Themen 4
M Klassendiagramm in Netbeans Java Basics - Anfänger-Themen 7
B Grafiken/Bilder mit Netbeans in Jdialog Java Basics - Anfänger-Themen 7
C Ein Handy Spiel programmieren mit Netbeans Java Basics - Anfänger-Themen 1
L wo muß die Jar stehen, Netbeans, Compile Java Basics - Anfänger-Themen 3
R Java Problem (mit NetBeans) - html gibt nur java logo aus Java Basics - Anfänger-Themen 7
G Netbeans: Klasse wird bei Run der Main Klasse nicht gefunden Java Basics - Anfänger-Themen 2
Spin Objekte in Netbeans Java Basics - Anfänger-Themen 6
T Netbeans 'Currency Converter' / DataInputStream readInt() Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben