Anhand eines Objektnamen ein Objekt finden

Status
Nicht offen für weitere Antworten.

Xeres

Mitglied
Hallo,

ich bin neu in der Java-Welt und möchte ein Programm das ich in Delphi geschrieben habe zum Teil nachbilden und brauche dafür ein Befehl bei dem ich anhand eines Strings (der Objektname) auf das Objekt zugreifen kann.

In Delphi gab es dafür ne Funktion namens FindComponent. Dieser habe ich einfach den Namen meiner zu suchenden Komponente übergeben und hab dann das Objekt (z.B. ein Button) zurück bekommen. Gibt es sowas auch in Java?

Und die zweite Frage: Wenn ich nun dieses Objekt bekommen sollte, wie kann ich dann dem Objekt sagen das es vom Typ z.b. Button ist um anschließend auf die funktionen dieses Buttons zurückgreifen zu können?


Hoffe es ist ein wenig verständlich was ich benötige.

Danke für jede Antwort
 

Bleiglanz

Gesperrter Benutzer
Xeres hat gesagt.:
Hallo,

ich bin neu in der Java-Welt und möchte ein Programm das ich in Delphi geschrieben habe zum Teil nachbilden und brauche dafür ein Befehl bei dem ich anhand eines Strings (der Objektname) auf das Objekt zugreifen kann.

In Delphi gab es dafür ne Funktion namens FindComponent. Dieser habe ich einfach den Namen meiner zu suchenden Komponente übergeben und hab dann das Objekt (z.B. ein Button) zurück bekommen. Gibt es sowas auch in Java?
Nein, bzw. das hängt davon ab was du machst. Wie soll den so ein FindComonent funktionieren, wenn nebenbei eine Garbagge Collection läuft? Klingt für mich eher nach GUI Entwicklung? Was willst du machen?

In voller Allgemeinheit: alle "benötigten" Objekte mit einem String-Key in eine java.util.Map legen

Xeres hat gesagt.:
Hallo,
Und die zweite Frage: Wenn ich nun dieses Objekt bekommen sollte, wie kann ich dann dem Objekt sagen das es vom Typ z.b. Button ist um anschließend auf die funktionen dieses Buttons zurückgreifen zu können?
was heisst: "es dem Objekt sagen"? Du meinst wahrscheinlich "das Objekt fragen"? In Java einfach einen Punkt und den String "class" anhängen
Code:
Object o = new ObjectIrgendwoher();
System.out.println(o.class);
// prüfen mit o instanceof JButton
// casten mit JButton b = (JButton) o
 

foobar

Top Contributor
Wenn ich nun dieses Objekt bekommen sollte, wie kann ich dann dem Objekt sagen das es vom Typ z.b. Button ist um anschließend auf die funktionen dieses Buttons
Du meinst bestimmt casten:

Code:
Object o = new SomeObject();
if (o instanceof SomeObject)
{
   SomeObject s = (SomeObject)o;
   s.someMethod();
}
 

Xeres

Mitglied
Danke für eure schnellen Antworten.

@ foobar:

Das war genau was ich gesucht hatte.



Leider ist meine erste Frage scheinbar ein wenig unverständlich geschrieben.

Zuerst einmal: Es handelt sich um eine GUI-Entwicklung
Ich mach mal ein Beispiel:

Ich habe eine X und Y Position von sagen wir mal X = 2 und Y = 5
Alle meine Buttons wurden folgendermaßen benannt "btnX02Y05".
Mein Problem ist jetzt das ich nur diese zwei Koordinaten hab, aber weiß das ich den Button der diese Koordinaten besitzt disablen muss. Leider weiß ich nicht wie ich anhand der Variablen X und Y auf das Objekt zugreifen kann bzw. das Objekt ansprechen kann.

Hoffe jetzt ist es ein wenig klarer was mein Problem ist.


Kann mir hierbei jemand helfen?
 
B

bygones

Gast
du kannst nicht über den namen an ein objekt kommen !!

nimm eine Map struktur (z.b. Hashmap) - als key speicherst du die x / y werte und als value das objekt. so kannst du über die erhaltenen koordinaten an das objekt gelangen
 
G

Guest

Gast
Es muss doch sowas wie findcomponent geben.

Ich habe nämlich mehrere Objekte, die sich im Namen nur durch die nummerierung unterscheiden.

Ich möchte jetzt in einer Schleife darauf zugreifen!

bittte um hilfe!

daenk
 

Campino

Top Contributor
Ich würde alle in einen Vector und dann per Iteration durchlaufen und die x/y-Werte vergleichen...
 

Sky

Top Contributor
Ansonsten geb' ich Dir den Tipp, dass Du deine "findcomponent"-Methode auch selbst schreiben kannst:

Gegeben ist die Klasse 'Testklasse':
Code:
class Testklasse {
  JButton btnX02Y05 = new JButton(); // dein Button
}

Nun kannst Du dir den JButton dynamisch 'rausholen':
Code:
Testklasse tk = new Testklasse();
Class c = tk.getClass();
try {
  Field f = c.getDeclaredField( "btnX02Y05" );
  JButton jb = new JButton();
  jb = ( JButton )f.get( tk );
  // hier kannste nun weiter damit arbeiten...
} catch( Exception ex ) {
  ex.printStackTrace();
}
 
G

Gast

Gast
habe auch das gleiche problem.

machen wir das Beispiel vll noch ein bischen konkreter.

Code:
public class Frame1 extends JFrame {

...
  JPanel contentPane;
  Button button1 = new Button();  
  Button button2 = new Button();
  Button button3 = new Button();
  TextField textFieldEingabe = new TextField();
  Button buttonOK = new Button();
...

private void jbInit() throws Exception  {
...
  button1.setVisible(false);
  button2.setVisible(false);
  button3.setVisible(false);
  contentPane.add(button1, new XYConstraints(10, 10, 100, 30));
  contentPane.add(button2, new XYConstraints(110, 10, 100, 30));
  contentPane.add(button3, new XYConstraints(210, 10, 100, 30));
  contentPane.add(textFieldEingabe, new XYConstraints(10, 60, 100, 30));
  contentPane.add(buttonOK, new XYConstraints(110, 60, 100, 30));
...
}
so viel zu Oberfläche.

Und jetzt will ich in der Methode buttonOK_actionPerformed dynamisch realisieren,
je nach dem welche Zahl von 1 bis 3 in das textFieldEingabe eingegeben wird,
der entsprechende Button auf Visible = true gesetzt wird und die anderen auf false.

in Dephi würde das ungefähr so aussehen:

Methode buttonOK_actionPerformed:

Code:
for i := 1 to 3 do
begin
 (findComponent('Button' + IntToStr(i)) as TButton).Visible := false;
end;

(findComponent('Button' + textFieldEingabe.Text) as TButton).Visible := true;

Meine Frage ist jetzt wie kann ich das bei Java 1 zu 1 umsetzten.
 
G

Gast

Gast
also am sinnvollsten erscheint mir hier ein button array und sonst mit reflection wie Sky geschrieben hat. Oder halt mit ner Map.
 
G

Gast

Gast
Kann mir bitte einer den konkreten Code für ein Beispiel aufschrieben?
(Reflection-Variante wie Sky meint)
 
G

Gast

Gast
Kann mir bitte einer den konkreten Code für mein Beispiel aufschrieben?
(Reflection-Variante wie Sky meint)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Modulo-Operator anhand eines Beispieles erklären Java Basics - Anfänger-Themen 7
U Vererbung Suche Hilfe anhand eines Bsp. Java Basics - Anfänger-Themen 1
K Samstag einer Woche anhand eines Datum Java Basics - Anfänger-Themen 3
S Datentypen Reflection Cast anhand eines Strings? Java Basics - Anfänger-Themen 7
S Komposition beispiel anhand eines kopierers Java Basics - Anfänger-Themen 4
A Threads anhand eines Tokens abarbeiten Java Basics - Anfänger-Themen 7
Chucky Rekursion grafisch darstellen anhand eines Applets Java Basics - Anfänger-Themen 14
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
I String Kombination erstellen anhand fortlaufender Zahl (Vertragsnummer) Java Basics - Anfänger-Themen 13
Y Suche von Studenten anhand Ihrer Eigenschaften. Java Basics - Anfänger-Themen 1
NeoLexx equals()-Methode Verständnis Frage anhand Code Beispiel Java Basics - Anfänger-Themen 22
E Input/Output Datei anhand von Dateinamen einlesen Java Basics - Anfänger-Themen 5
N Erste Schritte HSV color space - schwarz und weiß nur anhand von Saturation oder Multiplikator ermitteln Java Basics - Anfänger-Themen 14
M String zerlegen anhand anderer String Java Basics - Anfänger-Themen 6
M Allgemeine Java-Frage anhand bspw. Eclipse Java Basics - Anfänger-Themen 4
U Anhand von Ant ein War-File erstellen Java Basics - Anfänger-Themen 0
D Instanz einer Subklasse anhand deren Superklasse Java Basics - Anfänger-Themen 5
F Text anhand bestimmter Trennzeichen in Textteile trennen (netbeans) Java Basics - Anfänger-Themen 7
A Rekursion (anhand von Mergesort) nachvollziehen Java Basics - Anfänger-Themen 4
X Bildabschnitt anhand der Farbe und messen Java Basics - Anfänger-Themen 4
P Punkte anhand 3. Koordinate vergleichen Java Basics - Anfänger-Themen 3
O ArrayListe sortieren anhand zweier Parameter Java Basics - Anfänger-Themen 4
D Wochentag für eingegebenes Datum bestimmen anhand von Formel Java Basics - Anfänger-Themen 2
N kleine get-Methode anhand einer Aufgabenstellung Java Basics - Anfänger-Themen 13
V Objekte/Klassen erstellen - Erklärung anhand Beispiel Java Basics - Anfänger-Themen 4
P Key anhand von Value finden (Hashtable) Java Basics - Anfänger-Themen 3
H Anhand von Jar, andere Jar öffnen Java Basics - Anfänger-Themen 7
J Bild anhand von Koordinaten zeichnen Java Basics - Anfänger-Themen 10
T Uhrzeigersinn anhand von Koordinaten Java Basics - Anfänger-Themen 7
H Objekt aus array holen anhand des Objekttypen Java Basics - Anfänger-Themen 8
D Methode anhand deren Name aufrufen Java Basics - Anfänger-Themen 4
R Vergleich von Objekten anhand variierender Kriterien Java Basics - Anfänger-Themen 5
M Umfang von Rechteck oder Kreis anhand der Parameter Java Basics - Anfänger-Themen 2
L rechtecke zeichnen anhand von matrix Java Basics - Anfänger-Themen 27
G Arrayliste mit Objekt anhand von Strings sortieren Java Basics - Anfänger-Themen 8
O Zugriffskontrolle anhand von IP-Adressbereichen Java Basics - Anfänger-Themen 11
G Elemente in einer ArrayList anhand ID löschen Java Basics - Anfänger-Themen 17
A Objekte in ArrayList anhand Variable sortieren Java Basics - Anfänger-Themen 10
G Auswahl anhand Wahrscheinlichkeiten Java Basics - Anfänger-Themen 5
G Zeichenkette anhand einer anderen Zeichenkette trennen Java Basics - Anfänger-Themen 6
richis-fragen Ungefähre Restdauer eines Kopiervorgangs ermitteln Java Basics - Anfänger-Themen 3
D Erste Schritte Frage eines absoluten Anfängers Java Basics - Anfänger-Themen 3
R Operatoren Klausurenfrage: Auswertungspräzedenz eines komplizierten Ausdrucks Java Basics - Anfänger-Themen 6
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
laxla123 Eigenschaften eines Algorithmus (determiniert vs.. deterministisch) Java Basics - Anfänger-Themen 2
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
J Farbe des Striches eines TitledBorders ändern Java Basics - Anfänger-Themen 2
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
walid Öffnungszeiten eines Geschäftes Java Basics - Anfänger-Themen 3
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
T Probleme beim Import eines Git-Repos Java Basics - Anfänger-Themen 2
U Eigenschaft eines JTextfiels per ActionListener ändern... Java Basics - Anfänger-Themen 2
B Synchronisation eines kleinen Museums Java Basics - Anfänger-Themen 47
krgewb Breite und Höhe eines Bildes in base64 auslesen Java Basics - Anfänger-Themen 3
Sachinbhatt Was ist die Notwendigkeit eines Sammlungsframeworks in Java? Java Basics - Anfänger-Themen 2
N Textdatei aus Resourcen-Ordner eines Projekts/ jar-file lesen Java Basics - Anfänger-Themen 4
B Produkt eines double - streams Java Basics - Anfänger-Themen 3
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
S Variablen Letzte Zeile eines Strings entfernen Java Basics - Anfänger-Themen 1
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
J Größe eines Strings in Pixel Java Basics - Anfänger-Themen 18
M Parse-Tree eines statements darstellen Java Basics - Anfänger-Themen 0
H Java verkettete Liste, Wert eines Index zurückgeben Java Basics - Anfänger-Themen 1
bluetrix Programmieren eines Bots für Zahlen-Brettspiel Java Basics - Anfänger-Themen 9
J Hinzufügen eines Objektes in ein Objekt-Array Java Basics - Anfänger-Themen 62
M Wie kann die Implementation einer Methode den Wert eines Attributs vermindern? Java Basics - Anfänger-Themen 3
A Rekursive Implementation eines Codes Java Basics - Anfänger-Themen 4
H String Repräsentation eines Rechtecks mit Instanz-Methode Java Basics - Anfänger-Themen 8
M Konstruktor ohne Übergabe eines Wertes Java Basics - Anfänger-Themen 7
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
M Wie erreiche ich das Vorwärtsgehen eines Roboters? Java Basics - Anfänger-Themen 2
M Wie erreiche ich es das Vorwärtsgehen eines Roboters? Java Basics - Anfänger-Themen 0
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
A Optimierung eines Programms: Mergen der Dateien Java Basics - Anfänger-Themen 23
melisax Alle Möglichkeiten eines Wortes angeben Java Basics - Anfänger-Themen 3
A Java, verarbeitung eines xml-files Java Basics - Anfänger-Themen 2
C Fehler beim erstellen eines Objektes Java Basics - Anfänger-Themen 3
B Konkatenieren eines Strings und inkremtierenden Zahl zu einer INT Variablen Java Basics - Anfänger-Themen 7
F Initialisieren eines Web-Mp3 Players in Tabs durch "booleans" erst wenn Tab geöffnet wird ...? Java Basics - Anfänger-Themen 1
P Drei Zahlen eines Würfelspiels auswerten Java Basics - Anfänger-Themen 7
C Brauche Hilfe beim Schreiben eines Programmes :/ Java Basics - Anfänger-Themen 1
C initialisieren eines arrays richtiger Größe und mit geeignetem Datentyp Java Basics - Anfänger-Themen 26
C Überprüfen eines Programms auf Syntaxfehler Java Basics - Anfänger-Themen 3
S Wie kann ich den Bereich eines Integers begrenzen? Java Basics - Anfänger-Themen 2
nonickatall Grundsätzliches Verständnisproblem des Aufbaus eines Programms Java Basics - Anfänger-Themen 19
B Downgrade eines bestehenden Projektes Java Basics - Anfänger-Themen 5
amelie123456 Geschwindigkeit der Methode bewegeDich eines Objekts ändern Java Basics - Anfänger-Themen 2
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
J maximaler Wert eines Integers Java Basics - Anfänger-Themen 14
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
Z Rückgabe eines Values in umgekehrte richtung Java Basics - Anfänger-Themen 5
L Methode zum invertieren eines Arrays Java Basics - Anfänger-Themen 7
B fragen zu Aufbau eines UML-Klassendiagramm Java Basics - Anfänger-Themen 1
eleonori Durchschnitt aller Werte eines Baums berechnen Java Basics - Anfänger-Themen 5
M Benutzereingabe eines Codes verbessern Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben