Guten Morgen zusammen,
Ich habe ein Problem bei meinem Programm.
Es gibt eine Oberfläche mit 2 Textfeldern, auf der ich 2 Werte eingeben kann. Diese werden dann in einer "Verarbeitungsklasse" zu Integern gemacht, die ich für die Erstellung von JButtons (in Tabellenform) auf einer neuen Oberfläche benötige. Hierbei benutze ich ein GrilLayout(wet1, wert2)
will ich das Programm starten, bekomme ich die Fehlermeldung "Exception in thread "main" java.lang.IllegalArgumentException: rows and cols cannot both be zero"
Kann mir freundlicher Weise jemand von euch sagen, was ich genau falsch mache und wie ich die Fehler verbessen kann?
Vielen Dank im vorraus
Klasse mit den Textfeldern:
Die Verarbeitungsklasse:
Klasse Für die JButtons:
Ich habe ein Problem bei meinem Programm.
Es gibt eine Oberfläche mit 2 Textfeldern, auf der ich 2 Werte eingeben kann. Diese werden dann in einer "Verarbeitungsklasse" zu Integern gemacht, die ich für die Erstellung von JButtons (in Tabellenform) auf einer neuen Oberfläche benötige. Hierbei benutze ich ein GrilLayout(wet1, wert2)
will ich das Programm starten, bekomme ich die Fehlermeldung "Exception in thread "main" java.lang.IllegalArgumentException: rows and cols cannot both be zero"
Kann mir freundlicher Weise jemand von euch sagen, was ich genau falsch mache und wie ich die Fehler verbessen kann?
Vielen Dank im vorraus
Klasse mit den Textfeldern:
Java:
import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class GUIAbfrage extends JFrame{
JLabel aEingabe = new JLabel("Anzahl von A");
JLabel bEingabe = new JLabel("Anzahl von B");
static JTextField a= new JTextField();
static JTextField b= new JTextField();
JButton weiter = new JButton("Weiter");
public JTextField getA() {
return a;
}
public void setA(JTextField a) {
this.a = a;
}
public JTextField getB() {
return b;
}
public void setB(JTextField b) {
this.b = b;
}
public GUIAbfrage(String title) {
super(title);
GridBagLayout gb = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
Container contentPane = getContentPane();
contentPane.setLayout(gb);
c.fill = GridBagConstraints.HORIZONTAL;
aEingabe.setHorizontalAlignment(JLabel.CENTER);
c.insets = new Insets(5, 5, 5, 5);
c.gridx = 0;
c.gridy = 1;
c.gridwidth = 1;
gb.setConstraints(aEingabe, c);
contentPane.add(aEingabe);
a= new JTextField();
a.setHorizontalAlignment(JTextField.CENTER);
c.insets = new Insets(5, 5, 5, 5);
c.gridx = 0;
c.gridy = 2;
c.gridwidth = 1;
gb.setConstraints(a, c);
contentPane.add(a);
bEingabe.setHorizontalAlignment(JLabel.CENTER);
c.insets = new Insets(5, 5, 5, 5);
c.gridx = 0;
c.gridy = 3;
c.gridwidth = 1;
gb.setConstraints(bEingabe, c);
contentPane.add(bEingabe);
b.setHorizontalAlignment(JTextField.CENTER);
c.insets = new Insets(5, 5, 5, 5);
c.gridx = 0;
c.gridy = 4;
c.gridwidth = 1;
gb.setConstraints(b, c);
contentPane.add(b);
weiter.setHorizontalAlignment(JButton.CENTER);
c.insets = new Insets(5, 5, 5, 5);
c.gridx = 0;
c.gridy = 6;
c.gridwidth = 1;
gb.setConstraints(weiter, c);
weiter.addActionListener(new VerarbeitungMasken(this,weiter));
contentPane.add(weiter);
}
}
Die Verarbeitungsklasse:
Java:
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JButton;
import javax.swing.JMenuItem;
public class VerarbeitungMasken implements ActionListener{
GUIAbfrage guiAbfrage;
GUIAuswahl guiAuswahl;
JButton but;
JButton weiter;
// Erstellung von Konstruktoren + Übergabeparameter
public VerarbeitungMasken(GUIAbfrage guiAbfrage , JButton weiter){
this.guiAbfrage = guiAbfrage;
this.weiter = weiter;
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == weiter){
GUIAbfrage guiAbfrage = Start.getAbfrage();
guiAbfrage.setVisible(false);
try {
int j = Integer.parseInt(GUIAbfrage.a.getText());
GUIAuswahl.setA(j);
}
catch (NumberFormatException x) {
System.out.println("Error : "+ x.getMessage());
}
try {
int i = Integer.parseInt(GUIAbfrage.b.getText());
GUIAuswahl.setB(i);
}
catch (NumberFormatException x) {
System.out.println("Error : "+ x.getMessage());
}
GUIAuswahl guiAuswahl = Start.getAuswahl();
guiAuswahl.fenster.setVisible(true);
}
}
}
Klasse Für die JButtons:
Java:
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class GUIAuswahl{
JFrame fenster = new JFrame("Auswahl");
public static int a= 0;
public static int b=0;
int anzahlButtons = a* b;
JButton[] button = new JButton[anzahlButtons];
public static int getA() {
return a;
}
public static void setA(int a) {
GUIAuswahl.a = a;
}
public static int getB() {
return b;
}
public static void setB(int b) {
GUIAuswahl.b = b;
}
public GUIAuswahl() {
fenster.setSize(500, 500);
fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenster.setLayout(new GridLayout(a,b));
for(int i =0; i <anzahlButtons;i++){
button[i] = new JButton();
fenster.add(button[i]);
}
}
}
Zuletzt bearbeitet: