Elcrian
Commander
- Registriert
- Feb. 2008
- Beiträge
- 2.493
Hallo,
ich habe eine Simulation programmiert und per Eclipse-Plugin eine GUI erzeugt. Die macht nicht viel mehr als manuell ohne Layout Manager die Items zu platzieren und auf Wunsch mit einem ActionListener zu versehen.
Nun möchte ich zu dieser Simulation eine einfache, grafische Oberfläche hinzufügen die zu jedem Simulationselement (es geht übrigens um Roulette) einen Punkt hinzufügt, möglichst auf einer variablen Achse.
Nur scheitert es schon am Zeichnen eines weißen Hintergrundes.
Die Grundidee der Java-SWING-Oberfläche (kann es übrigens sein das die wahnsinnig träge ist? Die Simulation läuft mit GUI elendig langsam...) ist ja soweit ich das verstanden habe "Frame -> Elemente -> ActionListener". Zeichnen geht ja per Graphics-Instanz.
Daher dachte ich mir mit Hilfe vom Internet: Zwei innere Klassen, eine die als "LayeredPane" ein zusätzliches Panel (InnerPanel) auf dem Fenster integriert.
Nur wirft es bei mir vor dem Zeichnen einen NullPointer.
Exception in thread "main" java.lang.NullPointerException
at GUI$InnerPanel.paintComponent(GUI.java:140)
Code, ohne den restlichen Kram runter rationalisiert:
Wie löse ich das? Ich fürchte ich blicke bei dem GUI-Krams nicht so 100% durch...
Danke!
ich habe eine Simulation programmiert und per Eclipse-Plugin eine GUI erzeugt. Die macht nicht viel mehr als manuell ohne Layout Manager die Items zu platzieren und auf Wunsch mit einem ActionListener zu versehen.
Nun möchte ich zu dieser Simulation eine einfache, grafische Oberfläche hinzufügen die zu jedem Simulationselement (es geht übrigens um Roulette) einen Punkt hinzufügt, möglichst auf einer variablen Achse.
Nur scheitert es schon am Zeichnen eines weißen Hintergrundes.
Die Grundidee der Java-SWING-Oberfläche (kann es übrigens sein das die wahnsinnig träge ist? Die Simulation läuft mit GUI elendig langsam...) ist ja soweit ich das verstanden habe "Frame -> Elemente -> ActionListener". Zeichnen geht ja per Graphics-Instanz.
Daher dachte ich mir mit Hilfe vom Internet: Zwei innere Klassen, eine die als "LayeredPane" ein zusätzliches Panel (InnerPanel) auf dem Fenster integriert.
Nur wirft es bei mir vor dem Zeichnen einen NullPointer.
Exception in thread "main" java.lang.NullPointerException
at GUI$InnerPanel.paintComponent(GUI.java:140)
Code, ohne den restlichen Kram runter rationalisiert:
PHP:
import javax.swing.*;
public class GUI extends start implements ActionListener {
private Graphics gg;
public GUI() {
JFrame f = new JFrame(); // Fenster-Objekt
// Zeichenarea
MyLayered panel = new MyLayered();
f.getContentPane().add(panel);
f.setBounds(306, 6, 799, 656);
f.setVisible(true);
//f.setDefaultCloseOperation(J.Frame.EXIT_ON_CLOSE);
//panel.paintComponent(gg);
}
class InnerPanel extends JPanel {
InnerPanel() {
this.paintComponent(gg);
}
public void paintComponent(Graphics gg) {
Graphics2D g2 = (Graphics2D)gg;
gg.setColor(Color.WHITE);
gg.fillRect(306, 6, 799, 656);
}
}
class MyLayered extends JLayeredPane{
MyLayered() {
this.add(new InnerPanel(), 14);
}
Wie löse ich das? Ich fürchte ich blicke bei dem GUI-Krams nicht so 100% durch...
Danke!