Hallo,
ich habe angefangen ein Vokabellernprogramm zu schreiben, und stehe jetzt vor folgendem Problem: Ich disable in einer Methode einige Komponenten, und will sie in einer anderen Methode wieder enablen; doch dann bekomme ich eine NullPointerException...
Hier bekomme ich wie gesagt eine NullPointerException... Wenn ich das ganze aber so mache:
, dann passiert überhaupt nichts, wenn ich auf 'Kartensatz erstellen' klicke...
LG,
mathiasj
ich habe angefangen ein Vokabellernprogramm zu schreiben, und stehe jetzt vor folgendem Problem: Ich disable in einer Methode einige Komponenten, und will sie in einer anderen Methode wieder enablen; doch dann bekomme ich eine NullPointerException...
Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
public class Erstellmodus {
JTextArea frage;
JTextArea antwort;
JButton naechsteKarteButton;
public static void main(String[] args) {
try {
UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
} catch(Exception e) {
e.printStackTrace();
}
Erstellmodus a = new Erstellmodus();
a.guiErstellen();
}
public void guiErstellen() {
JFrame frame = new JFrame("Learner | Erstellmodus");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setSize(550,600);
Font grosseSchrift = new Font("sanserif",Font.PLAIN, 24);
Image icon = new ImageIcon("Bilder/LearnerLogo.jpg").getImage();
frame.setIconImage(icon);
JPanel panel = new JPanel();
JLabel frageLabel = new JLabel("Die Frage lautet: ");
JLabel antwortLabel = new JLabel("Die Antwort lautet: ");
frage = new JTextArea(6,20);
frage.setLineWrap(true);
frage.setWrapStyleWord(true);
frage.setFont(grosseSchrift);
frage.setEnabled(false); //Das ist einer der Komponenten, die ich disable
JScrollPane fScroller = new JScrollPane(frage);
fScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
fScroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
antwort = new JTextArea(6,20);
antwort.setLineWrap(true);
antwort.setWrapStyleWord(true);
antwort.setFont(grosseSchrift);
antwort.setEnabled(false);
JScrollPane aScroller = new JScrollPane(antwort);
aScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
aScroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
naechsteKarteButton = new JButton("Nächste Karte");
naechsteKarteButton.setEnabled(false);
naechsteKarteButton.addActionListener(new naechsteKarteButtonListener());
JMenuBar menueLeiste = new JMenuBar();
JMenu datei = new JMenu("Datei");
JMenuItem erstellenMenuePunkt = new JMenuItem("Kartensatz erstellen");
JMenuItem bearbeitenMenuePunkt = new JMenuItem("Kartensatz bearbeiten");
erstellenMenuePunkt.addActionListener(new erstellenMenuePunktListener());
bearbeitenMenuePunkt.addActionListener(new bearbeitenMenuePunktListener());
menueLeiste.add(datei);
datei.add(erstellenMenuePunkt);
datei.add(bearbeitenMenuePunkt);
panel.add(frageLabel);
panel.add(fScroller);
panel.add(antwortLabel);
panel.add(aScroller);
panel.add(naechsteKarteButton);
frame.setJMenuBar(menueLeiste);
frame.add(panel);
frame.setVisible(true);
}
public void erstellen() {
frage.setEnabled(true); //Hier tritt die Exception auf
antwort.setEnabled(true);
naechsteKarteButton.setEnabled(true);
}
public class erstellenMenuePunktListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
Erstellmodus a = new Erstellmodus();
a.erstellen();
}
}
public class bearbeitenMenuePunktListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
}
}
public class naechsteKarteButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
}
}
}
Hier bekomme ich wie gesagt eine NullPointerException... Wenn ich das ganze aber so mache:
Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
public class Erstellmodus {
JTextArea frage = new JTextArea(6,20); //Hier sind die Änderungen!
JTextArea antwort = new JTextArea(6,20);
JButton naechsteKarteButton = new JButton("Nächste Karte");
public static void main(String[] args) {
try {
UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
} catch(Exception e) {
e.printStackTrace();
}
Erstellmodus a = new Erstellmodus();
a.guiErstellen();
}
public void guiErstellen() {
JFrame frame = new JFrame("Learner | Erstellmodus");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setSize(550,600);
Font grosseSchrift = new Font("sanserif",Font.PLAIN, 24);
Image icon = new ImageIcon("Bilder/LearnerLogo.jpg").getImage();
frame.setIconImage(icon);
JPanel panel = new JPanel();
JLabel frageLabel = new JLabel("Die Frage lautet: ");
JLabel antwortLabel = new JLabel("Die Antwort lautet: ");
frage.setLineWrap(true);
frage.setWrapStyleWord(true);
frage.setFont(grosseSchrift);
frage.setEnabled(false);
JScrollPane fScroller = new JScrollPane(frage);
fScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
fScroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
antwort.setLineWrap(true);
antwort.setWrapStyleWord(true);
antwort.setFont(grosseSchrift);
antwort.setEnabled(false);
JScrollPane aScroller = new JScrollPane(antwort);
aScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
aScroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
naechsteKarteButton.setEnabled(false);
naechsteKarteButton.addActionListener(new naechsteKarteButtonListener());
JMenuBar menueLeiste = new JMenuBar();
JMenu datei = new JMenu("Datei");
JMenuItem erstellenMenuePunkt = new JMenuItem("Kartensatz erstellen");
JMenuItem bearbeitenMenuePunkt = new JMenuItem("Kartensatz bearbeiten");
erstellenMenuePunkt.addActionListener(new erstellenMenuePunktListener());
bearbeitenMenuePunkt.addActionListener(new bearbeitenMenuePunktListener());
menueLeiste.add(datei);
datei.add(erstellenMenuePunkt);
datei.add(bearbeitenMenuePunkt);
panel.add(frageLabel);
panel.add(fScroller);
panel.add(antwortLabel);
panel.add(aScroller);
panel.add(naechsteKarteButton);
frame.setJMenuBar(menueLeiste);
frame.add(panel);
frame.setVisible(true);
}
public void erstellen() {
frage.setEnabled(true);
antwort.setEnabled(true);
naechsteKarteButton.setEnabled(true);
}
public class erstellenMenuePunktListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
Erstellmodus a = new Erstellmodus();
a.erstellen();
}
}
public class bearbeitenMenuePunktListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
}
}
public class naechsteKarteButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
}
}
}
LG,
mathiasj