drummingmichel
Grünschnabel
Hallo Leute!
Ich schreibe ein Paint-Programm.
Die folgende Klasse soll ein Fenster öffnen, indem sich ein JColorChooser befindet.
Das Fenster wird auch geöffnet. Man kann auch mit dem ColorChooser arbeiten (d.h. Farben auswählen usw.).
Beim Drücken des JButtons sollte sich eine Bestimmte Stiftfarbe oder Hintergrundfarbe im Hauptfenster ändern. Doch ich bekomme nur eine error-Meldung (folgend nach der Klasse).
Ich bin einer der Neueren auf dem Gebiet. NullPointerException. heißt das nicht, dass ein Objekt, das ich nutze, = null ist?
Ich hoffe jemand kann mir helfen. Ich sitze echt schon Tage an dieser Stelle und hab alles ausprobiert, was ich mir vorstellen kann...
Danke im Vorraus.
Michel
Ich schreibe ein Paint-Programm.
Die folgende Klasse soll ein Fenster öffnen, indem sich ein JColorChooser befindet.
Das Fenster wird auch geöffnet. Man kann auch mit dem ColorChooser arbeiten (d.h. Farben auswählen usw.).
Beim Drücken des JButtons sollte sich eine Bestimmte Stiftfarbe oder Hintergrundfarbe im Hauptfenster ändern. Doch ich bekomme nur eine error-Meldung (folgend nach der Klasse).
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.colorchooser.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
public class ColorWindow extends JPanel implements ChangeListener {
protected JColorChooser tcc;
private ColorWindow neuC;
protected JLabel banner;
private JButton ende;
public String zweck;
private PanelEinheit panel;
private Color farbe;
private JFrame frame;
public ColorWindow() {
super(new BorderLayout());
// oberes banner erstellen
banner = new JLabel("...Farbe...", JLabel.CENTER);
banner.setForeground(Color.WHITE);
banner.setBackground(Color.BLACK);
banner.setOpaque(true);
banner.setFont(new Font("SansSerif", Font.BOLD, 26));
banner.setPreferredSize(new Dimension(100, 30));
JPanel bannerPanel = new JPanel(new BorderLayout());
bannerPanel.add(banner, BorderLayout.CENTER); // Panel, der banner zeichnet
bannerPanel.setBorder(BorderFactory.createTitledBorder("Bitte wählen Sie eine..."));
//Set up color chooser for setting text color
tcc = new JColorChooser(banner.getForeground());
tcc.getSelectionModel().addChangeListener(this);
tcc.setBorder(BorderFactory.createTitledBorder("...und zwar hier:"));
add(bannerPanel, BorderLayout.PAGE_START);
add(tcc, BorderLayout.CENTER);
ende = new JButton("Farbe gefunden & gewählt. Jetzt anwenden!");
ende.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
endeGeklickt(e);
}
});
add(ende, BorderLayout.PAGE_END);
zweck = "a";
farbe = Color.white;
}
public void lernePanelKennen(PanelEinheit p){
this.panel = p;
}
public Color getFarbe(){return farbe;}
public void endeGeklickt(ActionEvent e){
if(zweck=="n") {panel.setCN (farbe);}
if(zweck=="h") {panel.setCH (farbe);}
if(zweck=="v") {panel.setCV (farbe);}
if(zweck=="hv"){panel.setCHV(farbe);}
if(this.zweck=="a") {panel.setCA (farbe);}
if(this.zweck=="bg"){panel.setBGFarbe(farbe);}
hide();
}
public void stateChanged(ChangeEvent e) {
farbe = tcc.getColor();
banner.setForeground(farbe);
}
// Soll von verwendender Methode benutzt werden.
public void create() {
//rahmen-einstellungen.
frame = new JFrame("M & M & M - ColorWindow");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create and set up the content pane.
neuC = new ColorWindow();
neuC.setOpaque(true); //content panes must be opaque
frame.setContentPane(neuC);
//"letzter schliff"
frame.pack();
}
public void show(){frame.setVisible(true);} //zeige Fenster
public void hide(){frame.setVisible(false);} //verstecke Fenster
public void setzweck(String z) {zweck = z;
neuC.setzweckC(z);}
public void setzweckC(String z){zweck = z;}
}
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at ColorWindow.endeGeklickt(ColorWindow.java:72)
at ColorWindow$1.actionPerformed(ColorWindow.java:55)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6134)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5899)
at java.awt.Container.processEvent(Container.java:2023)
at java.awt.Component.dispatchEventImpl(Component.java:4501)
at java.awt.Container.dispatchEventImpl(Container.java:2081)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3965)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895)
at java.awt.Container.dispatchEventImpl(Container.java:2067)
at java.awt.Window.dispatchEventImpl(Window.java:2458)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Ich bin einer der Neueren auf dem Gebiet. NullPointerException. heißt das nicht, dass ein Objekt, das ich nutze, = null ist?
Ich hoffe jemand kann mir helfen. Ich sitze echt schon Tage an dieser Stelle und hab alles ausprobiert, was ich mir vorstellen kann...
Danke im Vorraus.
Michel
Zuletzt bearbeitet von einem Moderator: