Hi,
schreibe gerade mein erstes Programm und sitze schon seit Ewigkeiten vor diesem Problem. Ich habe einen Frame mit Textfeldern und einem weiter Button. Wenn ich auf diesen Klicke, sollen die Textfelder ausgelesen und in einem neuem Frame ausgegeben werden. Leider bleibt das TextArea, welches ich zu diesem Zweck benutze immer leer... .
Weiß einer von euch wo mein Fehler ist? In dem Code habe ich erst einmal nur die ersten beiden Textfelder ausgelesen.
[Java]import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Tradehelper {
//Variablen:
JTextField a1;
JTextField a2;
JTextField a3;
JTextField a4;
JTextField a5;
JTextField a6;
JTextField a7;
JTextField a8;
JTextField a9;
JTextField a10;
JTextField a11;
JTextField s1;
JTextField s2;
JTextField s3;
JTextField s4;
JTextField s5;
JTextField s6;
JTextField s7;
JTextField s8;
JTextField s9;
JTextField s10;
JTextField s11;
public static void main(String[] args) {
Tradehelper gui = new Tradehelper();
gui.build();
} //Ende main
public void build() {
//Frame Erstellen
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
//JPanel Erstellen
JPanel paneleast = new JPanel();
//paneleast.setBackground(Color.green);
frame.getContentPane().add(BorderLayout.EAST, paneleast);
paneleast.setLayout(new BoxLayout(paneleast, BoxLayout.Y_AXIS));
JPanel panelwest = new JPanel(); //panelwest.setBackground(Color.red);
panelwest.setLayout(new BoxLayout(panelwest, BoxLayout.Y_AXIS));
frame.getContentPane().add(BorderLayout.WEST, panelwest);
panelwest.setLayout(new BoxLayout(panelwest, BoxLayout.Y_AXIS));
JPanel panelnorth = new JPanel();
panelnorth.setBackground(Color.yellow);
frame.getContentPane().add(BorderLayout.NORTH, panelnorth);
JPanel panelsouth = new JPanel();
//panelsouth.setBackground(Color.darkGray);
frame.getContentPane().add(BorderLayout.SOUTH, panelsouth);
JPanel panelcenter = new JPanel();
//panelcenter.setBackground(Color.yellow);
frame.getContentPane().add(BorderLayout.CENTER, panelcenter);
panelcenter.setLayout(new BoxLayout(panelcenter, BoxLayout.Y_AXIS));
// EAST
JTextField s1 = new JTextField("Anzahl",10);
JTextField s2 = new JTextField("Anzahl",10);
JTextField s3 = new JTextField("Anzahl",10);
JTextField s4 = new JTextField("Anzahl",10);
JTextField s5 = new JTextField("Anzahl",10);
JTextField s6 = new JTextField("Anzahl",10);
JTextField s7 = new JTextField("Anzahl",10);
JTextField s8 = new JTextField("Anzahl",10);
JTextField s9 = new JTextField("Anzahl",10);
JTextField s10 = new JTextField("Anzahl",10);
JTextField s11 = new JTextField("Anzahl",10);
paneleast.add(s1);
paneleast.add(s2);
paneleast.add(s3);
paneleast.add(s4);
paneleast.add(s5);
paneleast.add(s6);
paneleast.add(s7);
paneleast.add(s8);
paneleast.add(s9);
paneleast.add(s10);
paneleast.add(s11);
// WEST
String[] materialienNamen = {"Chitin-Fragment","Eisenbarren","Feder","Gerbfellquadrat","Glitzerstaubhafen","Granitplatte","Holzbrett","Knochen","Pflanzenfaser","Schuppe","Tuchballen"};
for (String mat : materialienNamen) {
JTextField label = new JTextField(mat,10); label.setEditable(false);
panelwest.add(label);
}
//NORTH
JLabel ueberschrift = new JLabel("Gebräuchliches Handwerksmaterial");
panelnorth.add(ueberschrift);
//SOUTH
JButton weiterButton = new JButton("Weiter");
panelsouth.add(weiterButton);
weiterButton.addActionListener(new weiterButtonListener());
//Center
JTextField a1 = new JTextField("Stückzahl",10);
JTextField a2 = new JTextField("Stückzahl",10);
JTextField a3 = new JTextField("Stückzahl",10);
JTextField a4 = new JTextField("Stückzahl",10);
JTextField a5 = new JTextField("Stückzahl",10);
JTextField a6 = new JTextField("Stückzahl",10);
JTextField a7 = new JTextField("Stückzahl",10);
JTextField a8 = new JTextField("Stückzahl",10);
JTextField a9 = new JTextField("Stückzahl",10);
JTextField a10 = new JTextField("Stückzahl",10);
JTextField a11 = new JTextField("Stückzahl",10);
panelcenter.add(a1);
panelcenter.add(a2);
panelcenter.add(a3);
panelcenter.add(a4);
panelcenter.add(a5);
panelcenter.add(a6);
panelcenter.add(a7);
panelcenter.add(a8);
panelcenter.add(a9);
panelcenter.add(a10);
panelcenter.add(a11);
//Größe Einstellen
frame.setSize(400,400);
} //void build
class weiterButtonListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
JFrame frame2 = new JFrame();
frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame2.setVisible(true);
frame2.setSize(400,400);
JPanel panel = new JPanel();
panel.setBackground(Color.yellow);
frame2.getContentPane().add(BorderLayout.WEST, panel);
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
JTextArea text = new JTextArea(400,400);
text.setLineWrap(true);
panel.add(text);
text.append("Chitin-Fragment: " + a1.getText() + " stk. " + s1.getText() + " Gold");
} //void actionPerformed
} //class weiterButtonListener
} //class Tradehelper[/Java]
Ich bin sicher, man hätte vieles eleganter Lösen können, aber wie gesagt sind das meine ersten Versuche ... .
Gruß,
Teremin.
schreibe gerade mein erstes Programm und sitze schon seit Ewigkeiten vor diesem Problem. Ich habe einen Frame mit Textfeldern und einem weiter Button. Wenn ich auf diesen Klicke, sollen die Textfelder ausgelesen und in einem neuem Frame ausgegeben werden. Leider bleibt das TextArea, welches ich zu diesem Zweck benutze immer leer... .
Weiß einer von euch wo mein Fehler ist? In dem Code habe ich erst einmal nur die ersten beiden Textfelder ausgelesen.
[Java]import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Tradehelper {
//Variablen:
JTextField a1;
JTextField a2;
JTextField a3;
JTextField a4;
JTextField a5;
JTextField a6;
JTextField a7;
JTextField a8;
JTextField a9;
JTextField a10;
JTextField a11;
JTextField s1;
JTextField s2;
JTextField s3;
JTextField s4;
JTextField s5;
JTextField s6;
JTextField s7;
JTextField s8;
JTextField s9;
JTextField s10;
JTextField s11;
public static void main(String[] args) {
Tradehelper gui = new Tradehelper();
gui.build();
} //Ende main
public void build() {
//Frame Erstellen
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
//JPanel Erstellen
JPanel paneleast = new JPanel();
//paneleast.setBackground(Color.green);
frame.getContentPane().add(BorderLayout.EAST, paneleast);
paneleast.setLayout(new BoxLayout(paneleast, BoxLayout.Y_AXIS));
JPanel panelwest = new JPanel(); //panelwest.setBackground(Color.red);
panelwest.setLayout(new BoxLayout(panelwest, BoxLayout.Y_AXIS));
frame.getContentPane().add(BorderLayout.WEST, panelwest);
panelwest.setLayout(new BoxLayout(panelwest, BoxLayout.Y_AXIS));
JPanel panelnorth = new JPanel();
panelnorth.setBackground(Color.yellow);
frame.getContentPane().add(BorderLayout.NORTH, panelnorth);
JPanel panelsouth = new JPanel();
//panelsouth.setBackground(Color.darkGray);
frame.getContentPane().add(BorderLayout.SOUTH, panelsouth);
JPanel panelcenter = new JPanel();
//panelcenter.setBackground(Color.yellow);
frame.getContentPane().add(BorderLayout.CENTER, panelcenter);
panelcenter.setLayout(new BoxLayout(panelcenter, BoxLayout.Y_AXIS));
// EAST
JTextField s1 = new JTextField("Anzahl",10);
JTextField s2 = new JTextField("Anzahl",10);
JTextField s3 = new JTextField("Anzahl",10);
JTextField s4 = new JTextField("Anzahl",10);
JTextField s5 = new JTextField("Anzahl",10);
JTextField s6 = new JTextField("Anzahl",10);
JTextField s7 = new JTextField("Anzahl",10);
JTextField s8 = new JTextField("Anzahl",10);
JTextField s9 = new JTextField("Anzahl",10);
JTextField s10 = new JTextField("Anzahl",10);
JTextField s11 = new JTextField("Anzahl",10);
paneleast.add(s1);
paneleast.add(s2);
paneleast.add(s3);
paneleast.add(s4);
paneleast.add(s5);
paneleast.add(s6);
paneleast.add(s7);
paneleast.add(s8);
paneleast.add(s9);
paneleast.add(s10);
paneleast.add(s11);
// WEST
String[] materialienNamen = {"Chitin-Fragment","Eisenbarren","Feder","Gerbfellquadrat","Glitzerstaubhafen","Granitplatte","Holzbrett","Knochen","Pflanzenfaser","Schuppe","Tuchballen"};
for (String mat : materialienNamen) {
JTextField label = new JTextField(mat,10); label.setEditable(false);
panelwest.add(label);
}
//NORTH
JLabel ueberschrift = new JLabel("Gebräuchliches Handwerksmaterial");
panelnorth.add(ueberschrift);
//SOUTH
JButton weiterButton = new JButton("Weiter");
panelsouth.add(weiterButton);
weiterButton.addActionListener(new weiterButtonListener());
//Center
JTextField a1 = new JTextField("Stückzahl",10);
JTextField a2 = new JTextField("Stückzahl",10);
JTextField a3 = new JTextField("Stückzahl",10);
JTextField a4 = new JTextField("Stückzahl",10);
JTextField a5 = new JTextField("Stückzahl",10);
JTextField a6 = new JTextField("Stückzahl",10);
JTextField a7 = new JTextField("Stückzahl",10);
JTextField a8 = new JTextField("Stückzahl",10);
JTextField a9 = new JTextField("Stückzahl",10);
JTextField a10 = new JTextField("Stückzahl",10);
JTextField a11 = new JTextField("Stückzahl",10);
panelcenter.add(a1);
panelcenter.add(a2);
panelcenter.add(a3);
panelcenter.add(a4);
panelcenter.add(a5);
panelcenter.add(a6);
panelcenter.add(a7);
panelcenter.add(a8);
panelcenter.add(a9);
panelcenter.add(a10);
panelcenter.add(a11);
//Größe Einstellen
frame.setSize(400,400);
} //void build
class weiterButtonListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
JFrame frame2 = new JFrame();
frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame2.setVisible(true);
frame2.setSize(400,400);
JPanel panel = new JPanel();
panel.setBackground(Color.yellow);
frame2.getContentPane().add(BorderLayout.WEST, panel);
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
JTextArea text = new JTextArea(400,400);
text.setLineWrap(true);
panel.add(text);
text.append("Chitin-Fragment: " + a1.getText() + " stk. " + s1.getText() + " Gold");
} //void actionPerformed
} //class weiterButtonListener
} //class Tradehelper[/Java]
Ich bin sicher, man hätte vieles eleganter Lösen können, aber wie gesagt sind das meine ersten Versuche ... .
Gruß,
Teremin.