Problem mit Objekten Vererbung deklarieren initialisieren usw

do1emu

Mitglied
Hallo Leute,

damals in der Schule haben wir gelernt Objektorientiert zu Programmieren, ob ich das richtig verstanden habe!? Keine Ahnung :D

Also folgendes:

Ich habe ein Main Frame mit Borderlayout

für die 5 Fixpunkte (North, East usw) habe ich jeweils ein Panel welches in einer eigenen Klasse z.B. "PanelNorth extends JPanel" erstellt wird und mit

add(new PanelNorth(),Borderlayout.NORTH) direkt initialisiert und hinzugefügt wird. Im SOUTH mache ich das ganze mit einer JProgressbar...

Wenn ich nun einen Button klicke, dann wird in einer extra Klasse (Thread) eine Aktion berechnet die etwas länger dauern kann. Fortschritte sollen in der Progressbar dargestellt werden. Wie kann ich nun auf diese Progressbar zugreifen? Im Thread kann ich leider kein neues Objekt erstellen der Progressbar, das würde ja nix bringen und im Main Frame kann ich auch auf nix zugreifen, da sie ja nur initialisiert wird aber nicht deklariert also habe keine Objektvariable...

Gibt es da eine Lösung oder muss es auf jeden Fall deklariert werden?? Hoffe ich habe mit "initialisiert" und "deklariert" die richjtigen Ausdrücke gewählt


Danke schonmal :D
 
Zuletzt bearbeitet:
G

Gastredner

Gast
Dein Button bzw. dessen umgebendes Panel muss eine Referenz auf deine ProgressBar besitzen, also in etwa sowas:
Java:
// Imports fehlen

public class SomePanel extends JPanel {
	
	private JProgressBar progressBar;
	
	// GUI-Elemente
	private JButton btn;

	public SomePanel(JProgressBar progressBar) {
		this.progressBar = progressBar;
		btn = new JButton("Klick mich!");
		btn.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent event) {
				SwingUtilities.invokeLater(new Runnable() {
					public void run() {
						int i = 0;
						while (i <= 100) {
							SomePanel.this.progressBar.setValue(i);
							Thread.sleep(250);	// 250ms schlafen - try/catch müsste fehlen
							i++;
						}
					}
				});
			}
		});
		this.add(btn);
	}
}
Ist jetzt aus dem Kopf getippt, kann daher Fehler beinhalten.
 

do1emu

Mitglied
erstmal denke für die schnelle Antwort...

In deiner Zeile 5 steckt mein Problem. Das umgebene Panel des Buttons beinhaltet nicht die Progressbar die wird im MainFrame genau wie das panel des buttons so initialisiert:

Java:
...
add(new NorthPanel(), Borderlayout.NORTH); //Panel mit dem Button
add(new SouthProgress(), Borderlayout.SOUTH); //Progressbar
...

Wenn ich nun im Buttonpanel einen Actionlistener aufrufe, dann habe ich eben diese Referenz nicht. Sollte ich im ButtonPanel ein neues Objekt der Progressbar-Klasse aufrufen, dann ist das ja ein eigenes Objekt und nicht das, was im Main Frame eingefügt wurde, oder ist da nen Denkfehler??

Wenn nicht, dann müsste es ja mit Setter und Getter gehen!?!

@Ein Keks Danke für den Tipp, ist das der grund warum mein Prog so oft abschmiert wenn ich die Größe verändere??
 

Murray

Top Contributor
Du musst im MainFrame eine Membervariable für das Panel haben, dieses Member initialisieren (also einen Wert zuweisen) und dann genau dieses Objekt auch dem Frame hinzufügen.

Etwa so:
Java:
public class MainFrame {
  NorthPanel thePanel;
  SouthProgess theProgress;

/* ... */

thePanel = new NorthPanel();
add( thePanel, Borderlayout.NORTH); //Panel mit dem Button
theProgress = new SouthProgress();
add(theProgress, Borderlayout.SOUTH); //Progressbar
}
 

do1emu

Mitglied
Habs nun so gelöst wie Murray es vorgeschlagen hat, Frage mich allerdings warum das Objekt immer static sein muss wenn ich aus einer anderen Klasse drauf zugreifen will... Naja egal so funzt es danke :D
 

do1emu

Mitglied
und wie kann ich das rausfinden?? Wenn ich im Thread auf die Progressbar zugreifen will, dann mache ich das so:

Java:
SouthPanel.jpb.setValue(i);

Dann meckert mein Eclipse ich soll das Objekt public und static machen :D anderes habe ich nicht kennengelernt :D
 
T

Tomate_Salat

Gast
Java:
SouthPanel.jpb.setValue(i);

Dann meckert mein Eclipse ich soll das Objekt public und static machen :D anderes habe ich nicht kennengelernt :D

Weil du hier auf keine Referenz sondern auf die Klasse selbst drauf zugreifst.
Java:
SouthPanel southPanel = new SouthPanel();

das [c]southPanel[/c] kannst du dann mittels Methoden an andere Klassen weitergeben. Somit besitzen diese die Referenz und können auf diese Einwirken.
 
T

Tomate_Salat

Gast
Da das ganze auf deinem Hauptfenster ist und ich annehme das es nur ein einziges mal offen sein wird, hmm wäre denke ich noch annehmbar (aber sauber würde ichs trotzdem nicht bezeichnen). Aber ich würde dafür keine static nutzen, lieber eine Referenz übergeben. Wobei man das auch mit vorsicht genießen sollte, denn auf diese Weise schaffst du abhängigkeiten die später zieml. lästig werden! Am besten du schaust dir vllt mal das MVC an und machst übungen dazu um die Code-Bereich sauber zu trennen.

Ich verwende Static z.B. nur für factory-instanzen, Singletons, Ini-dateien und Konstanten (ja ich glaub das wars)
 

do1emu

Mitglied
Ja ich erinnere mich glaube ich dunkel wenn man gegenseite Referenzen erstellt kommts zu Fehlern daher habe ich ja alles soweit ausgelagert, damit sowas nicht passiert... Naja es geht nur um die Progressbar, die muss dann mal static abkönnen :D

Danke auf jeden Fall an alle für die Hilfe und Ratschläge!!!!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Problem beim Speichern von Objekten in einer Datei Java Basics - Anfänger-Themen 7
S Problem mit augabe von Objekten Java Basics - Anfänger-Themen 3
S Problem bei Kollision zwischen Array-objekten! Java Basics - Anfänger-Themen 2
D Problem mit Objekten Java Basics - Anfänger-Themen 9
G Problem mit Objekten und Klassen. Java Basics - Anfänger-Themen 2
spacegaier Problem beim Laden eines Vektors mit eigenen Objekten Java Basics - Anfänger-Themen 4
L Problem mit Aufruf von Objekten,übergeben von Parametern Java Basics - Anfänger-Themen 6
T Problem mit Objekten (bei Applets) Java Basics - Anfänger-Themen 6
M Problem mit Objekten Java Basics - Anfänger-Themen 11
R Best Practice Problem mit (einfacher) Doppelt-Schleife Java Basics - Anfänger-Themen 53
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
A ScheduledExecutorService problem Java Basics - Anfänger-Themen 7
marcelnedza Problem mit Weltzuweisung, JavaKarol Java Basics - Anfänger-Themen 13
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
M Erste Schritte Collatz Problem max int Java Basics - Anfänger-Themen 3
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
L Problem bei Rechnung mit Math.pow Java Basics - Anfänger-Themen 13
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
sserio BigInteger Problem Java Basics - Anfänger-Themen 4
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
K Problem mit "Random" Java Basics - Anfänger-Themen 5
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
xanxk Problem For-Schleife mit Charakter Java Basics - Anfänger-Themen 2
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Schleife Problem Java Basics - Anfänger-Themen 2
D Problem mit der Erkennung von \n Java Basics - Anfänger-Themen 2
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
HeiTim Problem mit der Kommasetzung an der richtigen stelle Java Basics - Anfänger-Themen 59
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
P Problem mit Calendar.getDisplayName() Java Basics - Anfänger-Themen 8
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
H Problem mit Verzweigungen Java Basics - Anfänger-Themen 6
H Problem mit Rückgabewert Java Basics - Anfänger-Themen 7
josfe1234 JAVA FX problem Java Basics - Anfänger-Themen 3
A Code Problem Java Basics - Anfänger-Themen 6
Henri Problem von Typen Java Basics - Anfänger-Themen 7
J Problem mit "ArrayIndexOutOfBoundsException" Java Basics - Anfänger-Themen 11
K jackson Mapping - Problem mit Zeitzonen Java Basics - Anfänger-Themen 10
B Threads Problem mit mehreren Threads Java Basics - Anfänger-Themen 38
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
D Schleifen Problem Java Basics - Anfänger-Themen 2
H So viele Fehlermeldungen, dass ich nicht weiß wo das Problem ist. Java Basics - Anfänger-Themen 6
J JAVA-Problem blockiert MEDIATHEKVIEW Java Basics - Anfänger-Themen 13
T Problem mit Lehrzeichen und String bei einfacher Chiffre Java Basics - Anfänger-Themen 8
J extends Problem Java Basics - Anfänger-Themen 2
C Polymorphie-Problem Java Basics - Anfänger-Themen 3
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
I Format Problem mit Wert - bekomme 0,10 anstatt 10,00 Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 5
U Problem mit dem initialisieren meines Strings in einer Schleife Java Basics - Anfänger-Themen 5
amgadalghabra algorithmisches Problem Java Basics - Anfänger-Themen 19
J Traveling Salesman Problem [Arrays] Java Basics - Anfänger-Themen 9
R ArrayList Problem Java Basics - Anfänger-Themen 6
InfinityDE Problem mit Datenübergabe an Konstruktor Java Basics - Anfänger-Themen 7
C RegEx Problem Java Basics - Anfänger-Themen 4
J Anfänger TicTacToe, Problem bei Gewinnoption, sowohl Unentschieden Java Basics - Anfänger-Themen 8
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
M Input/Output Fallunterscheidung Problem Java Basics - Anfänger-Themen 17
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
M Problem bei Ausgabe Java Basics - Anfänger-Themen 7
Splayfer Java Array Problem... Java Basics - Anfänger-Themen 2
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
G Subset sum problem mit Backtracking Java Basics - Anfänger-Themen 18
N Problem mit Scanner Java Basics - Anfänger-Themen 2
J Klassen Problem Java Basics - Anfänger-Themen 8
A Out.format problem. Java Basics - Anfänger-Themen 3
J Problem bei der Programmierung eines Tannenbaums Java Basics - Anfänger-Themen 9
A Array problem Java Basics - Anfänger-Themen 16
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
W Remote Method Invocation RMI - Problem Java Basics - Anfänger-Themen 0
I Ich habe ein Problem Java Basics - Anfänger-Themen 3
A Problem bei returnen eines Wertes Java Basics - Anfänger-Themen 6
M Regex Erstellung Problem Java Basics - Anfänger-Themen 2
D Input/Output Problem bei der Benutzereingabe eines Befehls Java Basics - Anfänger-Themen 14
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
F Habe ein problem mit dem ActionListener Java Basics - Anfänger-Themen 3
C Regex-Problem Java Basics - Anfänger-Themen 4
J Problem beim vergleich von zwei Integer Java Basics - Anfänger-Themen 3
M Problem in der Modellierung Java Basics - Anfänger-Themen 20
W Wo ist das URL-Problem ? Java Basics - Anfänger-Themen 1
S Generics-Problem: Class, Class<?>, Class<Object> Java Basics - Anfänger-Themen 4
D FileWriter / FileReader Problem Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben