Bei Mouse Events nicht mehrere Objekte erstellen

NicoBec

Mitglied
Hi, habe wahrscheinlich nur ein kleines Problem, wessen Lösung mir aber gerade nicht ins Gedächtnis kommt:

Ich versuche ein Panel zu programmieren, welches sich bezüglich der X Koordinate mit meiner Maus bewegt. Z.B. für Breakout.

Hier der Versuch:

Java:
package brickBracker;

import java.awt.Color;
import java.awt.event.*;

import acm.graphics.*;
import acm.program.*;

public class Panel extends GraphicsProgram {
   
    public void init() {
        addMouseListeners();
        }
   
    public void mouseMoved(MouseEvent e) {
        GRect brick = new GRect(e.getX(), 20, 50, 5);
        brick.setColor(Color.BLACK);
        brick.setFillColor(Color.BLACK);
        brick.setFilled(true);
        add(brick);
        }
   
   
}

Das Programm erstellt mir jetzt bei jeder Mausbewegung ein neues. Ich sehe, dass ich nicht immer ein new GRect nutzen kann. Aber wie kann ich das erstens verhindern und zweitens trotzdem ein funktionierendes Panel haben?

LG
 

Robat

Top Contributor
Indem du brick als globale Variable anlegst und nur die x-Koordinate (über Setter die eventuell vorhanden sind?) änderst.
 

VfL_Freak

Top Contributor
Moin,

was wäre denn für Dich eine 'globale Variable'?
Mich hindert doch nicht daran, in der Hauptklasse etwas in der Art von
Java:
boolean isConfigAllreadyLoaded = false;
public boolean isMyConfigAllreadyLoaded = false;
anzulegen ... könnte ich dann ggf. beides Programm nutzen, was für mich wiederum eine globale Variable wäre!

VG Klaus
 

mrBrown

Super-Moderator
Mitarbeiter
was wäre denn für Dich eine 'globale Variable'?
https://en.wikipedia.org/wiki/Global_variable hat gesagt.:
a global variable is a variable with global scope, meaning that it is visible (hence accessible) throughout the program.
[...]
In other languages, however, global variables do not exist; these are [...] class-based object-oriented programming languages that enforce a class structure.



Mich hindert doch nicht daran, in der Hauptklasse etwas in der Art von
anzulegen ... könnte ich dann ggf. beides Programm nutzen, was für mich wiederum eine globale Variable wäre!
Für dich ist also eine auf einen bestimmten Scope beschränkte (also nicht von überall nutzbar) und von einer Instanz abhängige (also 0-n mal existierend und nur über diese Instand nutzbar) Variable global?


Analog für die echte Welt: deine Kontonummer und PIN sind global? Bitte her damit ;)
 

Robat

Top Contributor
Denke ich nicht - die meisten verbinden global nun mal mit public static
Keine Ahnung ob man das so verallgemeinern kann.
Ich verstehe was du meinst aber Ich persönlich habe ( in meinen Tutorien) noch niemanden gesehen der, wenn nach einer globalen Variable (in Java) gefragt wurde, eine Variable als public static deklariert hat.

Kommt aber sicherlich auch darauf an was für eine Terminologie einem beigebracht wurde..
 

mrBrown

Super-Moderator
Mitarbeiter
Ich hab noch nie gesehen, das jemand etwas anderes als public static als global bezeichnen würde.
So ziemlich überall wird auch dazu gesagt, das es kein wirkliches global in Java gibt und man es auch nicht verwenden sollte.

Wenn in irgendeinem Tutorium global benutzt wird, ist es kein gutes Tutorium. Gibt leider mehr als genug schlechte...


Naja es gibt ja auch lokale Variablen. Dann liegt es nahe die Klassenvariablen "global" zu bezeichnen ;)
Dann ist also eine private Variable global? ;) allein dieser Widerspruch sollte doch reichen, das nicht global zu nennen...
Klassenvariablen wäre btw das, was global am nächsten kommt - ist aber keine Instanzvariable, die hier gemeint war ;)
 
Zuletzt bearbeitet:

mrBrown

Super-Moderator
Mitarbeiter
Danke für die Antwort! Kannst du das ganze vielleicht in Codeform anreißen, mir fehlt da glaube ich gerade ein Gedankengang.
Statt als lokale Variable musst du brick einfach als Instanz-Variable deklarieren und einmal im Konstruktor zuweisen ;)

In mouseMoved veränderst du dann den x-Wert dieses bestehenden brick, anstatt eigenen neuen zu erstellen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
CodingBerlin Mouse Clicks abfangen Allgemeine Java-Themen 4
C Mouse Bereiche - Besser notieren - Tipps Allgemeine Java-Themen 2
K Mouse koordinaten im programm Allgemeine Java-Themen 4
B Mouse click mit java Allgemeine Java-Themen 10
M Mouse Klicks simulieren? Allgemeine Java-Themen 10
G Mouse Location -> setMouseLocation() Allgemeine Java-Themen 3
D Thread durch Mouse-Event beenden Allgemeine Java-Themen 5
G Problem Canvas Mouse Event Allgemeine Java-Themen 7
F Event Handling Eingabestift events entgegennehmen Allgemeine Java-Themen 0
M Events gehen verloren Allgemeine Java-Themen 7
R Events "verteilen" Allgemeine Java-Themen 2
U Events Allgemeine Java-Themen 3
SuperSeppel13 MouseMotion Events unabhängig vom Cursor Allgemeine Java-Themen 7
M Asynchron Events verschicken... Allgemeine Java-Themen 2
S Eigene Events feuern Allgemeine Java-Themen 3
0x7F800000 Wovon eigene Events für spezialisierte JComponents ableiten? Allgemeine Java-Themen 2
O Auf alle Events reagieren Allgemeine Java-Themen 3
J OpenOffice.org Events in eigene Anwendung umleiten Allgemeine Java-Themen 4
R Events von Klasse 1 in Klasse 2 abrufen Allgemeine Java-Themen 2
N Events in Java? Allgemeine Java-Themen 6
MQue Auslösen eines Events beim Drücken eines Buttons Allgemeine Java-Themen 12
M Events im Quellcode auslösen Allgemeine Java-Themen 4
E Events von inneren Klasse abfragen Allgemeine Java-Themen 7
N Action Events Allgemeine Java-Themen 12
G BestPractice Events bündeln Allgemeine Java-Themen 2
G Events auslösen Allgemeine Java-Themen 3
G Applets und eine Welle von Repain-Events Allgemeine Java-Themen 9
Z Events Reflektieren Allgemeine Java-Themen 5
K Wenn events auftritt fireActionPerformed Allgemeine Java-Themen 6
G Events und Automatisch generierte Unterklassen! Allgemeine Java-Themen 2
Zrebna Wieso sollte man Null-Prüfungen nicht mit Optional-Objekten nutzen? Allgemeine Java-Themen 13
kodela Textfeld nicht rechteckig Allgemeine Java-Themen 10
G Doppelklick auf Javaprogramm klapt nicht Allgemeine Java-Themen 1
W Timer terminiert nicht Allgemeine Java-Themen 5
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
W Überflüssige Deklaration vermeiden...war da nicht mal was? Allgemeine Java-Themen 3
N lwjgl kann textureSampler nicht finden Allgemeine Java-Themen 4
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
T .Jar kann man nicht ausführen Allgemeine Java-Themen 18
P JDK nicht installiert in Net Object Fusion Allgemeine Java-Themen 7
D Image bewegt sich nicht nach Klicken auf Button Allgemeine Java-Themen 15
N Regex schlägt nicht an Allgemeine Java-Themen 10
Y Wieso krieg ich die Unit Tests nicht hin Allgemeine Java-Themen 55
D Erste Schritte Mp3 Datei kann nicht von der Festplatte geöffnet werden - mit ChatGPT erstellt Allgemeine Java-Themen 7
G Popup wird nicht sichtbar Allgemeine Java-Themen 9
8u3631984 Funktions Parameter mit Lombok "NonNull" annotieren wird in Jacococ Testcoverage nicht herausgefiltert Allgemeine Java-Themen 3
kodela String kann nicht zu Pfad konvertiert werden Allgemeine Java-Themen 16
M Apache Proxy Weiterleitung auf Tomcat funktioniert nicht wie gewünscht Allgemeine Java-Themen 1
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
OnDemand ApacheCommon FTP Client zuckt nicht Allgemeine Java-Themen 3
T JavaPoet - (noch) nicht existente Typen Allgemeine Java-Themen 2
E Es ist nicht möglich, eine Batch-Anweisung auszuführen. Allgemeine Java-Themen 9
C Was passt hier nicht bei der Calendar-Class Allgemeine Java-Themen 2
T Testing JUnit5: try ... catch arbeitet nicht sauber Allgemeine Java-Themen 6
W While Schleife funktioniert nicht ganz Allgemeine Java-Themen 4
OnDemand MemoryLeak nicht zu finden Allgemeine Java-Themen 26
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
H do-while Schleife funktioniert nicht wie ich es möchte Allgemeine Java-Themen 7
ERlK JDA Code funktioniert nicht? Allgemeine Java-Themen 4
OnDemand Ram Freigabe erfolgt nicht nach Prozessende Allgemeine Java-Themen 18
OnDemand XML desializing Attribute bringt nicht erwartetes Ergebnis Allgemeine Java-Themen 16
T ImageIcon wird nicht angezeigt Allgemeine Java-Themen 6
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
stormyark TikTakToe funktioniert nicht Allgemeine Java-Themen 10
N Warum wird die For Schleife nicht betreten Allgemeine Java-Themen 4
Tiago1234 Hauptklasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 38
T Remove bei ArrayList funktioniert nicht Allgemeine Java-Themen 2
M Map<String,String>funktioniert nicht richtig Allgemeine Java-Themen 4
I "Neues" Lizenzmodell Oracle - JRE nicht mehr zur Redistribution freigegeben? Allgemeine Java-Themen 16
J c Programm läuft nicht in compilierter Version des Java Projektes Allgemeine Java-Themen 7
A code wird nicht ausgeführt Allgemeine Java-Themen 3
Blender3D Alte Beiträge nicht mehr vorhanden Allgemeine Java-Themen 6
M Warum hat Java dieses und jenes nicht... Allgemeine Java-Themen 8
W Bilder werden in App mit Jar-Datei nicht angezeigt Allgemeine Java-Themen 15
Micha43 Applet *.jar läuft nicht auf dem Mac Allgemeine Java-Themen 8
M Warum bekommen ich den Result nicht ? Allgemeine Java-Themen 17
Kiki01 Häufigster Buchstabe lässt sich nicht ermitteln Allgemeine Java-Themen 30
OnDemand RegEx /compilebekomme nicht die erwarteten Werte Allgemeine Java-Themen 9
HerrBolte Seltsamer Fehler nur in der Windows- und nicht in der Java-Console O_O Allgemeine Java-Themen 16
P String.replace() funktioniert nicht? Allgemeine Java-Themen 3
N nicht einsehbarer Fehler im code, kann nicht mehr übersetzten Allgemeine Java-Themen 51
P Karate API Test läuft nicht durch . initializationError Allgemeine Java-Themen 21
N nicht static und auch nicht new Allgemeine Java-Themen 3
Z macOS java konnte nicht entfernt werden xpc verbindungsfehler Allgemeine Java-Themen 4
T Schaltfläche wird nicht gefunden Allgemeine Java-Themen 4
boschl2000 Springerproblem-Implementierung funktioniert nicht richtig Allgemeine Java-Themen 1
F Getter Methode aufrufen funktioniert nicht Allgemeine Java-Themen 1
N Gierigen Regex in nicht-gierigen umwandeln Allgemeine Java-Themen 4
N Regulärer Ausdruck funktioniert nicht Allgemeine Java-Themen 6
AleXusher Hauptklasse startlösung konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 1
G @PostConstruct Annotation nicht mehr gültig ? Allgemeine Java-Themen 7
L Objekte in Set nicht gefunden Allgemeine Java-Themen 13
T Projekt baut nicht mehr/lässt sich nicht mehr ausführen Allgemeine Java-Themen 6
izoards log4j2 will nicht.... Allgemeine Java-Themen 15
Tobero Meine Funktion für das beinhalten eines Punktes in einem Kreis funktioniert nicht Allgemeine Java-Themen 5
1Raini Java if-Abfrage funktioniert nicht! Allgemeine Java-Themen 3
D Firebase retrieve data Problem, Child Element wird nicht angesprochen Allgemeine Java-Themen 0
I serialVersionUID - explizit vergeben oder nicht? Allgemeine Java-Themen 6
MiMa Vorhandenes das nicht existiert?? Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben