T
TobYMaier92
Gast
Hi Leute,
ich versuche mich gerade daran, eine Ampel zu programmieren. Mein Vorgehen: JLayeredPanel erzeugen, ein JLabel mit einem Bild darauf legen (welches den Rahmen der Ampel darstellt) und schließlich noch ein JPanel erstellen, auf dem die aktuelle Farbe der Ampel dargestellt wird. Dabei geschieht letzteres durch die Methode paintComponent(Graphics g).
Ich programmiere mit Eclipse. In einer anderen Klasse wird ein Objekt von der hier dargestellten Klasse erzeugt.
Ich kann leider selbst nicht erkennen, was ich falsch mache. Gegoogled habe ich schon genug. Ich vermute es hat irgendwas mit dem JLayeredPanel zu tun. Vielleicht kann jemand kurz über den Quellcode schauen und mir einen Tipp geben. Ich wäre sehr dankbar.
Gruß,
Tobi
ich versuche mich gerade daran, eine Ampel zu programmieren. Mein Vorgehen: JLayeredPanel erzeugen, ein JLabel mit einem Bild darauf legen (welches den Rahmen der Ampel darstellt) und schließlich noch ein JPanel erstellen, auf dem die aktuelle Farbe der Ampel dargestellt wird. Dabei geschieht letzteres durch die Methode paintComponent(Graphics g).
Ich programmiere mit Eclipse. In einer anderen Klasse wird ein Objekt von der hier dargestellten Klasse erzeugt.
Ich kann leider selbst nicht erkennen, was ich falsch mache. Gegoogled habe ich schon genug. Ich vermute es hat irgendwas mit dem JLayeredPanel zu tun. Vielleicht kann jemand kurz über den Quellcode schauen und mir einen Tipp geben. Ich wäre sehr dankbar.
Gruß,
Tobi
Java:
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;
public class JUnitStatusBar extends JPanel
{
//Erste Komponente der JUnitStatusBar
JLayeredPane ampelPanel;
JLabel ampelRahmen;
JPanel ampelLicht;
public JUnitStatusBar ()
{
//Erzeugung der JUnitStatusBar
this.setLayout(new FlowLayout(FlowLayout.LEFT));
this.setBorder(BorderFactory.createLineBorder(Color.gray));
setBackground(Color.WHITE);
//Erzeugung der 1. Komponente der JUnitStatusBar: Ampel
ampelPanel = new JLayeredPane ();
ImageIcon ampelbild = new ImageIcon ("C:/ampelrahmen.png");
ampelRahmen = new JLabel(ampelbild);
ampelRahmen.setBounds(20, 20, 10, 10);
ampelPanel.add(ampelRahmen, new Integer (3));
ampelLicht = new Ampel ();
ampelPanel.add(ampelLicht, new Integer (4));
this.add(ampelPanel);
}
class Ampel extends JPanel
{
public Ampel ()
{
setOpaque(false);
}
public void paintComponent(Graphics g)
{
g.setColor(Color.GREEN);
g.drawOval(0, 0, 5, 5);
g.fillOval(0, 0, 5, 5);
}
}