Hi, ich sitze grad an nem Java-Spiel und habe ein Problem, an dem ich schon seit Stunden sitze und es einfach nicht auf die Reihe bekomme 
Es gibt eine GUI-Klasse "NewGame":
Bei Klick auf den "Start-Button" JButton start sollen die Werte aus den TextFeldern ausgelesen werden und ein neuer Spieler erstellt werden (Player-Klasse vorhanden).
Das Problem ist nur, dass ich die ausgelesenen Werte nicht von einer anderen Klasse auslesen kann.
Wenn ich mit dem ActionListener(Fettschrift) einen neuen Spieler erstellt habe, kann ich die Instanz nicht von der Hauptklasse benutzen
Ich hab stundenlang gegoogled, aber es passt wirklich nichts, da mein Programmaufbau doch irgendwie ziemlich anders ist.
Wie krieg ich das nun hin? Hab schon diverse getter-Methoden probiert etc.
Es gibt eine GUI-Klasse "NewGame":
Java:
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class NewGame extends JFrame {
private static final long serialVersionUID = -8008194757837145061L;
public JTextField playerName1;
public NewGame() {
super("Neues Spiel");
String[] colors = {"Grün", "Rot", "Blau", "Gelb", "Schwarz", "Weiß"};
setSize(530,300);
setLayout(null);
JLabel label = new JLabel("Bitte Spieler eingeben!");
Font fontNewGame = new Font("Arial", Font.BOLD, 18);
label.setBounds(180, 0, 300, 40);
add(label);
JLabel label2 = new JLabel("Name");
label2.setBounds(60, 25, 40, 40);
add(label2);
JLabel label3 = new JLabel("Farbe");
label3.setBounds(450, 25, 40, 40);
add(label3);
label.setFont(fontNewGame);
//Die 4 Eingabe-Felder für die Namen
final JTextField playerName1 = new JTextField("adsasd");
playerName1.setBounds(10, 60, 140, 40);
add(playerName1);
final JTextField playerName2 = new JTextField();
playerName2.setBounds(10, 110, 140, 40);
add(playerName2);
final JTextField playerName3 = new JTextField();
playerName3.setBounds(10, 160, 140, 40);
add(playerName3);
final JTextField playerName4 = new JTextField();
playerName4.setBounds(10, 210, 140, 40);
add(playerName4);
//Wenn alles eingegeben wurde, startet man das Spiel mit diesem Button
[B]JButton start = new JButton("Start");
start.setBounds(160, 60, 240, 40);
start.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//hier soll ein neuer Player erstellt werden...Player player = new Player(arg1, arg2, arg3);
}
});[/B]
add(start);
//2.Spieler Auswahl, ob PC-Gegner, Mensch-Gegner oder inaktiv
//listeners einfügen, wenn buttongroup auf inaktiv -> grau machen
JRadioButton mensch1 = new JRadioButton("Mensch");
mensch1.setBounds(160, 110, 80, 40);
add(mensch1);
JRadioButton pc1 = new JRadioButton("PC");
pc1.setBounds(250, 110, 80, 40);
add(pc1);
JRadioButton inaktiv1 = new JRadioButton("inaktiv");
inaktiv1.setBounds(340, 110, 80, 40);
add(inaktiv1);
ButtonGroup bg1 = new ButtonGroup();
bg1.add(mensch1);
bg1.add(pc1);
bg1.add(inaktiv1);
//3.Spieler Auswahl, ob PC-Gegner, Mensch-Gegner oder inaktiv
JRadioButton mensch2 = new JRadioButton("Mensch");
mensch2.setBounds(160, 160, 80, 40);
add(mensch2);
JRadioButton pc2 = new JRadioButton("PC");
pc2.setBounds(250, 160, 80, 40);
add(pc2);
JRadioButton inaktiv2 = new JRadioButton("inaktiv");
inaktiv2.setBounds(340, 160, 80, 40);
add(inaktiv2);
ButtonGroup bg2 = new ButtonGroup();
bg2.add(mensch2);
bg2.add(pc2);
bg2.add(inaktiv2);
//4.Spieler Auswahl, ob PC-Gegner, Mensch-Gegner oder inaktiv
JRadioButton mensch3 = new JRadioButton("Mensch");
mensch3.setBounds(160, 210, 80, 40);
add(mensch3);
JRadioButton pc3 = new JRadioButton("PC");
pc3.setBounds(250, 210, 80, 40);
add(pc3);
JRadioButton inaktiv3 = new JRadioButton("inaktiv");
inaktiv3.setBounds(340, 210, 80, 40);
add(inaktiv3);
ButtonGroup bg3 = new ButtonGroup();
bg3.add(mensch3);
bg3.add(pc3);
bg3.add(inaktiv3);
JSpinner spin1 = new JSpinner(new SpinnerListModel(colors));
spin1.setBounds(420, 65, 85, 35);
add(spin1);
JSpinner spin2 = new JSpinner(new SpinnerListModel(colors));
spin2.setBounds(420, 115, 85, 35);
add(spin2);
JSpinner spin3 = new JSpinner(new SpinnerListModel(colors));
spin3.setBounds(420, 165, 85, 35);
add(spin3);
JSpinner spin4 = new JSpinner(new SpinnerListModel(colors));
spin4.setBounds(420, 215, 85, 35);
add(spin4);
setVisible(true);
}
}
Bei Klick auf den "Start-Button" JButton start sollen die Werte aus den TextFeldern ausgelesen werden und ein neuer Spieler erstellt werden (Player-Klasse vorhanden).
Das Problem ist nur, dass ich die ausgelesenen Werte nicht von einer anderen Klasse auslesen kann.
Wenn ich mit dem ActionListener(Fettschrift) einen neuen Spieler erstellt habe, kann ich die Instanz nicht von der Hauptklasse benutzen
Ich hab stundenlang gegoogled, aber es passt wirklich nichts, da mein Programmaufbau doch irgendwie ziemlich anders ist.
Wie krieg ich das nun hin? Hab schon diverse getter-Methoden probiert etc.