![]() |
| | Themen-Optionen |
| | Nach oben #1 |
| Gast
Beiträge: n/a
|
Hallo, ich hab da ein Problem, beim auslesen des Textes aus einem JTextField. Ich bekomme immer eine NullPointerException obwohl alles (meiner Meinung nach) initialisiert ist. Ist ne ziemlich große Klasse, aber ich wusste nicht was ich weglassen sollte ohne wichtiges zu vernachlässigen: Code: public class Antwort {
String Antworttext = new String();
boolean richtigeAntwort;
}
Code: public class Frage {
String Fragetext = new String();
Antwort[] antwort = new Antwort[10];
}
Code: public class Quiz {
String Quiztitel = new String();
String QuizID = new String();
Frage[] frage = new Frage[100];
}
Code: public class MultipleChoice extends JPanel implements ActionListener, ItemListener{
private JButton save;
private JTextField tFrage;
private JTextField tName;
private JLabel lblFrage;
private JLabel lblName;
private JTextField[] ta = new JTextField[10];
private JCheckBox[] cba = new JCheckBox[10];
private JLabel[] LL = new JLabel[10];
int AnzahlAntworten;
int AnzahlFragen;
private JPanel AntwortPanel;
Quiz newQuiz;
Editor owner;
public MultipleChoice(Editor owner) {
this.owner = owner;
initGUI();
AnzahlAntworten = 2;
AnzahlFragen = 0;
newQuiz = new Quiz();
save.addActionListener(this);
}
private void initGUI() {
try {
AnchorLayout thisLayout = new AnchorLayout();
this.setLayout(thisLayout);
setPreferredSize(new Dimension(600, 500));
{
pane3 = new JPanel();
AnchorLayout pane3Layout = new AnchorLayout();
pane3.setLayout(pane3Layout);
this.add(pane3, new AnchorConstraint(
615,
992,
715,
12,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL));
pane3.setPreferredSize(new java.awt.Dimension(588, 50));
{
save = new JButton();
pane3.add(save, new AnchorConstraint(
90,
995,
690,
805,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL));
save.setText("Speichern");
save.setPreferredSize(new java.awt.Dimension(112, 30));
}
{
tb1 = new JToolBar();
pane3.add(tb1, new AnchorConstraint(
130,
795,
670,
179,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL));
tb1.setPreferredSize(new java.awt.Dimension(362, 27));
}
{
close = new JButton();
pane3.add(close, new AnchorConstraint(
90,
167,
710,
7,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL));
close.setText("Beenden");
close.setPreferredSize(new java.awt.Dimension(94, 31));
}
}
{
sp = new JScrollPane();
this.add(sp, new AnchorConstraint(
181,
995,
609,
7,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL));
sp.setPreferredSize(new java.awt.Dimension(593, 214));
{
pane2 = new JPanel();
sp.setViewportView(pane2);
}
}
{
pane1 = new JPanel();
AnchorLayout pane1Layout = new AnchorLayout();
pane1.setLayout(pane1Layout);
this.add(pane1, new AnchorConstraint(
11,
995,
165,
7,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL));
pane1.setPreferredSize(new java.awt.Dimension(593, 77));
{
ComboBoxModel cmbFragetypModel = new DefaultComboBoxModel(
new String[] { "MultipleChoice", "Textantwort" });
cmbFragetyp = new JComboBox();
pane1.add(cmbFragetyp, new AnchorConstraint(
45,
997,
435,
717,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL));
cmbFragetyp.setModel(cmbFragetypModel);
cmbFragetyp.setPreferredSize(new java.awt.Dimension(166, 30));
}
{
tFrage = new JTextField();
pane1.add(tFrage, new AnchorConstraint(
448,
560,
798,
260,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL));
tFrage.setPreferredSize(new java.awt.Dimension(178, 27));
}
{
tName = new JTextField();
pane1.add(tName, new AnchorConstraint(
45,
562,
370,
262,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL));
tName.setPreferredSize(new java.awt.Dimension(178, 25));
}
{
lblFrage = new JLabel();
pane1.add(lblFrage, new AnchorConstraint(
409,
100,
798,
0,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL));
lblFrage.setText("Frage");
lblFrage.setPreferredSize(new java.awt.Dimension(59, 30));
}
{
lblName = new JLabel();
pane1.add(lblName, new AnchorConstraint(
6,
184,
357,
0,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL,
AnchorConstraint.ANCHOR_REL));
lblName.setText("Name des Quiz");
lblName.setPreferredSize(new java.awt.Dimension(109, 27));
}
}
} catch (Exception e) {
e.printStackTrace();
}
} // Ende init GUI
public void speichern() {
newQuiz.Quiztitel = tName.getText(); //Quiztitel in Array übernehmen
newQuiz.frage[AnzahlFragen].Fragetext = tFrage.getText(); //Fragetext in Array übernehmen
for (int i=0; i<10; i++){
if (ta[i].isVisible() == true){
newQuiz.frage[AnzahlFragen].antwort[i].Antworttext = ta[i].getText();
if (cba[i].isSelected() == true)
newQuiz.frage[AnzahlFragen].antwort[i].richtigeAntwort = true;
}
}
} //Ende speichern()
public void itemStateChanged(ItemEvent evt) {
if (cmbFragetyp.getSelectedItem().equals("Textantwort")) //ComboBox Überprüfung
owner.changeView(new Text(owner));
}
public void actionPerformed(ActionEvent evt) {
Object source = evt.getSource();
if (source == close){ //close-Button Überprüfung
speichern();
owner.changeView(new MainWindow(owner));
}
if (source == nAntwort) { //neue-Antwort-Button Überprüfung
AnzahlAntworten++;
if (AnzahlAntworten < 4){
cba[AnzahlAntworten].setVisible(true);
ta[AnzahlAntworten].setVisible(true);
}
else {
cba[AnzahlAntworten].setVisible(true);
ta[AnzahlAntworten].setVisible(true);
LL[AnzahlAntworten].setVisible(true);
}
if (AnzahlAntworten == 9)
nAntwort.setVisible(false);
if (AnzahlAntworten > 1)
delAntwort.setVisible(true);
AntwortPanel.validate();
}
if (source == delAntwort){ // Antwort löschen Button Überprüfung
if (AnzahlAntworten <4) {
cba[AnzahlAntworten].setVisible(false);
ta[AnzahlAntworten].setVisible(false);
}
else {
cba[AnzahlAntworten].setVisible(false);
ta[AnzahlAntworten].setVisible(false);
LL[AnzahlAntworten].setVisible(false);
}
AnzahlAntworten--;
if (AnzahlAntworten <2)
delAntwort.setVisible(false);
if (AnzahlAntworten < 9)
nAntwort.setVisible(true);
AntwortPanel.validate();
}
if (source == save) // Speichern-Button Überprüfung
speichern();
if (source == next){ // neue Frage Button Überprüfung
speichern();
AnzahlFragen++;
tFrage.setText("");
for(int i=0; i<10; i++){
if (i<3){
cba[i].setSelected(false);
cba[i].setVisible(true);
ta[i].setText("");
ta[i].setVisible(true);
}
if (i==3){
cba[i].setSelected(false);
cba[i].setVisible(false);
ta[i].setText("");
ta[i].setVisible(false);
}
if (i>3){
cba[i].setSelected(false);
cba[i].setVisible(false);
ta[i].setText("");
ta[i].setVisible(false);
LL[i].setVisible(false);
}
}
} //Ende neue Frage
} // Ende ActionPerformed
}
Kann mir jemand sagen warum?! Schon mal danke für die Hilfe! Gruß Paule!!! |
|
| | Nach oben #2 |
| Benutzer Registriert seit: 05.07.2004
Beiträge: 95
|
wow ... gerade leider keine Zeit mehr ich werde das morgen früh alles mal lesen ... aber eins vorweg du solltest unbedingt weitere unterfunktionen schreiben um den umfang deines scriptes zu verringern um die übersicht zu gewährleisten ... kannst du vielleicht das ganze script also den Ordner als zip / rar Archiv mal anhängen?
__________________ |
| | |
| | Nach oben #4 |
| Chefkoch-Mod Registriert seit: 30.05.2004
Beiträge: 433
|
Hi, da ich jetzt nicht alle Klassen nach der Main-Methode durchsuchen möchte, müssen wir das Problem wohl anders lösen. Wie sieht denn der komplette Fehler aus? Meist gibt er genau die Zeile mit dem Problem an.
__________________ Denk mal darüber nach... Lars ACHTUNG: wenn ich von Klassen spreche, könnte ich auch deren Instanzen meinen. www.linuxforen.de +++ www.macuser.de +++ www.mrunix.de +++ www.lmprojects.de |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Problem E-Mails zu senden | Jann Hendrik | Plauderecke | 7 | 25.05.2007 21:37 |
| Problem mit zu vielen MySQL-Querys / Grundkonzeption | Chr!s | PHP-Programmierung | 13 | 27.08.2006 16:59 |
| Problem mit dem verlinken innerhalb von pdf-Dokumenten wegen der Nutzung von BBCode | Jann Hendrik | PHP-Programmierung | 3 | 10.02.2006 16:27 |
| SWT_AWT Bridge redraw() problem | csae4773 | Desktop-Applikationen und Grafik | 4 | 23.11.2005 20:43 |
| OSX + Eclipse 3.1 Problem | bacarni | Eclipse | 3 | 29.07.2005 21:19 |