Path: csiph.com!news.mixmin.net!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2001-4dd7-b83b-0-adb1-47f1-530-3c64.ipv6dyn.netcologne.de!not-for-mail From: Patrick Roemer Newsgroups: de.comp.lang.java Subject: Re: Java Swing: alle Elemente eines JFrames durchlaufen Date: Wed, 28 Nov 2018 22:46:41 +0100 Organization: news.netcologne.de Distribution: world Message-ID: References: <90ktvdt94icmm7d1vk9nrakimqstaa0ojo@4ax.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Date: Wed, 28 Nov 2018 21:46:41 -0000 (UTC) Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd7-b83b-0-adb1-47f1-530-3c64.ipv6dyn.netcologne.de:2001:4dd7:b83b:0:adb1:47f1:530:3c64"; logging-data="6697"; mail-complaints-to="abuse@netcologne.de" User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.24) Gecko/20100411 Thunderbird/2.0.0.24 Mnenhy/0.7.6.0 In-Reply-To: <90ktvdt94icmm7d1vk9nrakimqstaa0ojo@4ax.com> Content-Language: en-US Xref: csiph.com de.comp.lang.java:13222 Responding to Rainer: > Ich habe hier > https://www.java-forum.org/thema/alle-elemente-eines-panels.92257/ > > eine Lösung gefunden, um den Text aller Textfelder zusetzen > > Component[] components = xy.getComponents(); > for(Component c : components) { > if(c instanceof JTextField) { > JTextField txf = (JTextField) c; > txf.setText("mein Text"); > } > > Das könnte ich sicherlich für meine Zwecke anpassen > (z. B. alle Optionsfelder ein- oder ausschalten, etc.) > > Nur scheint das o. g. Beispiel für AWT zu passen. > > Wie lautet eine Version für SWING? (javax.swing.JFrame) > Was muss ich z. B. anstelle von 'Component' verwenden? Swing basiert auf AWT; alle Swing-Elemente sind auch AWT-Components. Da JTextFields gesucht werden, zielt das Beispiel offenkundig auf Swing. Dieser Code durchläuft allerdings nur die direkt enthaltenen Komponenten. Üblicherweise hat man es aber mit einem Komponentenbaum zu tun. Bei einem JFrame z.B. dürftest Du damit lediglich eine JRootPane erwischen; Textkomponenten liegen tiefer. Du bräuchtest also noch eine Art rekursiven Abstieg für gefundene (AWT-)Container, um überhaupt zu Textfeldern vorzustoßen. Bliebe noch die Frage, wozu man sowas überhaupt braucht. Um etwa Checkboxes/RadioButtons (~ Optionsfelder?) gruppiert zu kontrollieren, gibt es sicherlich bessere Möglichkeiten - z.B. sie gleich bei Erzeugung in einer geeigneten Collection vorzuhalten. Viele Grüße Patrick