Hallo alle zusammen,
ich muss für ein Schulprojekt eine alte Abi Aufgabe aus programmieren. Nun habe ich das Problem das es in dieser Aufgabe 2 JTextField's() gibt. In diesen muss der Spieler etwas eingeben. Die Eingabe wird dann in JLabel's ausgegeben. Nun habe ich das Problem das getText() keinen Wert gibt. Ich liste hier mal alle Sachen auf die etwas mit dem TextFeld zu tun haben.
[CODE lang="java" title="Klasse Steuerung"]public class Steuerung
{
public static void main(String[] args)
{
GUI verbindung = new GUI();
verbindung.setVisible(true);
}
public String dasWort()
{
Wort dasWort = new Wort();
return dasWort.luecke(null);
}
public String dieWortliste()
{
Wortliste dieWortliste = new Wortliste();
return dieWortliste.ausgabe();
}
public String derSpieler()
{
Spieler derSpieler = new Spieler();
return derSpieler.wechsel();
}
}
[/CODE]
[CODE lang="java" title="Klasse GUI"]import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
public class GUI extends JFrame implements ActionListener
{
final JPanel panel = new JPanel();
JPanel contentPane;
JPanel spielerpunkte;
JPanel auswahl;
JPanel spiel;
JPanel auswertung;
public JTextField eingabe1;
public JTextField eingabe2;
public JLabel punkteausgabe1;
public JLabel punkteausgabe2;
public JRadioButton luecke;
public JRadioButton puzzle;
public JButton starte;
public JLabel istamzug;
public JLabel ausgabe;
public JTextField eingabe;
public JButton fertig;
public JLabel richtigoderfalsch;
public JButton ok;
public Steuerung steuerung = new Steuerung();
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
try
{
GUI frame = new GUI();
frame.setVisible(true);
} catch (Exception e)
{
e.printStackTrace();
}
}
});
}
public GUI()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 750, 630);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
spielerpunkte = new JPanel();
spielerpunkte.setBounds(0, 0, 734, 138);
contentPane.add(spielerpunkte);
spielerpunkte.setLayout(null);
JPanel spieler_1 = new JPanel();
spieler_1.setBounds(10, 11, 351, 116);
spielerpunkte.add(spieler_1);
spieler_1.setLayout(null);
JLabel spieler1 = new JLabel("Spieler 1");
spieler1.setFont(new Font("Tahoma", Font.PLAIN, 14));
spieler1.setBounds(10, 0, 69, 22);
spieler_1.add(spieler1);
JLabel name1 = new JLabel("Name:");
name1.setFont(new Font("Tahoma", Font.PLAIN, 14));
name1.setBounds(20, 33, 46, 14);
spieler_1.add(name1);
JLabel punkte1 = new JLabel("Punkte:");
punkte1.setFont(new Font("Tahoma", Font.PLAIN, 14));
punkte1.setBounds(20, 70, 59, 14);
spieler_1.add(punkte1);
eingabe1 = new JTextField();
eingabe1.setBounds(113, 32, 86, 20);
spieler_1.add(eingabe1);
eingabe1.setColumns(10);
punkteausgabe1 = new JLabel("");
punkteausgabe1.setBounds(113, 70, 86, 20);
spieler_1.add(punkteausgabe1);
JPanel spieler_2 = new JPanel();
spieler_2.setBounds(371, 11, 353, 116);
spielerpunkte.add(spieler_2);
spieler_2.setLayout(null);
JLabel spieler2 = new JLabel("Spieler 2");
spieler2.setFont(new Font("Tahoma", Font.PLAIN, 14));
spieler2.setBounds(10, 0, 69, 22);
spieler_2.add(spieler2);
JLabel name2 = new JLabel("Name:");
name2.setFont(new Font("Tahoma", Font.PLAIN, 14));
name2.setBounds(20, 33, 46, 14);
spieler_2.add(name2);
JLabel punkte2 = new JLabel("Punkte:");
punkte2.setFont(new Font("Tahoma", Font.PLAIN, 14));
punkte2.setBounds(20, 68, 59, 14);
spieler_2.add(punkte2);
eingabe2 = new JTextField();
eingabe2.setBounds(105, 32, 86, 20);
spieler_2.add(eingabe2);
eingabe2.setColumns(10);
punkteausgabe2 = new JLabel("");
punkteausgabe2.setBounds(105, 68, 86, 20);
spieler_2.add(punkteausgabe2);
auswahl = new JPanel();
auswahl.setBounds(0, 138, 734, 138);
contentPane.add(auswahl);
auswahl.setLayout(null);
JLabel ueberschrift = new JLabel("W\u00E4hle ein Spielmodus aus:");
ueberschrift.setFont(new Font("Tahoma", Font.PLAIN, 14));
ueberschrift.setBounds(23, 0, 198, 23);
auswahl.add(ueberschrift);
luecke = new JRadioButton("1: L\u00FCcken F\u00FCllen");
luecke.setFont(new Font("Tahoma", Font.PLAIN, 14));
luecke.setBounds(119, 44, 133, 23);
auswahl.add(luecke);
luecke.addActionListener(this);
puzzle = new JRadioButton("2: Buchstabenpuzzle");
puzzle.setFont(new Font("Tahoma", Font.PLAIN, 14));
puzzle.setBounds(421, 44, 162, 23);
auswahl.add(puzzle);
puzzle.addActionListener(this);
starte = new JButton("Starte neues Spiel");
starte.setFont(new Font("Tahoma", Font.PLAIN, 14));
starte.setBounds(246, 89, 228, 23);
auswahl.add(starte);
starte.addActionListener(this);
spiel = new JPanel();
spiel.setBounds(0, 276, 734, 315);
contentPane.add(spiel);
spiel.setLayout(null);
spiel.setVisible(false);
//istamzug = new JLabel(steuerung.derSpieler() + "ist am Zug!");
istamzug = new JLabel();
istamzug.setHorizontalAlignment(SwingConstants.CENTER);
istamzug.setFont(new Font("Tahoma", Font.PLAIN, 14));
istamzug.setBounds(10, 11, 227, 25);
spiel.add(istamzug);
JLabel aufgabe = new JLabel("Aufgabe: Bilde ein Wort aus:");
aufgabe.setHorizontalAlignment(SwingConstants.CENTER);
aufgabe.setFont(new Font("Tahoma", Font.PLAIN, 14));
aufgabe.setBounds(10, 47, 714, 23);
spiel.add(aufgabe);
ausgabe = new JLabel(steuerung.dasWort());
ausgabe.setHorizontalAlignment(SwingConstants.CENTER);
ausgabe.setFont(new Font("Tahoma", Font.PLAIN, 14));
ausgabe.setBounds(89, 89, 227, 25);
spiel.add(ausgabe);
eingabe = new JTextField();
eingabe.setHorizontalAlignment(SwingConstants.CENTER);
eingabe.setFont(new Font("Tahoma", Font.PLAIN, 14));
eingabe.setBounds(426, 89, 227, 33);
spiel.add(eingabe);
eingabe.setColumns(10);
fertig = new JButton("Fertig");
fertig.setFont(new Font("Tahoma", Font.PLAIN, 14));
fertig.setBounds(254, 182, 223, 23);
spiel.add(fertig);
fertig.addActionListener(this);
auswertung = new JPanel();
auswertung.setBounds(0, 138, 734, 138);
contentPane.add(auswertung);
auswertung.setLayout(null);
auswertung.setVisible(false);
//richtigoderfalsch = new JLabel(steuerung.dieWortliste());
richtigoderfalsch = new JLabel();
richtigoderfalsch.setFont(new Font("Tahoma", Font.PLAIN, 14));
richtigoderfalsch.setBounds(100, 55, 300, 23);
auswertung.add(richtigoderfalsch);
ok = new JButton("OK");
ok.setBounds(441, 55, 68, 23);
auswertung.add(ok);
ok.addActionListener(this);
}
public String gibTextFeld()
{
return eingabe.getText();
}
public String gibName1()
{
return eingabe1.getText();
}
public String gibName2()
{
return eingabe2.getText();
}
public void actionPerformed(ActionEvent event)
{
if(event.getSource() == starte && luecke.isSelected())
{
istamzug = new JLabel(steuerung.derSpieler() + "ist am Zug!");
richtigoderfalsch = new JLabel(steuerung.dieWortliste());
spiel.setVisible(true);
}
if(event.getSource() == fertig)
{
auswahl.setVisible(false);
auswertung.setVisible(true);
}
}
}
[/CODE]
[CODE lang="java" title="Klasse Spieler"]public class Spieler
{
String player;
public String wechsel()
{
GUI verbindung = new GUI();
System.out.println(verbindung.gibName1());
return player = verbindung.gibName1();
}
}
[/CODE]
Zur Übersicht hier nur noch einmal alle relevanten Teile...
Klasse: GUI
public Steuerung steuerung = new Steuerung();
public JTextField eingabe1;
public JTextField eingabe2;
public GUI()
{
eingabe1 = new JTextField();
eingabe1.setBounds(113, 32, 86, 20);
spieler_1.add(eingabe1);
eingabe1.setColumns(10);
eingabe2 = new JTextField();
eingabe2.setBounds(105, 32, 86, 20);
spieler_2.add(eingabe2);
eingabe2.setColumns(10);
istamzug = new JLabel(steuerung.derSpieler() + "ist am Zug!"
istamzug.setHorizontalAlignment(SwingConstants.CENTER);
istamzug.setFont(new Font("Tahoma", Font.PLAIN, 14));
istamzug.setBounds(10, 11, 227, 25);
spiel.add(istamzug);
}
public String gibName1()
{
return eingabe1.getText();
}
public String gibName2()
{
return eingabe2.getText();
}
Klasse Steuerung:
public class Steuerung
{
public static void main(String[] args)
{
GUI verbindung = new GUI();
verbindung.setVisible(true);
}
public String dasWort()
{
Wort dasWort = new Wort();
return dasWort.luecke(null);
}
public String dieWortliste()
{
Wortliste dieWortliste = new Wortliste();
return dieWortliste.ausgabe();
}
public String derSpieler()
{
Spieler derSpieler = new Spieler();
return derSpieler.wechsel();
}
}
Klasse Spieler:
public class Spieler
{
String player;
public String wechsel()
{
GUI verbindung = new GUI();
System.out.println(verbindung.gibName1());
return player = verbindung.gibName1();
}
}
(Spieler ist noch nicht fertig ausprogrammiert. Soll Später zwischen den Spielern wechseln können. Jetzige Code nur zum Test)
Laut Eclipse wird alles ausgeführt (Alles ist grün). Bei dem System.out wird dennoch nichts ausgebeben. Deshalb und weil ich probeweise das komplette Programm mit System.out's ausgestattet hatte schließe ich den Schluss das getText() keinen Wert bekommt. Hoffentlich lässt sich dies Lösen. Danke schon einmal in voraus. Zur Info ich bin nicht der beste im programmieren.
ich muss für ein Schulprojekt eine alte Abi Aufgabe aus programmieren. Nun habe ich das Problem das es in dieser Aufgabe 2 JTextField's() gibt. In diesen muss der Spieler etwas eingeben. Die Eingabe wird dann in JLabel's ausgegeben. Nun habe ich das Problem das getText() keinen Wert gibt. Ich liste hier mal alle Sachen auf die etwas mit dem TextFeld zu tun haben.
[CODE lang="java" title="Klasse Steuerung"]public class Steuerung
{
public static void main(String[] args)
{
GUI verbindung = new GUI();
verbindung.setVisible(true);
}
public String dasWort()
{
Wort dasWort = new Wort();
return dasWort.luecke(null);
}
public String dieWortliste()
{
Wortliste dieWortliste = new Wortliste();
return dieWortliste.ausgabe();
}
public String derSpieler()
{
Spieler derSpieler = new Spieler();
return derSpieler.wechsel();
}
}
[/CODE]
[CODE lang="java" title="Klasse GUI"]import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
public class GUI extends JFrame implements ActionListener
{
final JPanel panel = new JPanel();
JPanel contentPane;
JPanel spielerpunkte;
JPanel auswahl;
JPanel spiel;
JPanel auswertung;
public JTextField eingabe1;
public JTextField eingabe2;
public JLabel punkteausgabe1;
public JLabel punkteausgabe2;
public JRadioButton luecke;
public JRadioButton puzzle;
public JButton starte;
public JLabel istamzug;
public JLabel ausgabe;
public JTextField eingabe;
public JButton fertig;
public JLabel richtigoderfalsch;
public JButton ok;
public Steuerung steuerung = new Steuerung();
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
try
{
GUI frame = new GUI();
frame.setVisible(true);
} catch (Exception e)
{
e.printStackTrace();
}
}
});
}
public GUI()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 750, 630);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
spielerpunkte = new JPanel();
spielerpunkte.setBounds(0, 0, 734, 138);
contentPane.add(spielerpunkte);
spielerpunkte.setLayout(null);
JPanel spieler_1 = new JPanel();
spieler_1.setBounds(10, 11, 351, 116);
spielerpunkte.add(spieler_1);
spieler_1.setLayout(null);
JLabel spieler1 = new JLabel("Spieler 1");
spieler1.setFont(new Font("Tahoma", Font.PLAIN, 14));
spieler1.setBounds(10, 0, 69, 22);
spieler_1.add(spieler1);
JLabel name1 = new JLabel("Name:");
name1.setFont(new Font("Tahoma", Font.PLAIN, 14));
name1.setBounds(20, 33, 46, 14);
spieler_1.add(name1);
JLabel punkte1 = new JLabel("Punkte:");
punkte1.setFont(new Font("Tahoma", Font.PLAIN, 14));
punkte1.setBounds(20, 70, 59, 14);
spieler_1.add(punkte1);
eingabe1 = new JTextField();
eingabe1.setBounds(113, 32, 86, 20);
spieler_1.add(eingabe1);
eingabe1.setColumns(10);
punkteausgabe1 = new JLabel("");
punkteausgabe1.setBounds(113, 70, 86, 20);
spieler_1.add(punkteausgabe1);
JPanel spieler_2 = new JPanel();
spieler_2.setBounds(371, 11, 353, 116);
spielerpunkte.add(spieler_2);
spieler_2.setLayout(null);
JLabel spieler2 = new JLabel("Spieler 2");
spieler2.setFont(new Font("Tahoma", Font.PLAIN, 14));
spieler2.setBounds(10, 0, 69, 22);
spieler_2.add(spieler2);
JLabel name2 = new JLabel("Name:");
name2.setFont(new Font("Tahoma", Font.PLAIN, 14));
name2.setBounds(20, 33, 46, 14);
spieler_2.add(name2);
JLabel punkte2 = new JLabel("Punkte:");
punkte2.setFont(new Font("Tahoma", Font.PLAIN, 14));
punkte2.setBounds(20, 68, 59, 14);
spieler_2.add(punkte2);
eingabe2 = new JTextField();
eingabe2.setBounds(105, 32, 86, 20);
spieler_2.add(eingabe2);
eingabe2.setColumns(10);
punkteausgabe2 = new JLabel("");
punkteausgabe2.setBounds(105, 68, 86, 20);
spieler_2.add(punkteausgabe2);
auswahl = new JPanel();
auswahl.setBounds(0, 138, 734, 138);
contentPane.add(auswahl);
auswahl.setLayout(null);
JLabel ueberschrift = new JLabel("W\u00E4hle ein Spielmodus aus:");
ueberschrift.setFont(new Font("Tahoma", Font.PLAIN, 14));
ueberschrift.setBounds(23, 0, 198, 23);
auswahl.add(ueberschrift);
luecke = new JRadioButton("1: L\u00FCcken F\u00FCllen");
luecke.setFont(new Font("Tahoma", Font.PLAIN, 14));
luecke.setBounds(119, 44, 133, 23);
auswahl.add(luecke);
luecke.addActionListener(this);
puzzle = new JRadioButton("2: Buchstabenpuzzle");
puzzle.setFont(new Font("Tahoma", Font.PLAIN, 14));
puzzle.setBounds(421, 44, 162, 23);
auswahl.add(puzzle);
puzzle.addActionListener(this);
starte = new JButton("Starte neues Spiel");
starte.setFont(new Font("Tahoma", Font.PLAIN, 14));
starte.setBounds(246, 89, 228, 23);
auswahl.add(starte);
starte.addActionListener(this);
spiel = new JPanel();
spiel.setBounds(0, 276, 734, 315);
contentPane.add(spiel);
spiel.setLayout(null);
spiel.setVisible(false);
//istamzug = new JLabel(steuerung.derSpieler() + "ist am Zug!");
istamzug = new JLabel();
istamzug.setHorizontalAlignment(SwingConstants.CENTER);
istamzug.setFont(new Font("Tahoma", Font.PLAIN, 14));
istamzug.setBounds(10, 11, 227, 25);
spiel.add(istamzug);
JLabel aufgabe = new JLabel("Aufgabe: Bilde ein Wort aus:");
aufgabe.setHorizontalAlignment(SwingConstants.CENTER);
aufgabe.setFont(new Font("Tahoma", Font.PLAIN, 14));
aufgabe.setBounds(10, 47, 714, 23);
spiel.add(aufgabe);
ausgabe = new JLabel(steuerung.dasWort());
ausgabe.setHorizontalAlignment(SwingConstants.CENTER);
ausgabe.setFont(new Font("Tahoma", Font.PLAIN, 14));
ausgabe.setBounds(89, 89, 227, 25);
spiel.add(ausgabe);
eingabe = new JTextField();
eingabe.setHorizontalAlignment(SwingConstants.CENTER);
eingabe.setFont(new Font("Tahoma", Font.PLAIN, 14));
eingabe.setBounds(426, 89, 227, 33);
spiel.add(eingabe);
eingabe.setColumns(10);
fertig = new JButton("Fertig");
fertig.setFont(new Font("Tahoma", Font.PLAIN, 14));
fertig.setBounds(254, 182, 223, 23);
spiel.add(fertig);
fertig.addActionListener(this);
auswertung = new JPanel();
auswertung.setBounds(0, 138, 734, 138);
contentPane.add(auswertung);
auswertung.setLayout(null);
auswertung.setVisible(false);
//richtigoderfalsch = new JLabel(steuerung.dieWortliste());
richtigoderfalsch = new JLabel();
richtigoderfalsch.setFont(new Font("Tahoma", Font.PLAIN, 14));
richtigoderfalsch.setBounds(100, 55, 300, 23);
auswertung.add(richtigoderfalsch);
ok = new JButton("OK");
ok.setBounds(441, 55, 68, 23);
auswertung.add(ok);
ok.addActionListener(this);
}
public String gibTextFeld()
{
return eingabe.getText();
}
public String gibName1()
{
return eingabe1.getText();
}
public String gibName2()
{
return eingabe2.getText();
}
public void actionPerformed(ActionEvent event)
{
if(event.getSource() == starte && luecke.isSelected())
{
istamzug = new JLabel(steuerung.derSpieler() + "ist am Zug!");
richtigoderfalsch = new JLabel(steuerung.dieWortliste());
spiel.setVisible(true);
}
if(event.getSource() == fertig)
{
auswahl.setVisible(false);
auswertung.setVisible(true);
}
}
}
[/CODE]
[CODE lang="java" title="Klasse Spieler"]public class Spieler
{
String player;
public String wechsel()
{
GUI verbindung = new GUI();
System.out.println(verbindung.gibName1());
return player = verbindung.gibName1();
}
}
[/CODE]
Zur Übersicht hier nur noch einmal alle relevanten Teile...
Klasse: GUI
public Steuerung steuerung = new Steuerung();
public JTextField eingabe1;
public JTextField eingabe2;
public GUI()
{
eingabe1 = new JTextField();
eingabe1.setBounds(113, 32, 86, 20);
spieler_1.add(eingabe1);
eingabe1.setColumns(10);
eingabe2 = new JTextField();
eingabe2.setBounds(105, 32, 86, 20);
spieler_2.add(eingabe2);
eingabe2.setColumns(10);
istamzug = new JLabel(steuerung.derSpieler() + "ist am Zug!"
istamzug.setHorizontalAlignment(SwingConstants.CENTER);
istamzug.setFont(new Font("Tahoma", Font.PLAIN, 14));
istamzug.setBounds(10, 11, 227, 25);
spiel.add(istamzug);
}
public String gibName1()
{
return eingabe1.getText();
}
public String gibName2()
{
return eingabe2.getText();
}
Klasse Steuerung:
public class Steuerung
{
public static void main(String[] args)
{
GUI verbindung = new GUI();
verbindung.setVisible(true);
}
public String dasWort()
{
Wort dasWort = new Wort();
return dasWort.luecke(null);
}
public String dieWortliste()
{
Wortliste dieWortliste = new Wortliste();
return dieWortliste.ausgabe();
}
public String derSpieler()
{
Spieler derSpieler = new Spieler();
return derSpieler.wechsel();
}
}
Klasse Spieler:
public class Spieler
{
String player;
public String wechsel()
{
GUI verbindung = new GUI();
System.out.println(verbindung.gibName1());
return player = verbindung.gibName1();
}
}
(Spieler ist noch nicht fertig ausprogrammiert. Soll Später zwischen den Spielern wechseln können. Jetzige Code nur zum Test)
Laut Eclipse wird alles ausgeführt (Alles ist grün). Bei dem System.out wird dennoch nichts ausgebeben. Deshalb und weil ich probeweise das komplette Programm mit System.out's ausgestattet hatte schließe ich den Schluss das getText() keinen Wert bekommt. Hoffentlich lässt sich dies Lösen. Danke schon einmal in voraus. Zur Info ich bin nicht der beste im programmieren.