Unresolved compilation error

HeinerPyt

Erfahrenes Mitglied
Hi,

vielleicht kann mir jemand sagen wo hier das Problem liegen könnte:

Ich habe ein packeg Astronomie. Darin befindet sich unter anderem:
Code:
	public class KeplerBahn extends JFrame 
	{
		


		public KeplerBahn( int x, int y )
		{
		    setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE); 
		    setSize( x, y ); 
		    Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); 
		    setLocation( (d.width  - getSize().width ) / 2, d.height - getSize().height) / 2 ); 
		  } 

	 
		  public void init_window() 
		  { 
		  final JFrame  win = new KeplerBahn(700,700);
				
			    win.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
			    win.setTitle("Darstellung der keplerbahnen");

			    Panel panel1 = new Panel();
			   panel1.setBackground(Color.BLACK);
			    win.add(panel1);
//			    win.pack();
			    win.setVisible( true ); 
			    
			    
		
		  }
	}

In einem package hauptfenster befindet sich der Aufruf:

Code:
			if (labl.equals("Julianisches Datum"))
			{
//				H_Fenster.hide();
				julianisch jul = new julianisch(700,700);
				jul.init_window();
			}
//			H_Fenster.show();
			if (labl.equals("Keplerbahnen"))
			{
//				H_Fenster.hide();
				KeplerBahn KPB = new KeplerBahn(700,700);
				KPB.init_window();
			}
//			H_Fenster.show();

Bei dem Aufruf der Keplerbahn mault der Kompiler wie folgt:

Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problems:
KeplerBahn cannot be resolved to a type
KeplerBahn cannot be resolved to a type

at hauptfenster.hauptfenster.action(hauptfenster.java:184)


Woran kann das liegen?

Danke
Heiner
 
Ich habe in der Klasse hauptfenster folgendes stehehn:

import Astronomie.*;

Keplerbahn ist teil des package Astronomie.
 
Moin,

zwei Ideen:
(a) bist Du sicher, dass die Pfade in Relation zur Klasse "hauptfenster" stimmen ?
(b) Du hast darüber den Menüpunkt "julianisch".
Ist das gleich aufgebaut und abgelegt wie "Keplerbahn" ?
und der Aufruf klappt ?

Gruß
Klaus
 
Hallo,

Ich habe in der Klasse hauptfenster folgendes stehehn:

import Astronomie.*;

Keplerbahn ist teil des package Astronomie.

Auf jeden Fall ist deine Klasse nicht bekannt. Klick in der Zeile mit dem Fehler einmal auf den Klassenamen, also positioniere den Cursor da und drück doch einfach mal STRG+Space, da werden die Vorschläge gemacht und auch richtig importiert.

Noch ein kleiner Einwand, lt. Java-Konvention werden Variablennamen klein geschrieben.

Gruß

Sascha
 
Dann sollte es gehen, sofern auch in deiner Keplerbahn Klasse die Deklaration "package Astronomie;" vorhanden ist, und dieses sich auch in dem entsprechenden Unterverzeichnis befindet.

Das du aber auch sonst ne Menge grausige Sachen in deinem Code machst, ist dir klar, oder?

*grüssle*
 
Moin,

zwei Ideen:
(a) bist Du sicher, dass die Pfade in Relation zur Klasse "hauptfenster" stimmen ?
(b) Du hast darüber den Menüpunkt "julianisch".
Ist das gleich aufgebaut und abgelegt wie "Keplerbahn" ?
und der Aufruf klappt ?

Gruß
Klaus

Zu a
Zu b ja das klappt.

SO einen Teil des Problem habe ich gelöst.

Ich hatte die Keplerbahn innerhalb von julianisch angesiedelt. Deshalb hat es nicht geklappt.

Nun habe ich julianisch und Keplerbahn beide im Package Astronomie nun mault der Compiler beim compilieren dieses Packages,

The public type KeplerBahn must be defined in its own file

Kann ich keine zwei public klassen in einem Package unterbringen?
 
Der Compiler mault, weil du 2 public Klassen in einer Datei unterbringst, oder die Datei nicht KeplerBahn.java heißt. 2 Public Klassen in einem Package geht immer, sofern sie in verschieden Datein liegen. Oder zum Beispiel auf diesem Wege:
http://www.roseindia.net/javatutorials/manypublicclassesinonefile.shtml
Allerdings glaube ich nicht, dass du das wirklich haben möchtest. Meine Empfehlung an dich wäre, dass du für die KeplerKlasse auch eine eigene Datei mit richtigem Namen erstellst und dich noch ein wenig mit den Java Grundlagen beschäftigst...

*grüssle*
 
Zuletzt bearbeitet:
Zurück