Undefined Instanz/Konstruktoraufruf

G

guest2123

Gast
Hallo,

ich hab einen Reaktionstester geschrieben. Ich glaube wie der genau Funktioniert ist egal, weil das zur Fehlersuche denke ich nicht gebraucht wird, wenn doch bitte sagen!

Fehler in Zeile 60: The constructor Label_Scrollbar(int, MainFrame) is undefined

Der Konstruktor dazu befindet sich in Zeile: 179

Ich verstehe überhaupt nicht warum das nicht gehn soll, denn die Übergabeparamenter passen doch oder?

Mit this, übergebe ich das Objekt MainFrame und speichere es in LevelChangeObserver und integer to integer dürfte auch passen oder?

Bitte erklärt mir warum das nicht funktioniert.

Danke!

mfg

guest

Hier das Programm:
Java:
MainFrame.java(da wo instanziert wird):
package Reaktionstester;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import LevelTools.*;

import java.util.*;


public class MainFrame extends JFrame implements LevelChangeObserver {
	// Konstante für Wartezeit Timer
	private static final int RAND_RANGE = 600;
	private static final int RAND_OFFS = 200;


	private JPanel colorPane;
	private JButton b_react;
	private LED_Anzeige anzeige;
	private boolean started = false;
	private javax.swing.Timer myTimer;
	private Random myrand;
	private long starttime;
	private Label_Scrollbar sb_level;
	private int level = Label_Scrollbar.LEICHT;
	
 
	/**
	 * 
	 */
	public MainFrame() {
		try {
			setDefaultCloseOperation(EXIT_ON_CLOSE);
			FrameInit();
		} catch (Exception exception) {
			exception.printStackTrace();
		}
	}
	
	public void change_level(int new_level) {
		level = new_level;
	}

	private void FrameInit() throws Exception {
		JPanel contentPane = (JPanel) getContentPane();
		contentPane.setLayout(new BorderLayout());
		setSize(new Dimension(400, 300));
		setTitle("Reaktionstester Vers. 2.1");

		colorPane = new JPanel(new FlowLayout());
		b_react = new JButton("START");
		colorPane.add(b_react);
		contentPane.add(colorPane, BorderLayout.CENTER);
		colorPane.setBackground(Color.RED);
		b_react.addActionListener(new Button_Listener());
		anzeige = new LED_Anzeige(10);
		contentPane.add(anzeige, BorderLayout.SOUTH);

		sb_level = new Label_Scrollbar(Label_Scrollbar.LEICHT,this);		
		contentPane.add(sb_level, BorderLayout.EAST);

		// Random-Generator erzeugen
		myrand = new Random();
		// Timer erzeugen (noch nicht starten)
		myTimer = new javax.swing.Timer(getRand(RAND_OFFS), new Timer_Listener());
	}

	/**
	 * liefert einen zufälligen Zeitwert (Zufallszahl + Offset) für den Timer
	 */
	private int getRand(int offset) {
		return (myrand.nextInt(RAND_RANGE) + offset);
	}

	/**
	 * zeigt den Wert der Reaktionszeit an
	 * 
	 * @param val
	 */
	private void show_value(long val) {
		// l_time.setText(Long.toString(val));
		anzeige.setValue((short) val);
	}

	/**
	 * Farbwechsel
	 */
	private void changeColor() {
		if (colorPane.getBackground() == Color.RED) {
			colorPane.setBackground(Color.GREEN);
		} else {
			colorPane.setBackground(Color.RED);
		}
	}

	/**
	 * Handler für Reaktions-Button
	 */
	private void buttonHandler() {
		if (!started) {
			b_react.setText("PRESS");
			started = true;
		} else {
			long t_react = System.currentTimeMillis() - starttime;
		
			myTimer.setInitialDelay(getRand(getOffset()));
			show_value(t_react);
		}
		myTimer.start();
		b_react.setEnabled(false);
	}
	
	private int getOffset() {
		int offset=0;
		switch(level)
		{
		    case Label_Scrollbar.LEICHT:
			offset = 1000;
			break;
			
		    case Label_Scrollbar.MITTEL:
			offset = 500;
			break;  
			
		    case Label_Scrollbar.SCHWER:
			offset = 200;
			break;	
		}	
		return(offset);
	}

	/**
	 * Handler für Timer
	 */
	private void timerHandler() {
		myTimer.stop();
		changeColor();
		starttime = System.currentTimeMillis();
		b_react.setEnabled(true);
	}


	private class Timer_Listener implements ActionListener {
		public void actionPerformed(ActionEvent ae) {
			timerHandler();
		}
	}

	private class Button_Listener implements ActionListener {
		public void actionPerformed(ActionEvent ae) {
			buttonHandler();
		}
	}
}



Label_Scrollbar.java(da wo der Konstruktor ist):
package LevelTools;


import java.awt.*;
import java.awt.event.AdjustmentEvent;
import java.awt.event.AdjustmentListener;

import javax.swing.*;


public class Label_Scrollbar extends JScrollBar {
	public static final int SCHWER = 2;
	public static final int MITTEL = 1;
	public static final int LEICHT = 0;
	

	LevelChangeObserver cb;
	private int level;
	
	public Label_Scrollbar(int level, LevelChangeObserver cb) {
		super(JScrollBar.VERTICAL, 1, 1, 0, 3);
		this.cb=cb;
		this.level=level;
		addAdjustmentListener(new Scrollbar_Listener());
		color_Change();
		
	}
	

	
	private void color_Change() {
		switch(level)
		{
		    case LEICHT:
			setBackground(Color.GREEN);
			break;
			
		    case MITTEL:
			setBackground(Color.ORANGE);
			break;
			
		    case SCHWER:
			setBackground(Color.RED);
			break;	
		}
	}
	
	private void sb_handler(AdjustmentEvent ae) {
		level=getValue();
		color_Change();
		cb.change_level(level);
	}

	private class Scrollbar_Listener implements AdjustmentListener {
		public void adjustmentValueChanged(AdjustmentEvent ae) {
			sb_handler(ae);
		}

	}
}

---

LevelChangeObserver.java(das interface):
package LevelTools;

public interface LevelChangeObserver {
	public void change_level(int value);
}
 

nrg

Top Contributor
das ist doch eine ganz andere Signatur von dem Konstruktor ???:L

public Label_Scrollbar(int level, LevelChangeObserver cb) {
 
G

guest2123

Gast
Funktio
niert das denn nicht wegen dem implements?

Ich hab eine "Musterlösung" und da ist genau das selbe wie ich das habe.

Oder seh ich das falsch?


Hier mal die Musterlösung:

Java:
mainframe.java:
package Reaktionstester;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import LevelTools.*;

import java.util.*;


public class MainFrame extends JFrame implements LevelChangeObserver {
	// Konstante für Wartezeit Timer
	private static final int RAND_RANGE = 400;
	private static final int RAND_OFFS_LOW = 1000;
	private static final int RAND_OFFS_MID = 600;
	private static final int RAND_OFFS_HIGH = 200;

	private JPanel colorPane;
	private JButton b_react;
	private Modul_7Segment mod_anzeige;
	private boolean started = false;
	private javax.swing.Timer myTimer;
	private Random myrand;
	private long starttime;
	private Level_ScrollBar sb_level;
	private int level = Level_ScrollBar.LOW;

	/**
	 * 
	 */
	public MainFrame() {
		try {
			setDefaultCloseOperation(EXIT_ON_CLOSE);
			FrameInit();
		} catch (Exception exception) {
			exception.printStackTrace();
		}
	}
	
	public void change_level(int new_level) {
		level = new_level;
	}
	
	private void FrameInit() throws Exception {
		JPanel contentPane = (JPanel) getContentPane();
		contentPane.setLayout(new BorderLayout());
		setSize(new Dimension(400, 300));
		setTitle("Reaktionstester Vers. 3.0");

		colorPane = new JPanel(new FlowLayout());
		b_react = new JButton("START");
		colorPane.add(b_react);
		contentPane.add(colorPane,BorderLayout.CENTER);
		colorPane.setBackground(Color.RED);
		b_react.addActionListener(new Button_Listener());
		mod_anzeige = new Modul_7Segment(6);
		contentPane.add(mod_anzeige,BorderLayout.SOUTH);
		sb_level = new Level_ScrollBar(Level_ScrollBar.LOW,this);
		contentPane.add(sb_level,BorderLayout.EAST);
		

		// Random-Generator erzeugen
		myrand = new Random();
		// Timer erzeugen (noch nicht starten)
		myTimer = new javax.swing.Timer(getRand(), new Timer_Listener());
	}
	
	/**
	 * liefert einen zufälligen Zeitwert (Zufallszahl + Offset) für den Timer
	 */
	private int getRand() {
		int offset = RAND_OFFS_LOW;
		switch (level) {
		case Level_ScrollBar.LOW:
			offset = RAND_OFFS_LOW;
			break;
		case Level_ScrollBar.MID:
			offset = RAND_OFFS_MID;
			break;
		case Level_ScrollBar.HIGH:
			offset = RAND_OFFS_HIGH;
			break;
		}
		return (myrand.nextInt(RAND_RANGE) + offset);
	}

	/**
	 * zeigt den Wert der Reaktionszeit an
	 * @param val
	 */
	private void show_value(long val) {
		mod_anzeige.setValue((int)val);
	}

	/**
	 * Farbwechsel
	 */
	private void changeColor() {
		if (colorPane.getBackground() == Color.RED) {
			colorPane.setBackground(Color.GREEN);
		} else {
			colorPane.setBackground(Color.RED);
		}
	}

	/**
	 * Handler für Reaktions-Button
	 */
	private void buttonHandler() {
		if (!started) {
			b_react.setText("PRESS");
			started = true;
		}
		else {
			long t_react = System.currentTimeMillis() - starttime;
			myTimer.setInitialDelay(getRand());
			show_value(t_react);
		}
		myTimer.start();
		b_react.setEnabled(false);
	}
	
	/**
	 * Handler für Timer
	 */
	private void timerHandler () {
		myTimer.stop();
		changeColor();
		starttime = System.currentTimeMillis();
		b_react.setEnabled(true);
	}

	private class Timer_Listener implements ActionListener {
		public void actionPerformed(ActionEvent ae) {
			timerHandler();
		}
	}

	private class Button_Listener implements ActionListener {
		public void actionPerformed(ActionEvent ae) {
			buttonHandler();
		}
	}
}

Level_Scrollbar.java:

package LevelTools;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Level_ScrollBar extends JScrollBar {
	// Konstante für Schwierigkeitsgrad
	public static final int LOW = 0;
	public static final int MID = 1;
	public static final int HIGH = 2;

	LevelChangeObserver cb;
	private int level;

	/**
	 * 
	 * @param cb - callback-Referenz auf MainFrame
	 */
	public Level_ScrollBar(int level, LevelChangeObserver cb) {
		super(JScrollBar.VERTICAL, 0, 1, 0, 3);
		this.cb = cb;
		this.level = level;
		addAdjustmentListener(new SB_Listener());
		setBackground(Color.GREEN);
	}
	

	private void set_BColor() {
		switch (level) {
		case LOW:
			setBackground(Color.GREEN);
			break;
		case MID:
			setBackground(Color.ORANGE);
			break;
		case HIGH:
			setBackground(Color.RED);
			break;
		}
	}
	/**
	 * Handler für Scrollbar-Bewegung
	 * @param ae
	 */
	private void sb_Handler(AdjustmentEvent ae) {
		level = getValue();
		set_BColor();
		cb.change_level(level);
	}

	private class SB_Listener implements AdjustmentListener {
		public void adjustmentValueChanged(AdjustmentEvent ae) {
			sb_Handler(ae);
		}
	}
}

levelchangeobserver.java:

package LevelTools;

public interface LevelChangeObserver {
	public void change_level(int value);
}
 
G

Gast2

Gast
Er übergibt doch einen LevelChangeObserver:
Java:
public class MainFrame extends JFrame implements LevelChangeObserver
Das passt schon so.

@TO:
Ich sehe in deinem Code auch keinen Fehler, der Konstruktoraufruf passt. Hast du vllt die Klassen nicht alle kompiliert oder noch alte Stände?
Falls du ne IDE nutzt, dann versuch mal ein clean.
 

Titanpharao

Bekanntes Mitglied
levelchangeobserver.java:

package LevelTools;

public interface LevelChangeObserver {

Interface heißt niht so wie die Datei, bzw anders rum ... sogar überall so, das solltest du als erstes mal ändern.
 
G

guest2123

Gast
@Titan: Danke, aber ich war nur zu Faul groß zu schreiben hier im Forum. Ich hab das eh gleich benannt alles.

@Eike:

Was meinst mit clean? Wie überprüfe ich denn ob ich alte Stände habe bzw. die Klassen kompiliert habe?

Ich hab jetzt einfach mal Eclipse neugesartet, aber funkioniert auch nicht, so sieht es halt aus, wenn ich, das Programm ausführen will:

 
G

Gast2

Gast
Ich sehe da zwei Label_Scrollbar.java Dateien. Eine davon wird wohl überflüssig sein nehme ich an.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Compiler-Fehler JTable mit XML befüllen | The constructor JTable(Object[], String[]) is undefined Java Basics - Anfänger-Themen 10
D Klassen undefined for the type 'object' Java Basics - Anfänger-Themen 2
F The constructor Vehikel(String, int) is undefined warum?? Java Basics - Anfänger-Themen 4
D Methoden undefined method Java Basics - Anfänger-Themen 13
L Constructor is undefined Java Basics - Anfänger-Themen 4
snipesss Operator "-" is undefined Java Basics - Anfänger-Themen 1
K Operatoren The Operator * is undefined for the argument type(s) double, String Java Basics - Anfänger-Themen 4
O Operator undefined Java Basics - Anfänger-Themen 2
S CSVReader funktioniert nicht ---- The Constructor CSVReader(String) is undefined Java Basics - Anfänger-Themen 4
S The constructor File(URL) is undefined Java Basics - Anfänger-Themen 10
L The operator && is undefined for the argument type(s) String, boolean Java Basics - Anfänger-Themen 8
M Fehlermeldung: the method.... ist undefined for the type object Java Basics - Anfänger-Themen 6
M Ausgabe von "Undefined" Java Basics - Anfänger-Themen 3
B Undefined for the type... Java Basics - Anfänger-Themen 15
D The constructor Bestellung(Bestellung.Produkt, Bestellung.Kunde) is undefined Java Basics - Anfänger-Themen 15
E method undefined - wo ist der Fehler? Java Basics - Anfänger-Themen 5
S BufferedWriter undefined constructor Java Basics - Anfänger-Themen 5
B method intValue() is undefined for the type String (?) Java Basics - Anfänger-Themen 4
5 newBoxLayout undefined for Player? obwohl eingebunden. Java Basics - Anfänger-Themen 7
S Vector an DefaultTableModel übergeben .Vector is undefined Java Basics - Anfänger-Themen 8
G typeof is undefined for the type "Klassenname" Java Basics - Anfänger-Themen 8
S Einfach-Verkettete-Listen Ausgabe zeigt nur 1. und letzte instanz Java Basics - Anfänger-Themen 2
frager2345 Singleton-Muster Java ->Nur eine Instanz einer Klasse erzeugen können Java Basics - Anfänger-Themen 45
H String Repräsentation eines Rechtecks mit Instanz-Methode Java Basics - Anfänger-Themen 8
O Mit Instanz von Oberklasse auf Unterklasse zugreifen Java Basics - Anfänger-Themen 2
O Wie erstelle ich eine Instanz in einer Klasse für die ich die Instanz will? Java Basics - Anfänger-Themen 4
T Auf Instanz der selben Klasse aus überschriebener Methode in Methode zugreifen. Java Basics - Anfänger-Themen 2
T Inhalt aus TextField in Attribut einer Instanz schreiben Java Basics - Anfänger-Themen 5
F Wann ist es eine Instanz und wann nicht? Java Basics - Anfänger-Themen 1
Kirby.exe Generische Objekt Instanz erstellen Java Basics - Anfänger-Themen 14
M Java Instanz-Variablen ? Java Basics - Anfänger-Themen 3
I Instanz einer anderen Klasse zurückgeben Java Basics - Anfänger-Themen 34
G Unterschied Instanz- Klassenvariable Java Basics - Anfänger-Themen 11
F Mehrere Instanzen der Klasse A EINER Instanz der Klasse B übergeben Java Basics - Anfänger-Themen 3
F OOP Instanz einer Klasse an eine andere weitergeben Java Basics - Anfänger-Themen 16
C Instanz einer Klasse während if-Abfrage erzeugen und bei zweiter if-Abfrage wiederverwenden Java Basics - Anfänger-Themen 6
C Group, Actor und Instanz-Zugriff, LibGDX Java Basics - Anfänger-Themen 4
BadBat Klassen instanz als variable + methodenaufruf Java Basics - Anfänger-Themen 4
T Auf Instanz einer Liste zugreifen Java Basics - Anfänger-Themen 2
M Neu instanzierte Klasse übernimmt Werte von anderer Instanz Java Basics - Anfänger-Themen 4
P Instanz mit .add Methode von einer Klasse zur anderen? Java Basics - Anfänger-Themen 6
H Klassen Von Instanzvariablen auf Instanz schließen Java Basics - Anfänger-Themen 21
W Methoden Methode ohne Parameter auf Instanz eines Objekts aufrufen? Java Basics - Anfänger-Themen 14
J Variablen Unterschied zwischen lokalen-, Instanz-, Klassenvariablen Java Basics - Anfänger-Themen 6
T Junit Mockito: Instanz von inneren erzeugten Objekten Java Basics - Anfänger-Themen 4
S Klassen Instanz anderer Klasse raus geben Java Basics - Anfänger-Themen 1
B Klassen Auf Instanz anderer Klasse zugreifen Java Basics - Anfänger-Themen 1
U JavaFX eine Vbox Instanz pro Pane? Java Basics - Anfänger-Themen 2
D Instanz einer Subklasse anhand deren Superklasse Java Basics - Anfänger-Themen 5
K Zugriff auf Variabeln Wert einer Instanz Java Basics - Anfänger-Themen 4
O OOP Methoden bei erstellen einer Instanz und mehr Java Basics - Anfänger-Themen 4
S Methoden eine Instanz einer eigenen Klasse als parameter übergeben Java Basics - Anfänger-Themen 9
S Wann existiert eine Instanz (eigene Klasse) Java Basics - Anfänger-Themen 8
E Von Instanz des Dialogs auf das Frame zugreifen Java Basics - Anfänger-Themen 8
kaoZ Android Programmierung / Erstellen einer neuen Instanz Java Basics - Anfänger-Themen 2
B Variablen Instanz von Enum zur Laufzeit erstellen und zuweisen Java Basics - Anfänger-Themen 2
S Ein Attribut/Instanz eines bestehendes Objektes mit SETTER Methode ändern Java Basics - Anfänger-Themen 3
M Initialisierungsblock beim Erzeugen einer Instanz Java Basics - Anfänger-Themen 6
J Instanz durch String Java Basics - Anfänger-Themen 8
U final Instanz Java Basics - Anfänger-Themen 11
C Klassen Zugriff auf Instanz einer anderen Klasse Java Basics - Anfänger-Themen 9
F Array als Instanz einer Klasse Java Basics - Anfänger-Themen 8
P Klassen Instanz einer Klasse in ihrer eigenen Definition erzeugen? möglich? Java Basics - Anfänger-Themen 4
O Erste Schritte Klassenname zurückgeben, keine instanz Java Basics - Anfänger-Themen 23
0 Log4J Instanz erzeugen Java Basics - Anfänger-Themen 2
K Methoden Zustand innerhalb einer Instanz ändern Java Basics - Anfänger-Themen 2
B Geerbte Instanz kann keine void Methode ausführen?! Java Basics - Anfänger-Themen 15
pindakaas Instanz einer Klasse in einer anderen erzeugen Java Basics - Anfänger-Themen 6
L Instanz Problem Java Basics - Anfänger-Themen 4
E ActionListener erkennt instanz nicht Java Basics - Anfänger-Themen 9
M JRadioButton keine Instanz von ButtonModel Java Basics - Anfänger-Themen 10
B Daten in Instanz einer Klasse ändern / abfragen Java Basics - Anfänger-Themen 12
A Instanz einer Klasse Java Basics - Anfänger-Themen 2
S Instanz(en) einer Singleton-Klasse Java Basics - Anfänger-Themen 11
S OOP Warum gleiche Instanz der Klasse? (Factory-Muster) Java Basics - Anfänger-Themen 13
O zugriff auf eine Instanz Java Basics - Anfänger-Themen 8
U Instanz aufrufen Java Basics - Anfänger-Themen 3
A Stilfrage: statische Variable mit Instanz der gleichen Klasse Java Basics - Anfänger-Themen 8
Antoras eine Instanz von mehrere Klassen aus nutzen Java Basics - Anfänger-Themen 2
D Wie neue Instanz einer Klasse erstellen, von der ich nur eine andere Instanz kenne? Java Basics - Anfänger-Themen 13
D Servlet kann nicht auf Instanz zugreifen Java Basics - Anfänger-Themen 10
G neue Instanz von ArrayList Java Basics - Anfänger-Themen 5
G Name der Instanz einer Klasse. Java Basics - Anfänger-Themen 2
W IE Instanz öffnen / Ausführbare Datei öffnen Java Basics - Anfänger-Themen 2
G Was passiert mit eine Methode bei einer Instanz Java Basics - Anfänger-Themen 13
D vererbung, kinder einer instanz. Java Basics - Anfänger-Themen 25
D Bei Event soll Instanz sich selbst löschen Java Basics - Anfänger-Themen 4
G Vererbung mit einer Instanz aus der Superklasse Java Basics - Anfänger-Themen 2
J Generics Probleme mit instanz von T Java Basics - Anfänger-Themen 4
H OO-Anfänger: mehrere Klassen greifen auf eine Instanz zu Java Basics - Anfänger-Themen 9
H instanz von Button wird nicht erkannt! Java Basics - Anfänger-Themen 6
P Instanz mit allen Attributen ausgeben Java Basics - Anfänger-Themen 3
B Sortieren von Objekt Arrays nach einer Instanz Java Basics - Anfänger-Themen 8
E Eine Klasse hat eine Instanz von sich selbst. Java Basics - Anfänger-Themen 6
W zugriff auf jframe klasse und deren instanz geht nicht? Java Basics - Anfänger-Themen 11
G Instanz-Rückgabewerte abspeichern Java Basics - Anfänger-Themen 2
F Socket Instanz auf Klasse welche von Socket erbt zuweisen Java Basics - Anfänger-Themen 3
I In Instanz ausgeben wer sie erzeugt hat Java Basics - Anfänger-Themen 2
F nur 1 Instanz 1 Klasse --> static? Java Basics - Anfänger-Themen 10
P Instanz kann nicht erstellt werden. Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben