Hallo Community,
ich habe eine grundsätzliche Frage zur Vererbung von Applets:
Ich möchte mein Programm möglichst übersichtlich gestalten und ein GUI Applet vererben
um ActionListener etc "hinzuzufügen".
Ich habe eine Klasse "MalPanel", von der "Farben" erbt. In Farben implementiere ich die ActionListener Schnittstelle. Aus einem Grund kennt "Farben" allerdings nicht "Graphics g" obwohl dieses in "MalPanel" als public deklariert wurde.
Was habe ich falsch?
In actionPerformed(...) gibt der Compiler ab
hunderte Fehlermeldungen
Schonmal ein Danke für eventuelle Hilfe
MalPanel
Farben
ich habe eine grundsätzliche Frage zur Vererbung von Applets:
Ich möchte mein Programm möglichst übersichtlich gestalten und ein GUI Applet vererben
um ActionListener etc "hinzuzufügen".
Ich habe eine Klasse "MalPanel", von der "Farben" erbt. In Farben implementiere ich die ActionListener Schnittstelle. Aus einem Grund kennt "Farben" allerdings nicht "Graphics g" obwohl dieses in "MalPanel" als public deklariert wurde.
Was habe ich falsch?
In actionPerformed(...) gibt der Compiler ab
Code:
g.setColor(Color.black);
Schonmal ein Danke für eventuelle Hilfe
MalPanel
Java:
import java.awt.*;
import javax.swing.*;
public class MalPanel extends JApplet{
public JButton bMal,bDel,bBlau,bRot,bGr,bGe,bLn;
public Container malPanel,ContentPane;
public Graphics g;
private Image image;
public MalPanel(){
// SteuerPanel
Container btnPanel = new JPanel(); // PanelContainer für Buttons
btnPanel.setLayout(new GridLayout(7,2)); // Layout setzen
ImageIcon rIcon = new ImageIcon ("/red.PNG"); // Button mit Icon und Beschriftung
ImageIcon bIcon = new ImageIcon ("/blue.PNG"); // Button mit Icon und Beschriftung
ImageIcon grIcon = new ImageIcon ("/green.PNG"); // Button mit Icon und Beschriftung
ImageIcon geIcon = new ImageIcon ("/yellow.PNG"); // Button mit Icon und Beschriftung
ImageIcon blIcon = new ImageIcon ("/black.PNG"); // Button mit Icon und Beschriftung
bMal = new JButton("Schwarz",blIcon); // Button erstellen
bDel = new JButton("Löschen");
bBlau = new JButton("Blau",bIcon);
bRot = new JButton("Rot",rIcon);
bGr = new JButton("Grün",grIcon);
bGe = new JButton("Gelb",geIcon);
bLn = new JButton("Line");
btnPanel.add(bMal); // Dem SteuerPanel hinzufügen
btnPanel.add(bBlau);
btnPanel.add(bRot);
btnPanel.add(bGr);
btnPanel.add(bGe);
btnPanel.add(bLn);
btnPanel.add(bDel);
// Malfläche - Panel
malPanel = new JPanel(); // PanelContainer für Malfläche
malPanel.setBackground(Color.white);
// Header
JLabel Head = new JLabel("Java Paint");
ContentPane = getContentPane(); // Container hinzufügen
ContentPane.setLayout(new BorderLayout());
ContentPane.add("North",Head);
ContentPane.add("West",btnPanel);
ContentPane.add("Center",malPanel);
}
}
Farben
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Farben extends MalPanel implements ActionListener{
public void init(){
setSize(500,500); // Fenstergröße festlegen
System.out.println("Farben();");
bMal.addActionListener(this); // EventListener hinzufügen
bDel.addActionListener(this);
bBlau.addActionListener(this);
bRot.addActionListener(this);
bGr.addActionListener(this);
bGe.addActionListener(this);
bLn.addActionListener(this);
}
// Eventhandling
public void actionPerformed(ActionEvent e){
if (e.getSource() == bMal) {
System.out.println("schwarz");
g.setColor(Color.black); // Schwarz einstellen
}
if (e.getSource() == bDel){
g.setColor(Color.white); // "Löschen" einstellen
g.fillRect(malPanel.getBounds().x,malPanel.getBounds().y , malPanel.getBounds().width, malPanel.getBounds().height);
}
if (e.getSource() == bBlau) {
g.setColor(Color.blue); // Blau einstellen
System.out.println("blau");
}
if (e.getSource() == bRot) g.setColor(Color.red); // Rot einstellen
if (e.getSource() == bGr) g.setColor(Color.green); // Grün einstellen
if (e.getSource() == bGe) g.setColor(Color.yellow); // Rot einstellen
if (e.getSource() == bLn){} // Linie einstellen
}
}
Zuletzt bearbeitet: