[JAVA] Kommunikation zwischen Fenstern

07/24/2011 16:54 21_0x15_025_NAK#1
Ich bin gerade dabei Java zu lernen und erstelle just4fun nen kleinen Bot der Pixel liest.

Mein Problem:
Ich habe ein JFrame(Hauptfenster) mit einen Label (naja etwas mehr eigentlich auch, aber ich beschränke mich jetzt mal auf das wesentliche xD) auf dem ich per Button ein JDialog öffne.
Im JDialog ist eine TextArea und ein Button.

Ich möchte jetzt eigentlich nix weiter als, wenn ich in die TextArea einen String eingegeben habe und auf den Button klicke, das das Label im Hauptfenster diesen String übernimmt.

Ich hab schon gegoogelt und finde eigentlich fast nix (nix mit dem ich als Anfänger was anfagen könnte :D)

Hat jemand ein(e) Tutorial/Referenz/Anleitung die mir helfen könnte?
07/25/2011 13:39 Dimension0x00#2
Wie wärs mit einen ActionListener, den du an den Button addest. Bei einen beliebigen Event änderst du dann den Text von dem Label.
07/25/2011 15:21 LostHope.#3
Ich würde serverseitig arbeiten, z.B. mit einer txt-Datei oder Datenbank.
07/25/2011 15:27 Dimension0x00#4
wtf, was hat das mit einer Datenbank oder .txt-Datei zu tun?
07/25/2011 17:13 Obilee#5
Labelname.setText(deinausgelesenerstring); ?
07/25/2011 17:25 MrSm!th#6
Obi das Label müsste doch laut dem Prinzip der Datenkapselung im JFrame privat und demnach nicht für den Dialog zugänglich sein.
07/25/2011 17:36 Obilee#7
Er führt den Befehl doch in einem ActionListener aus. Wenn die beiden GUI Elemente in einer Klasse sind reicht es aus das Label als Final zu deklarieren schon kann er aus dem Listener darauf ganz normal zugreifen. Wenn die Klasse von sich aus nen "implements ActionListener " hat dann muss er dies nicht mal tun.

z.b

public class GUI implements ActionListener {

JFrame main = new JFrame();
JLabel label= new JLabel();
JDialog a = new JDialog();
...

@Override
public void actionPerformed(ActionEvent e) {
Object obj = e.getSource();

if(obj == a){
label.settext("hrsn lool");
}
}
}

Wenn er sein Code einfach Posten würd, wärs noch einfacher
07/25/2011 18:25 Dimension0x00#8
oder man fügt Getter und Setter hinzu. Setter kann man ja auf private stellen...

Der JDialog hält ja die OwnerWindowReference, kannst dann per Delegation arbeiten.
07/25/2011 19:10 21_0x15_025_NAK#9
Quote:
Originally Posted by Obilee View Post
Wenn die beiden GUI Elemente in einer Klasse sind reicht es aus das Label als Final zu deklarieren schon kann er aus dem Listener darauf ganz normal zugreifen.
Nein sind sie nicht^^.

Naja egal ich habs einfach anders gemacht.

@Obi
In deinem Robot Tutorial erklärst du getPixelColor(), welches ja die PixelColor bei bestimmten Koordinaten liest. Aber wie geht es den dann, das Robot Pixel in einem bestimmten Bereich liest (also keinen Punkt):confused:

sry wollte keinen neuen Thread aufmachen
07/25/2011 20:01 Obilee#10
Was meinst du mit einem bestimmten Bereich ?
Wenn du jetzt alle Farben aus einem Teilbereich von Bildschirm auslesen willst musst du halt alle Pixel von dem Bereich durchgehen und einen Mittelwert daraus bestimmen.
07/27/2011 12:39 -AmA-#11
Ich kenn mich zwar nicht mit Java aus, aber es würde doch schon gehen wenn die Referenz von dem Label an das neue Dialogfeld übergeben wird. Sollte das funktionieren kanst du wie gewohnt auf das Label zugreifen
07/28/2011 13:30 LostHope.#12
Quote:
Originally Posted by Dimension0x00 View Post
wtf, was hat das mit einer Datenbank oder .txt-Datei zu tun?
Vieles.

"Ich möchte jetzt eigentlich nix weiter als, wenn ich in die TextArea einen String eingegeben habe und auf den Button klicke, das das Label im Hauptfenster diesen String übernimmt."
Ein sehr einfacher Weg: String->Txt-Datei: Hauptfenster->Txt-Datei

"Ich hab schon gegoogelt und finde eigentlich fast nix (nix mit dem ich als Anfänger was anfagen könnte )"
Als Anfänger wird der einfache Weg bevorzugt.
07/30/2011 21:39 .Infinite#13
Quote:
Ein sehr einfacher Weg: String->Txt-Datei: Hauptfenster->Txt-Datei
aber auch außerordentlich unschön!