Deklaration von vielen Buttons mit Schleife vereinfachen?

Status
Nicht offen für weitere Antworten.
B

blaues_etwas

Gast
Hallo.
Ich hab das Problem, dass ich viele Buttons deklarieren möchte, aber jede Zeile manuell hinzuschreiben ist doch sehr umständlich und nicht gerade elegant, also wie kann ich die Deklaration mit Hilfe einer for-Schleife vereinfachen.

JToggleButton button1 = new JToggleButton(icon);
...
JToggleButton button60 = new JToggleButton(icon);

thx
 
B

Beni

Gast
Das Zauberwort lautet "Array":
Code:
JToggleButton[] button = new JToggleButton[ 60 ];
for( int i = 0; i < button.length; i++ ){
  button[0] = new JToggleButton(icon);
}
 
B

blaues_etwas

Gast
Code:
public void actionPerformed(ActionEvent e)
{
	if(e.getSource()==button1)
	{
		aktion();
	}
[...]
	if(e.getSource()==button60)
	{
		aktion();
	}
}

Kann ich hier auch mit einer Schleife arbeiten, oder muss ich das manuell machen ?
 
B

Beni

Gast
Klar geht das:
Code:
for( int i = 0; i < buttons.length; i++ ){
  if( e.getSource() == buttons[i] ){
    aktion();
    break;
  }
}
 
B

blaues_etwas

Gast
danke für deine Hilfe, aber was ich nicht verstehe, wieso ich ein "break;" schreiben muss ?
break kenne ich nur aus switch..
 

Schnitter

Bekanntes Mitglied
Mal angenommen, e.getSource()==buttons[0]. Dann wird action() zwar nur 1 mal ausgeführt, aber die restlichen 59 Elemente werden trotzdem durchgeprüft. das break; bricht die Schleife beim ersten Treffer ab.
 

semi

Top Contributor
Warum müssen bei dir alle Buttons überhaupt einen einzigen ActionListener haben?
Definiere eine Reihe von Actions (javax.swing.Action bzw. javax.swing.AbstractAction) und erstelle dafür die Buttons.
 
B

blaues_etwas

Gast
Sry semi,
aber ich kann dir nicht folgen. Dafür reicht wohl mein Verständnis noch nicht aus .. :/
 

semi

Top Contributor
blaues_etwas hat gesagt.:
Sry semi,
aber ich kann dir nicht folgen. Dafür reicht wohl mein Verständnis noch nicht aus .. :/
Hier ein kleines Beispiel.

Du definierst nur Action-Objekte, alle Komponenten wie JButton, JMenuItem etc. können aus den Action Objekten erstellt werden. Siehe auch (http://www.java-forum.org/de/viewtopic.php?t=60316)
Code:
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.KeyStroke;

public class ActionExample extends JPanel
{
   private static final long serialVersionUID = 1L;

   private Action actions[] = { new ActionA(), new ActionB(), new ActionC() };

   public ActionExample()
   {
      super();
      initUI();
   }

   private void initUI()
   {
      setLayout(new FlowLayout());

      for (Action action : actions)
      {
         add(new JButton(action));
      }
   }

   class ActionA extends AbstractAction
   {
      private static final long serialVersionUID = 1L;

      public ActionA()
      {
         super("A");
         putValue(SHORT_DESCRIPTION, "Aktion A");
         putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_A, 0));
         // siehe auch andere Properties, wie ICON etc.
      }

      public void actionPerformed(ActionEvent e)
      {
         System.out.println(String.format("%s ausgeführt.", getValue(SHORT_DESCRIPTION)));
      }
   }

   class ActionB extends AbstractAction
   {
      private static final long serialVersionUID = 1L;

      public ActionB()
      {
         super("B");
         putValue(SHORT_DESCRIPTION, "Aktion B");
         putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_B, 0));
         // siehe auch andere Properties, wie ICON etc.
      }

      public void actionPerformed(ActionEvent e)
      {
         System.out.println(String.format("%s ausgeführt.", getValue(SHORT_DESCRIPTION)));
      }
   }

   class ActionC extends AbstractAction
   {
      private static final long serialVersionUID = 1L;

      public ActionC()
      {
         super("C");
         putValue(SHORT_DESCRIPTION, "Aktion C");
         putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_C, 0));
         // siehe auch andere Properties, wie ICON etc.
      }

      public void actionPerformed(ActionEvent e)
      {
         System.out.println(String.format("%s ausgeführt.", getValue(SHORT_DESCRIPTION)));
      }
   }

   public static void main(String[] args)
   {
      final JFrame frame = new JFrame("Action Example");
      frame.addWindowListener(new WindowAdapter()
      {
         public void windowClosing(WindowEvent p_e)
         {
            frame.setVisible(false);
            System.exit(0);
         }
      });
      frame.setContentPane(new ActionExample());
      frame.setSize(300, 200);
      frame.setLocationRelativeTo(null);
      frame.setVisible(true);
   }
}
 
B

blaues_etwas

Gast
interessant, aber ich belasse es lieber, wie ich es nun habe, da mir diese Lösung mehr zusagt.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Ernesto95 JavaFX JavaFX GUI mit sehr vielen Update requests AWT, Swing, JavaFX & SWT 4
I Umgang mit vielen Objekten AWT, Swing, JavaFX & SWT 3
RalleYTN Modaler Dialog und JTree Node mit sehr... seeeeehr vielen Elementen AWT, Swing, JavaFX & SWT 6
D 2D-Grafik 2D-GUI mit vielen .png AWT, Swing, JavaFX & SWT 10
Z Swing Von vielen Klassen auf ein GUI-Element zugreifen AWT, Swing, JavaFX & SWT 10
B Unendlich vielen JTextFields Namen zuweisen AWT, Swing, JavaFX & SWT 8
J JApplet langsam wegen vielen Tooltips? AWT, Swing, JavaFX & SWT 36
T Design mit vielen Feldern AWT, Swing, JavaFX & SWT 2
Z Unübersichtlichkeit bei vielen Buttons AWT, Swing, JavaFX & SWT 9
H Swing NullPointerException in JTable bei vielen Einträgen AWT, Swing, JavaFX & SWT 2
schalentier Menus mit vielen Eintraegen AWT, Swing, JavaFX & SWT 4
XWing Basic JPanel mit 2 Buttons beutzen. AWT, Swing, JavaFX & SWT 10
jojoge Wie erstelle ich runde Buttons mit Farbe? AWT, Swing, JavaFX & SWT 1
berserkerdq2 Buttons und Shapes sehen ja nach Screengröße klein oder zu groß aus, jemand eine Idee, was man tun kann? AWT, Swing, JavaFX & SWT 1
H Swing Buttons erst nach Klick sichtbar AWT, Swing, JavaFX & SWT 13
volcanos SpringLayout mit zusätzlichen Buttons außerhalb des SpringLayout AWT, Swing, JavaFX & SWT 33
K Swing Buttons erst blinken lassen und dann abfragen, ob sie gedrückt worden sind AWT, Swing, JavaFX & SWT 2
Z Switch Case für Buttons AWT, Swing, JavaFX & SWT 8
O Swing JOptionPane.showOptionDialog - Wie kann ich Buttons größer machen AWT, Swing, JavaFX & SWT 10
R mehrere buttons mit forschleife kreieren und individuell bearbeiten AWT, Swing, JavaFX & SWT 1
Z Swing Kann man denn abstand zwischen zwei Buttons berechnen AWT, Swing, JavaFX & SWT 5
B JavaFX DropDown Menu mit ausführbaren Buttons AWT, Swing, JavaFX & SWT 1
VPChief Buttons Reagieren erst wenn ich Fenster minimiere AWT, Swing, JavaFX & SWT 4
ms_cikar Jbutton erzeugt neue Buttons AWT, Swing, JavaFX & SWT 2
K Buttons dynamisch erstellen (NetBeans) AWT, Swing, JavaFX & SWT 10
S Kreis vergrößern/verkleinern mit Buttons AWT, Swing, JavaFX & SWT 1
J JavaFX von einem Array aus Buttons herausfinden auf welcher geklickt wurde aus dem Array. AWT, Swing, JavaFX & SWT 1
xYurisha ActionListener Methoden Buttons zuweisen! AWT, Swing, JavaFX & SWT 16
xYurisha Aus einer Gui Buttons, Label und ProgessBars entfernen AWT, Swing, JavaFX & SWT 4
CptK Wieso wird nur ein Teil meiner Buttons angezeigt? AWT, Swing, JavaFX & SWT 1
J Ziehen eines Buttons im JPanel AWT, Swing, JavaFX & SWT 2
J Drag and Drop eines Buttons AWT, Swing, JavaFX & SWT 0
J TicTacToe Buttons AWT, Swing, JavaFX & SWT 14
J ActionListener bei Buttons AWT, Swing, JavaFX & SWT 14
DaCrazyJavaExpert Swing Extern den Text eines nicht fetsgelegten Buttons bekommen. AWT, Swing, JavaFX & SWT 12
T Swing Double Click bei Buttons in JTable AWT, Swing, JavaFX & SWT 9
C Buttons funtionieren nicht AWT, Swing, JavaFX & SWT 10
S SWT neues Fenster, buttons aus alten etc... AWT, Swing, JavaFX & SWT 0
G vorgefertigte Buttons oder neue Komponente mit MouseListener? AWT, Swing, JavaFX & SWT 0
Neumi5694 Sprache der Standard-Buttons AWT, Swing, JavaFX & SWT 7
Timo_neu_in_java Buttons Erstellen AWT, Swing, JavaFX & SWT 6
H JavaFX TableCell mit Buttons AWT, Swing, JavaFX & SWT 1
A Swing Programm funktioniert aber zwei Buttons werden angezeigt AWT, Swing, JavaFX & SWT 3
kilopack15 Buttons ohne Funktion AWT, Swing, JavaFX & SWT 2
S Keylistener reagiert bei Buttons nicht. AWT, Swing, JavaFX & SWT 8
S ActionListener für alle Buttons AWT, Swing, JavaFX & SWT 26
T Buttons auf Tablet viel kleiner als am PC AWT, Swing, JavaFX & SWT 0
S Buttons und TextField automatisch vergrößern AWT, Swing, JavaFX & SWT 8
R 2D-Grafik Buttons mit Slick2D und LWJGL AWT, Swing, JavaFX & SWT 2
J JavaFX Buttons mit Array erzeugen AWT, Swing, JavaFX & SWT 1
JG12111989 Buttons funktionieren nicht AWT, Swing, JavaFX & SWT 4
A Swing Buttons werden trotz setVisible nicht dargestellt AWT, Swing, JavaFX & SWT 14
M Buttons in JSplitPane hinzufügen AWT, Swing, JavaFX & SWT 6
X Swing Anwendung regaiert auf keine Buttons mehr wärend while(scanner.hasNextLine()) ausgeführt wird. AWT, Swing, JavaFX & SWT 4
T Durch klicken eines Buttons Klasse wechseln AWT, Swing, JavaFX & SWT 2
A Swing JPanel zeigt Buttons nicht an AWT, Swing, JavaFX & SWT 4
V Tastatur KeyListener für mehrere Buttons AWT, Swing, JavaFX & SWT 1
I JavaFX Langes drücken eines Buttons AWT, Swing, JavaFX & SWT 4
I JavaFX Buttons und TableView AWT, Swing, JavaFX & SWT 2
K Swing Durch Methode erzeugte Buttons ansteuern AWT, Swing, JavaFX & SWT 5
D Buttons werden nebeneinander angeordnet AWT, Swing, JavaFX & SWT 9
J Java -8 Action Listener für mehrere Buttons AWT, Swing, JavaFX & SWT 9
D JavaFX Dynamisch erzeugte Buttons sollen Code ausführen. AWT, Swing, JavaFX & SWT 2
D Buttons erscheinen nicht auf Frame AWT, Swing, JavaFX & SWT 2
M 4-Gewinnt mit Buttons AWT, Swing, JavaFX & SWT 1
Y Kann man Buttons in einem JFrame rund machen ? AWT, Swing, JavaFX & SWT 2
K Swing Keine Reaktion auf Tastatureingaben bei mehreren Buttons??? AWT, Swing, JavaFX & SWT 4
wolfgang63 JavaFX Transparenter Hintergrund aber sichtbare Buttons AWT, Swing, JavaFX & SWT 6
C Im ActionListener Buttons disablen, einen Thread starten, dann Buttons enablen AWT, Swing, JavaFX & SWT 2
gamebreiti auf usereingabe warten mit GUI(nur Labels, Buttons etc. keine Texteingaben) AWT, Swing, JavaFX & SWT 3
W Buttons verschieben AWT, Swing, JavaFX & SWT 3
R Swing Buttons werden nicht angezeigt AWT, Swing, JavaFX & SWT 4
P Buttons/Labels auf GUI positionieren AWT, Swing, JavaFX & SWT 2
X Swing setContentPane verdeckt mir alle Buttons Labels etc... AWT, Swing, JavaFX & SWT 14
H Taschenrechnerprojekt in Javafx - Frage zu den Buttons in FXML AWT, Swing, JavaFX & SWT 1
U Swing Beim Bedienen eines Buttons JFrame schließen AWT, Swing, JavaFX & SWT 2
A Radio Buttons sollen den Text der text Area bestimmen AWT, Swing, JavaFX & SWT 9
H org.eclipse.swt.Slider ohne Buttons AWT, Swing, JavaFX & SWT 1
U Buttons schräg implementieren AWT, Swing, JavaFX & SWT 4
X buttons aus externe klasse lesen? AWT, Swing, JavaFX & SWT 3
V Buttons sehen immer "active" aus AWT, Swing, JavaFX & SWT 6
K Event Handling 2 Buttons und Thread stop AWT, Swing, JavaFX & SWT 3
D Buttons erscheinen nicht auf dem zweiten Frame AWT, Swing, JavaFX & SWT 4
D Wie kann ich Buttons und Labels besser anordnen AWT, Swing, JavaFX & SWT 4
C Probleme mit Buttons und einem ActionListener AWT, Swing, JavaFX & SWT 2
A Swing bei Auswahl und klick eines JComboBox buttons die Klasse eines anderen Projekts aufrufen AWT, Swing, JavaFX & SWT 3
M Menü mit Buttons AWT, Swing, JavaFX & SWT 8
H Swing JTabbedPane: Zusätzliche Buttons neben den Tabs AWT, Swing, JavaFX & SWT 7
A Swing Focus der Radio Buttons + text bleibt gleich und gleichzeitige ausgabe zweier Objekte in 1. Fenster AWT, Swing, JavaFX & SWT 3
U Swing Buttons generieren AWT, Swing, JavaFX & SWT 19
G Swing Buttons in Layouts frei platzieren AWT, Swing, JavaFX & SWT 7
S Layouts, mehrere Buttons nebeneinander AWT, Swing, JavaFX & SWT 2
B Buttons auf JLabel? AWT, Swing, JavaFX & SWT 4
J ActionListener für Buttons AWT, Swing, JavaFX & SWT 3
1 Buttons in Kombination mit Linien AWT, Swing, JavaFX & SWT 3
K Aussehen des Buttons resetten AWT, Swing, JavaFX & SWT 4
C Verschiebbare "Buttons" in einer Tabelle AWT, Swing, JavaFX & SWT 3
A JButton - Klicks zählen auf mehreren Buttons AWT, Swing, JavaFX & SWT 2
H Swing Button Klick soll "Untermenü-Buttons" erzeugen AWT, Swing, JavaFX & SWT 2
dzim Toolbar - Problem bei enable/disable von Buttons AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben