Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.java > #13227

Re: Java Swing: alle Elemente eines JFrames durchlaufen

From Patrick Roemer <sangamon@netcologne.de>
Newsgroups de.comp.lang.java
Subject Re: Java Swing: alle Elemente eines JFrames durchlaufen
Date 2018-11-30 14:38 +0100
Organization news.netcologne.de
Message-ID <ptrehg$bbd$1@newsreader4.netcologne.de> (permalink)
References <90ktvdt94icmm7d1vk9nrakimqstaa0ojo@4ax.com> <ptn2c1$6h9$1@newsreader4.netcologne.de> <9vuvvdtqjv4rp1rcehsk50jhcek69rgbbv@4ax.com>

Show all headers | View raw


Responding to Rainer:
> On Wed, 28 Nov 2018 22:46:41 +0100, Patrick Roemer
> <sangamon@netcologne.de> wrote:
>>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.
> 
> Könnte ich dazu ein Code-Beispiel haben?

Schwierig, wenn man nicht genau weiß, was Du eigentlich erreichen
willst. Im simpelsten Fall sowas:

<snip>
import javax.swing.*;
import java.awt.FlowLayout;
import java.awt.event.*;
import java.util.*;
import java.util.stream.*;
import static java.util.stream.Collectors.*;

public class JavaSwingCheck {

  public static void main(String[] args) {
    SwingUtilities.invokeLater(JavaSwingCheck::buildUI);
  }

  private static void buildUI() {
    JFrame frame = new JFrame("Check");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().setLayout(new FlowLayout());
    List<JCheckBox> checks =
      Stream.of("A", "B", "C").map(JCheckBox::new).collect(toList());
    checks.forEach(c -> frame.getContentPane().add(c));
    Action action = new AbstractAction("Off!") {
      @Override public void actionPerformed(ActionEvent e) {
        checks.forEach(c -> c.setSelected(false));
      }
    };
    JButton button = new JButton(action);
    frame.getContentPane().add(button);
    frame.pack();
    frame.setVisible(true);
  }
}
</snip>

In einer echten, komplexeren Applikation würde man eh ein
Ordnungsprinzip für die UI-Logik haben wollen (MVC, Presentation
Model,...), und da gäbe es dann jeweils "natürliche" Stellen, an die
derartige Logik hingehört.

Viele Grüße
Patrick

Back to de.comp.lang.java | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Java Swing: alle Elemente eines JFrames durchlaufen Rainer <Rainer.Poop@Rcpt.at> - 2018-11-28 18:36 +0100
  Re: Java Swing: alle Elemente eines JFrames durchlaufen Patrick Roemer <sangamon@netcologne.de> - 2018-11-28 22:46 +0100
    Re: Java Swing: alle Elemente eines JFrames durchlaufen Rainer <Rainer.Poop@Rcpt.at> - 2018-11-29 15:48 +0100
      Re: Java Swing: alle Elemente eines JFrames durchlaufen Patrick Roemer <sangamon@netcologne.de> - 2018-11-30 14:38 +0100
    Re: Java Swing: alle Elemente eines JFrames durchlaufen Rainer <Rainer.Poop@Rcpt.at> - 2018-11-29 15:54 +0100
      Re: Java Swing: alle Elemente eines JFrames durchlaufen Rainer <Rainer.Poop@Rcpt.at> - 2018-11-29 16:45 +0100

csiph-web