Ich habe in einem Gridlayout (6,3) 18 Button gepackt und es auch geschafft mit ner for-Schleife die Button zu beschriften. Nun wollte ich auch die Größe verändern.
Mit jedem Button einzeln funktioniert das auch, nur nicht für alle gleichzeitig nicht. Weder an der Stelle, wo die Buttons erzeugt werden, noch an der Stelle, wo die Button in for-Schleifen beschriftet werden. Gibt es einen Trick, wie ich das mit ner Schleife oder sonst etwas ähnlichem hinbekomme, will ja nicht 18mal das Gleiche schreiben!
Hi du
Ich verstehe nicht wirklich,
wie du das grad gemeint hast, wie soll ich mcih denn dann im Quellcode auf die Klasse beziehen?
(Java-Anfänger, sorry.. )
lieben Gruß
Hmm leider auch nicht. Wenn ich das an dern Schluss setze, öffnet er erst gar nicht die Button bzw das ganze BorderLayout nicht mehr. Dann ist nur noch die Titelzeile zu sehen.
/*
* Gui.java
*/
package gui;
import java.awt.*;
import java.awt.event.*;
//import java.io.FileNotFoundException;
//import java.io.IOException;
import java.awt.ScrollPane;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.text.JTextComponent;
import javax.swing.*;
public class Gui implements ActionListener{
JFrame fenster;
JPanel BGPanel, centerPanel;
JLabel titelLabel;
JButton button1 ;
MyButton button2[][] = new MyButton[6][3];
int i;
int j;
public Gui() {
fenster = new JFrame("Vokabeltrainer");
//fenster.setSize(1600,1600);
fenster.setVisible(true);
fenster.setResizable(false);
//TitelLabel
titelLabel = new JLabel("-------------Welcome in Britain------------");
Font comic = new Font(" Comic Sans MS", Font.BOLD +Font.ITALIC, 36);
titelLabel.setFont(comic);
titelLabel.setForeground(Color.RED);
//GridLabel-Panel
centerPanel = new JPanel();
centerPanel.setLayout(new GridLayout(6,3));
for( i=0; i<6;i++) {
for( j=0; j<3;j++) {
// MyButton button2 = new MyButton();
// //button2[i][j].addActionListener( this );
// centerPanel.add(button2);
button2[i][j] = new MyButton();
button2[i][j].addActionListener( this );
centerPanel.add(button2[i][j]);
}
}
//Button für eigene Lektionen
button1= new JButton("eigene Lektionen");
button1.setFont(comic);
//Hauptfenster
fenster.setLayout(new BorderLayout());
fenster.add("North", titelLabel);
fenster.add("Center", centerPanel);
fenster.add("South", button1);
fenster.pack();
// Buttons beschriften
for( i=0;i<6;i++) {
button2[i][0].setText("Lektion"+ (i+1));
}
for( i=0;i<6;i++) {
button2[i][1].setText("Abfrage"+ (i+1));
}
for( i=0;i<6;i++) {
button2[i][2].setText("Vokabelliste"+ (i+1));
}
fenster.validate();
}
class MyButton extends JButton {
public MyButton() {
super();
setPreferredSize(new Dimension(0, 62));
}
}
public static void main(String[] args){
new Gui();
}
public void actionPerformed(ActionEvent e) {
System.out.println(((MyButton)e.getSource()).getText());
}
}
In den beiden verschachtelten for Schleifen hattest du nicht auf den Buttonarray zugegriffen
um die Buttons zu erzeugen.
Das ist ungefähr so als wenn du die Möhren nicht in den Kochtopf tust, sondern daneben
Gruß,
André