# Button Array ?



## WLanKabel (6. Jul 2010)

Hallo Leute , 

versuche verzwefeilt einen Buttonarray anzulegen , nur funktioniert nichts wie ich es mir vorstelle :/.
Entweder die Buttons werden nicht angezeigt, oder erst garnicht erzeugt.
Theoretisch kann ich meine Buttons im Array doch so anlegen wie alle anderen Arrays auch?

Kann mir jemand sagen wie genau ich einen Buttonarray anlege, sodass die Buttons im Endeffekt 
Rechteckig angeordnet sind ?

Ja ich habe die Forensuche bereits verwedenet , jedoch nichts gefunden was mir wirklich helfen würde 

Gruß Das Kabel


----------



## Gast2 (6. Jul 2010)

```
JButton[] buttons = new JButtons[100];
/** Buttons erzeugen */
[...]

for (JButton b : buttons) {
    panel.add(b);
}
```

dann noch nen geeigneten LayoutManager verwenden und fertig


----------



## WLanKabel (6. Jul 2010)

Sprich? =) , ich hab vor jButtons zu verwenden , auf einem jFrame , wie genau setz ich das um?

Und vielen Dank für die promte Antwort!

Das Kabel :>


----------



## Marco13 (6. Jul 2010)

```
class TheFrame extends JFrame
{
    private JButton buttons[];

    void initGUI()
    {
        JPanel panel = new JPanel(new GridLayout(10,10));
        buttons =  = new JButton[100];
        for (int i=0; i<buttons.length; i++)
        {
            buttons[i] = new JButton("Button "+i);
            panel.add(buttons[i]);
        }
        somewhere.add(panel);
    }
}
```


----------



## WLanKabel (6. Jul 2010)

Danke für die Antwort!

Jedoch funktioniert es nicht so recht , er meckert schon beim Kompilieren rum :/
Hab die Buttons jetzt eben einzeln gemacht :/

Stehe schonwieder vorm nächsten Problem , wie bekomme ich ein .gif Bild auf meinen Button ? Mit der icon Methode haperts genauso.

Gruß Das Kabel


----------



## eRaaaa (6. Jul 2010)

Wenn du immer mal deinen Code hier mit angeben würdest, könnte man dir auch genau erklären welche Fehler du machst...

Das Icon kannst du entweder im Konstruktor mit angeben oder über die Methode setIcon...was du jetzt genau falsch machst bei dir mit dem Icon kann man jetzt wohl schlecht so sagen...

Kannst auch mal hier schauen:How to Use Buttons, Check Boxes, and Radio Buttons (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)
Da gibts ein Beispiel auch mit Bild..auch mal in den Code dort rein schauen !

Ansonsten nochmal genau erklären wo es hapert...


----------



## Marco13 (7. Jul 2010)

WLanKabel hat gesagt.:


> Jedoch funktioniert es nicht so recht , er meckert schon beim Kompilieren rum :/



"somewhere can not be resolved"?


----------



## headset (7. Jul 2010)

Ich hab ne Idee:

```
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;

public class ButtonArray extends JFrame {

	private JButton[][] Beispiel = new JButton[5][5];

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new ButtonArray();
	}

	public ButtonArray() {
		initGui();

	}

	private void initGui() {

		setSize(new Dimension(500, 500));
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setLocationRelativeTo(null);
		setLayout(new GridLayout(5, 5, 5, 5));
		for (int i = 0; i < 5; i++) {
			for (int j = 0; j < 5; j++) {
				JButton button = new JButton("Test");
				Beispiel[i][j] = button;
				add(Beispiel[i][j]);
			}
		}
		setVisible(true);

	}

}
[/Java]


Ich weis nicht, ab du so etwas gebrauchen kannst, aber ich habe 2D Array verwendet und sie in ein Gridlayout eingefügt. 
Bei einer normalen Array musst du
[code=Java]
JButton[] name = new JButton[(int)längederArray];
for(int i = 0;i < längederArray;i++){
JButton test = new JButton;
name[i]=test;
}
[/Java]
machen
```


----------



## WLanKabel (7. Jul 2010)

Danke, tolles Forum hier ! 

Also wrd gleich ma den QC reinstellen , hätt ich auch früher drauf kommen können .
Werds auch gleich mal ausprobieren.

Die eigentliche Aufgabe die ich hab, ist ein Abiturprojekt. Ich muss in Form einer 3 Schichten Architektur eine kleine Sidebar machen , sprich ich hab mir das so vorgestellt:

Ich hab mein Fenster (jFrame), und setze dort meine Buttons rein, welche ich mit den nomalen Windows Icons belege( Eplorer , Clac, etc.)

Hinzu kommt nacher noch ein Terminplaner , und eine Funktion neue Buttons hinzuzufügen.

Melde mich nacher zurück 

Das Kabel


----------



## WLanKabel (10. Jul 2010)

Also sorry das ich mich erst so spät melde, 

der QC is hier :

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 29.06.2010
  * @author
  */

public class GUI extends JFrame {
  // Anfang Attribute
  private JButton jButton1 = new JButton();
  private JButton jButton2 = new JButton();
  private JButton jButton3 = new JButton();
  private JButton jButton4 = new JButton();
  private JButton jButton5 = new JButton();
  // Ende Attribute

  public GUI(String title) {
    // Frame-Initialisierung
    super(title);
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int frameWidth = 214;
    int frameHeight = 704;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    Container cp = getContentPane();
    cp.setLayout(null);
    // Anfang Komponenten

    jButton1.setBounds(8, 8, 33, 33);                         // Größe
    jButton1.setText("jButton1");                             //Text
    jButton1.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton1_ActionPerformed(evt);



      }
    });
    cp.add(jButton1);
    jButton2.setBounds(56, 8, 35, 33);
    jButton2.setText("jButton2");
    jButton2.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton2_ActionPerformed(evt);
      }
    });
    cp.add(jButton2);
    jButton3.setBounds(104, 8, 35, 33);
    jButton3.setText("jButton3");
    jButton3.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton3_ActionPerformed(evt);
      }
    });
    cp.add(jButton3);
    jButton4.setBounds(152, 8, 35, 33);
    jButton4.setText("jButton4");
    jButton4.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton4_ActionPerformed(evt);
      }
    });
    cp.add(jButton4);
    jButton5.setBounds(104, 640, 91, 25);
    jButton5.setText("Beenden");
    jButton5.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton5_ActionPerformed(evt);

        dispose();
      }
    });
    cp.add(jButton5);
    // Ende Komponenten

    setResizable(false);
    setVisible(true);
  }

  // Anfang Methoden
  public void jButton1_ActionPerformed(ActionEvent evt) {
         try  {
          Runtime rt = Runtime.getRuntime();
          Process proc = rt.exec("explorer");            //Funktion - Explorer
         } catch (Throwable t){
         t.printStackTrace();
         }
  }

  public void jButton2_ActionPerformed(ActionEvent evt) {
    try  {
          Runtime rt = Runtime.getRuntime();
          Process proc = rt.exec("calc");            //Funktion - Rechner
         } catch (Throwable t){
         t.printStackTrace();
         }
  }

  public void jButton3_ActionPerformed(ActionEvent evt) {

         try  {
          Runtime rt = Runtime.getRuntime();
          Process proc = rt.exec("iexplorer");            //Funktion - Internet
         } catch (Throwable t){
         t.printStackTrace();
         }

  }

  public void jButton4_ActionPerformed(ActionEvent evt) {
     try  {
          Runtime rt = Runtime.getRuntime();
          Process proc = rt.exec("calc");            //Funktion - Kalender
         } catch (Throwable t){
         t.printStackTrace();
         }
  }

  public void jButton5_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
  }

  // Ende Methoden

  public static void main(String[] args) {
    new GUI("GUI");
  }
}


:] Gruß Das Kabel


----------



## headset (10. Jul 2010)

So, jetzt habe ich den Code mal etwas formatiert und als JavaCode eingefügt. Dann ist es schon viel übersichtlicher

```
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;

/**
 * 
 * Beschreibung
 * 
 * @version 1.0 vom 29.06.2010
 * @author
 */

public class GUI extends JFrame {
	// Anfang Attribute
	private JButton jButton1 = new JButton();
	private JButton jButton2 = new JButton();
	private JButton jButton3 = new JButton();
	private JButton jButton4 = new JButton();
	private JButton jButton5 = new JButton();

	// Ende Attribute

	public GUI(String title) {
		// Frame-Initialisierung
		super(title);
		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
		int frameWidth = 214;
		int frameHeight = 704;
		setSize(frameWidth, frameHeight);
		Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
		int x = (d.width - getSize().width) / 2;
		int y = (d.height - getSize().height) / 2;
		setLocation(x, y);
		Container cp = getContentPane();
		cp.setLayout(null);
		// Anfang Komponenten

		jButton1.setBounds(8, 8, 33, 33); // Größe
		jButton1.setText("jButton1"); // Text
		jButton1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				jButton1_ActionPerformed(evt);

			}
		});
		cp.add(jButton1);
		jButton2.setBounds(56, 8, 35, 33);
		jButton2.setText("jButton2");
		jButton2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				jButton2_ActionPerformed(evt);
			}
		});
		cp.add(jButton2);
		jButton3.setBounds(104, 8, 35, 33);
		jButton3.setText("jButton3");
		jButton3.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				jButton3_ActionPerformed(evt);
			}
		});
		cp.add(jButton3);
		jButton4.setBounds(152, 8, 35, 33);
		jButton4.setText("jButton4");
		jButton4.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				jButton4_ActionPerformed(evt);
			}
		});
		cp.add(jButton4);
		jButton5.setBounds(104, 640, 91, 25);
		jButton5.setText("Beenden");
		jButton5.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				jButton5_ActionPerformed(evt);

				dispose();
			}
		});
		cp.add(jButton5);
		// Ende Komponenten

		setResizable(false);
		setVisible(true);
	}

	// Anfang Methoden
	public void jButton1_ActionPerformed(ActionEvent evt) {
		try {
			Runtime rt = Runtime.getRuntime();
			Process proc = rt.exec("explorer"); // Funktion - Explorer
		} catch (Throwable t) {
			t.printStackTrace();
		}
	}

	public void jButton2_ActionPerformed(ActionEvent evt) {
		try {
			Runtime rt = Runtime.getRuntime();
			Process proc = rt.exec("calc"); // Funktion - Rechner
		} catch (Throwable t) {
			t.printStackTrace();
		}
	}

	public void jButton3_ActionPerformed(ActionEvent evt) {

		try {
			Runtime rt = Runtime.getRuntime();
			Process proc = rt.exec("iexplorer"); // Funktion - Internet
		} catch (Throwable t) {
			t.printStackTrace();
		}

	}

	public void jButton4_ActionPerformed(ActionEvent evt) {
		try {
			Runtime rt = Runtime.getRuntime();
			Process proc = rt.exec("calc"); // Funktion - Kalender
		} catch (Throwable t) {
			t.printStackTrace();
		}
	}

	public void jButton5_ActionPerformed(ActionEvent evt) {
		// TODO hier Quelltext einfügen
	}

	// Ende Methoden

	public static void main(String[] args) {
		new GUI("GUI");
	}
}
```


----------

