Wo liegt der Fehler?

Status
Nicht offen für weitere Antworten.
D

DerVerwirrte

Gast
Hallo Leute!
Ich muss für die Schule ein Programm schreiben, das Buttons enthält, bei deren Bedienung sich die Hintergrundfarbe des Programms ändert. Ich hab es auch schon geschrieben, aber irgendwie will der ActionListener nicht funktionieren.

So sieht es aus:
Code:
import java.awt.*;

public class Aufg2 extends Frame
{
 Panel pnl=new Panel(new GridLayout(4,2));
 Button rot=new Button("rot");
 Button rot(10);
 Button blau=new Button("blau");
 Button gruen=new Button("gruen");
 Button pink=new Button("pink");
 Button orange=new Button("orange");
 Button gelb=new Button("gelb");
 Button cyan=new Button("cyan");
 
 derWindowListener myWindowListener=new derWindowListener();
 derActionListener myActionListener=new derActionListener(this);
 
 public Aufg2()
 {
   super("");
   
   this.pnl.add(rot);
   this.pnl.add(blau);
   this.pnl.add(gruen);
   this.pnl.add(pink);
   this.pnl.add(orange);
   this.pnl.add(gelb);
   this.pnl.add(cyan);

   this.add(pnl,BorderLayout.CENTER);
   
   this.addWindowListener(new derWindowListener());
   
   rot.addActionListener(myActionListener);
   blau.addActionListener(myActionListener);
   //gruen.addActionListener(derActionListener());
   //pink.addActionListener(derActionListener());
   //orange.addActionListener(derActionListener());
   //gelb.addActionListener(derActionListener());
   //cyan.addActionListener(derActionListener());
   
   this.setSize(300,300);
   this.setVisible(true);
 }
 public static void main(String[]args)
 {
   Aufg2 f=new Aufg2();
 }
}
Code:
import java.awt.*;
import java.awt.event.*;

public class derActionListener implements ActionListener
{
  public Aufg2 f;
  public derActionListener(Aufg2 f)
  {
    this.f=f;
  }
  public void actionPerformed(ActionEvent e)
  {
    if(e.getSource()==f.rot)
    {
     f.setBackground(Color.red);
    }
    else if(e.getSource()==f.blau)
    {
     f.setBackground(Color.blue);
    }
  }
}

Mein Java-Editor zeigt keine Fehlermeldungen an und laufen tut das Programm auch.
Aber warum verändert sich die Hintergrundfarbe nicht?
Wie kann ich die Buttons kleiner machen bzw nur so groß wie die Beschriftung?

DerVerwirrte
 
G

Guest

Gast
Ups hab nen Fehler gemacht.
Zeile 8 des ersten Quellcodes müsst Ihr löschen. Dann ist es lauffähig, funktioniert aber trotzdem nicht.
 

lin

Top Contributor
Das Panel verdeckt das Frame, von welchem du die Farbe änderst...

Code:
Panel pnl=new Panel(new GridLayout(4,2));
 
D

DerVerwirrte

Gast
Achso alles klar . Vielen Dank.

Eine Frage hätte ich aber immernoch: Wie bekomm ich die Größe der Buttons kleiner?
 

lin

Top Contributor
Unter Swing kannst du mit
Code:
setPreferredSize(new Dimension(int w, int h));
die Werte verändern, unter AWT, hm? setSize()?
Kannst natürlich auch einfach die grösse des Frames verkleinern, dann werden die Buttons auch kleiner...

Ich hatte gerade etwas Freude am proggen ;-)
Ist wahrscheinlich nicht besonders gut, ging sehr rasch, aber vielleicht kannst du ja doch mal einen Blick drauf werfen... Ist leider Swing und nicht AWT.

Code:
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class Aufg2 extends JFrame implements ActionListener {
	
static JButton disp = new JButton(); //display Button, zeigt Farbe an
	
	public Aufg2() {
		setTitle("Change Colors");
		setSize(300, 200);
		int x = (int) (0.5 * (getToolkit().getScreenSize().width - getWidth()));
		int y = (int) (0.5 * (getToolkit().getScreenSize().height - getHeight()));
		setLocation(x, y);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		JPanel pane = new JPanel(new GridLayout(4, 2));
		
		//Erstelle Buttons
		String[] lbl = { "rot", "blau", "grün", "pink", "orange", "gelb", "cyan" };
		JButton[] bt = new JButton[lbl.length];
		for( int i = 0; i < bt.length; i++ ) {
			bt[i] = new JButton(lbl[i]);
			bt[i].addActionListener(this);
			bt[i].setActionCommand(lbl[i]);
			pane.add(bt[i]);
		}
		pane.add(disp);
		
		getContentPane().add("Center", pane);
		setVisible(true);
	}
	
	public void actionPerformed(ActionEvent ae) {
		String source = ae.getActionCommand();
		Dimmer.col = disp.getBackground();
		
		if(source == "rot") {
			Dimmer.dest = Color.RED;
		} else if (source == "blau") {
			Dimmer.dest = Color.BLUE;
		} else if (source == "grün") {
			Dimmer.dest = Color.GREEN;
		} else if (source == "pink") {
			Dimmer.dest = Color.PINK;
		} else if (source == "orange") {
			Dimmer.dest = Color.ORANGE;
		} else if (source == "gelb") {
			Dimmer.dest = Color.YELLOW;
		} else {
			Dimmer.dest = Color.CYAN;
		} 
		//Dimmer Thread
		Dimmer dim = new Dimmer();
		Thread thr = new Thread(dim);
		thr.start();
	}
	
	//Methode welche die Farbwerte setzt
	public static void updateDisp(Color col) {
		disp.setBackground(col);
		disp.repaint();
	}
	
	public static void main(String[] args) {
		new Aufg2();
	}	
}

class Dimmer implements Runnable {
	static Color col, dest;
	long duration = 1000; //Dauer des Farbwechsels in ms
	int changes = 20; //Anzahl Farbwechsel
	
	//run Methode des Dimmer-Threads
	public void run() {
		//Berechne um wie viel die einzelnen Farbwerte verändert werden müssen
		int r = dest.getRed() - col.getRed(); 
		int g = dest.getGreen() - col.getGreen();
		int b = dest.getBlue() - col.getBlue();
	
		try {
			//Berechne um wieviel die einzelnen Farben erhöht werden müssen
			double rInc = r/changes, gInc= g/changes, bInc = b/changes;
			r = Math.abs(col.getRed()); g = Math.abs(col.getGreen()); b = Math.abs(col.getBlue());
			for ( int k = 0; k < 20; k++) {
				r += rInc;
				g += gInc;
				b += bInc;
				//updateDisp Methdoe wird aufgerufen
				Aufg2.updateDisp(new Color(r, g, b));
				//Thread wird schlafen gelegt für gewisse Zeit
				Thread.sleep(duration/changes);
			}
		} catch (InterruptedException ie) {
			System.out.println(ie);
		}
	}
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Touchscreen-Scrollen, wo liegt der Fehler? AWT, Swing, JavaFX & SWT 3
P JRadioButton in Schleife erstellen > wo liegt mein Fehler AWT, Swing, JavaFX & SWT 2
J Wo liegt der Fehler ? "EventDispatchThread AWT, Swing, JavaFX & SWT 2
G JavaFX Steuerung bzw. Test von externer JavaFX Anwendung (liegt nur als jar vor) AWT, Swing, JavaFX & SWT 9
B JavaFX Wo liegt mein Gedankenfehler ??? KeyEvent geht nicht ... AWT, Swing, JavaFX & SWT 8
S Punkt finden der in einem Shape liegt..? AWT, Swing, JavaFX & SWT 11
SexyPenny90 JLabel liegt unter meiner Turtle AWT, Swing, JavaFX & SWT 5
M BorderLayout JPanel liegt nicht richtig an AWT, Swing, JavaFX & SWT 12
F name des panels in der ein button liegt rausfinden AWT, Swing, JavaFX & SWT 10
F Herausfinden, auf welchem Objekt der Fokus liegt AWT, Swing, JavaFX & SWT 2
G Komponente die im Center und North Bereich liegt zurückgebe? AWT, Swing, JavaFX & SWT 6
S Jlabel liegt über anderem JLabel AWT, Swing, JavaFX & SWT 11
hannibalstgt Fehler bei JCOMBOBOX GUI Anzeige AWT, Swing, JavaFX & SWT 4
J Fehler bei jFame.setTitle() AWT, Swing, JavaFX & SWT 8
thor_norsk SpringBoot-Fehler AWT, Swing, JavaFX & SWT 7
J Ich kriege eine Fehler Messesage bei meinem Media Player AWT, Swing, JavaFX & SWT 8
H Fehler: Zum Ausführen dieser Anwendung benötigte JavaFX-Runtime-Komponenten fehlen AWT, Swing, JavaFX & SWT 44
S Fehler beim Öffnen weiterer FXML AWT, Swing, JavaFX & SWT 11
S JavaFX Fehler zwischen View und Controller bei MouseEvent (MVC) AWT, Swing, JavaFX & SWT 13
T ListView nach Erweiterung Fehler in CellFactory AWT, Swing, JavaFX & SWT 8
beli3ver JavaFX Anwendung startet nicht, kann den Fehler nicht finden (Exception in Application start method) AWT, Swing, JavaFX & SWT 1
J "Exception in thread "AWT-EventQueue-0"" Fehler AWT, Swing, JavaFX & SWT 3
parrot JavaFX Fehler AWT, Swing, JavaFX & SWT 4
H JavaFX JavaFX Import Fehler AWT, Swing, JavaFX & SWT 4
T Anderen Java Code durch Code kompilieren und Fehler in Label ausgeben AWT, Swing, JavaFX & SWT 5
M AWT Kann meinen Fehler beim ActionListener nicht finden AWT, Swing, JavaFX & SWT 5
Z Swing Wert aus Textfeld auslesen -- null Fehler AWT, Swing, JavaFX & SWT 4
A eine Fehler AWT, Swing, JavaFX & SWT 9
A Fehler beim Hintergrund AWT, Swing, JavaFX & SWT 17
L JavaFX Fehler beim setzen von Farben AWT, Swing, JavaFX & SWT 16
B JavaFX Text wird nicht angezeigt, kein Fehler AWT, Swing, JavaFX & SWT 2
W fillRect() in Schleife spukt nur Fehler aus AWT, Swing, JavaFX & SWT 3
S Fehler: Hauptklasse neon.Main konnte nicht gefunden oder geladen werden AWT, Swing, JavaFX & SWT 5
Tronert JavaFX Fehler beim Ändern der font-weight AWT, Swing, JavaFX & SWT 7
Tommy135 JavaFX JavaFX Fehler beim Scenewechsel AWT, Swing, JavaFX & SWT 23
V JavaFX Button Controller Fehler, trotz Erfolg in einem anderem Code? AWT, Swing, JavaFX & SWT 7
E Fehler bei Button AWT, Swing, JavaFX & SWT 1
L Unbekannter Fehler AWT, Swing, JavaFX & SWT 13
H JavaFX Kriege fehler beim Fenster wechseln AWT, Swing, JavaFX & SWT 7
I Fehler bei Alert AWT, Swing, JavaFX & SWT 6
J Fehler bei PixelColor erkennung AWT, Swing, JavaFX & SWT 4
T Fehler bei ActionEvent? AWT, Swing, JavaFX & SWT 3
V Fehler bei Würfelsimulator GUI AWT, Swing, JavaFX & SWT 2
Z GUI-Problem, finde meinen Fehler nicht! AWT, Swing, JavaFX & SWT 11
Seikuassi SWING - (Hoffentlicher) simpler Color-Fehler AWT, Swing, JavaFX & SWT 4
M Swing finde den fehler nicht AWT, Swing, JavaFX & SWT 9
A Fehler bei erstellen eines JTextFields AWT, Swing, JavaFX & SWT 2
D Unlogischer Fehler? AWT, Swing, JavaFX & SWT 2
L Eclipse Fehler besser zu verstehen!!! AWT, Swing, JavaFX & SWT 4
E Warum macht die einfache Animation einen kleinen Fehler? AWT, Swing, JavaFX & SWT 14
bluerob Fehler bei Wertübermittlung über KeyListener AWT, Swing, JavaFX & SWT 3
H GUI-Textausgabe Fehler AWT, Swing, JavaFX & SWT 5
S String is null Fehler AWT, Swing, JavaFX & SWT 2
P Swing GroupLayout() Fehler? AWT, Swing, JavaFX & SWT 3
J JMenuBar ist geaddet, aber nicht im Frame. Wo ist der Fehler? (inkl. Code) AWT, Swing, JavaFX & SWT 2
N Fehler Inhalt von JTable wird gelöscht AWT, Swing, JavaFX & SWT 5
S Fehler beim Zweites 3D Bild AWT, Swing, JavaFX & SWT 2
L Fehler beim erstellen einer Tabelle mithilfe von 2d-Array AWT, Swing, JavaFX & SWT 3
M GEF tutorial Fehler finden AWT, Swing, JavaFX & SWT 4
S Grafik Fehler AWT, Swing, JavaFX & SWT 15
M Fehler bei Arrayübergabe an JComboBox AWT, Swing, JavaFX & SWT 10
J Fehler beim Einklappen eines Trees AWT, Swing, JavaFX & SWT 4
P 2D-Grafik Fehler beim Laden eines Bildes AWT, Swing, JavaFX & SWT 25
S LayoutManager Fehler gesucht 18.6.2011 AWT, Swing, JavaFX & SWT 4
C Fehler nur bei manchen Usern AWT, Swing, JavaFX & SWT 8
Screen Fehler bei Get-Methode für ArrayList AWT, Swing, JavaFX & SWT 8
K JFrame + KeyListener + Runnable = Fehler AWT, Swing, JavaFX & SWT 3
I Fehler bei JFileChooser AWT, Swing, JavaFX & SWT 2
K 2D-Grafik Fehler beim Farbe auslesen AWT, Swing, JavaFX & SWT 3
J Fehler beim Gif Datei öffnen AWT, Swing, JavaFX & SWT 2
J 2D-Grafik Fehler beim Überzeichnen von Linien AWT, Swing, JavaFX & SWT 11
E Swing Fehler nach Befüllen einer JTable mit gesetzem Rowsort?! AWT, Swing, JavaFX & SWT 10
P Swing Misteriöser Fehler JTable AWT, Swing, JavaFX & SWT 5
Y Swing JPasswordField Fehler AWT, Swing, JavaFX & SWT 14
A Swing Unknown Source Fehler AWT, Swing, JavaFX & SWT 9
N Fehler bei Grouplayout AWT, Swing, JavaFX & SWT 17
S ActionPerformed Fehler... AWT, Swing, JavaFX & SWT 9
C BufferedImage-Fehler? Falsches Bild wir gezeichnet AWT, Swing, JavaFX & SWT 5
A Tabellen Überschriften ändern -setColumnIdentifiers()- Fehler AWT, Swing, JavaFX & SWT 7
hdi Swing JTable: Fehler beim Nutzen von RowSorter#setRowFilter AWT, Swing, JavaFX & SWT 4
M.F.G. Fehler bei der Anzeige Grafischer Elemente AWT, Swing, JavaFX & SWT 13
D Swing Verwirrender Fehler AWT, Swing, JavaFX & SWT 7
J Fehler in fillRoundRect AWT, Swing, JavaFX & SWT 2
D Probleme mit Spiel-Engine. Komische Fehler. AWT, Swing, JavaFX & SWT 5
W fehler jedoch ka wo AWT, Swing, JavaFX & SWT 14
F Fehler in der Startklasse AWT, Swing, JavaFX & SWT 13
A Fehler bei der Parametereingabe? AWT, Swing, JavaFX & SWT 16
P finde den Fehler im JTable nicht AWT, Swing, JavaFX & SWT 2
Spin Fehler in Vergleich AWT, Swing, JavaFX & SWT 6
K Swing: ContentPane von JDialog ist transparent (Fehler) AWT, Swing, JavaFX & SWT 10
Dragonfire ZoomImage flackert -> Fehler: repaint-Aufruf [gelöst] AWT, Swing, JavaFX & SWT 5
T Invalid Range - Fehler bei TableRowSorter / Tabelle AWT, Swing, JavaFX & SWT 17
DasDogma Fehler bei getText() AWT, Swing, JavaFX & SWT 10
I Fehler bei verschachtelten JScrollPanes AWT, Swing, JavaFX & SWT 2
M Fehler beim Zugriff von awt-KeyListener auf swt-Shell AWT, Swing, JavaFX & SWT 2
GilbertGrape Fehler bei HTML in JTextPane AWT, Swing, JavaFX & SWT 2
K Textfelder auslesen gibt immer Fehler AWT, Swing, JavaFX & SWT 2
D Fehler bei Button Array AWT, Swing, JavaFX & SWT 8
P Fehler beim Einlesen eines JTextFields AWT, Swing, JavaFX & SWT 2
G Viele Fehler beim zeichen AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben