Hi,
eclipse treibt mich grade in den Wahnsinn, ein GUI Projekt bestehend aus 4 java Datein sollte mein Einstieg in die Welt der packages werden...
Also mit eclipse ein Projekt angelegt, file -> new -> package diese packete angelegt: buecherei.command, buecherei.gui, buecherei.event, buecherei.main
Die entsprecheden Code Datein in die packages verschoben, die package anweisung am anfang der datei hinzugefügt und im Hauptprogramm import buecherei.*; eingesetzt.
Das Ganze sieht dann so aus:
Das Kompilieren von Listing2805 endet mit diesem Fehler:
Exception in thread "main" java.lang.NoClassDefFoundError: Listing2805
Was möchte mir java damit sagen?
Interessant sind zwar nur die Köpfe der jeweiligen Daten, habe aber trotzdem den Code der vollständigkeit hinzugefügt. Der Code läuft ohne die package Geschichte.
eclipse treibt mich grade in den Wahnsinn, ein GUI Projekt bestehend aus 4 java Datein sollte mein Einstieg in die Welt der packages werden...
Also mit eclipse ein Projekt angelegt, file -> new -> package diese packete angelegt: buecherei.command, buecherei.gui, buecherei.event, buecherei.main
Die entsprecheden Code Datein in die packages verschoben, die package anweisung am anfang der datei hinzugefügt und im Hauptprogramm import buecherei.*; eingesetzt.
Das Ganze sieht dann so aus:
Code:
// in package buecherei.main
package buecherei.main;
import java.awt.*;
import java.awt.event.*;
import buecherei.*;
public class Listing2805
{
public static void main(String[] args)
{
MainFrameCommand cmd = new MainFrameCommand();
MainFrameGUI gui = new MainFrameGUI(cmd);
}
}
//in package buecherei.command
package buecherei.command;
import java.awt.*;
import java.awt.event.*;
//class MainFrameCommand implements KeyListener
class MainFrameCommand extends KeyAdapter
{
public void keyPressed(KeyEvent event)
{
Frame source = (Frame)event.getSource();
if (event.getKeyCode() == KeyEvent.VK_ESCAPE)
{
source.setVisible(false);
source.dispose();
System.exit(0);
}
}
}
//in package buecherei.gui
package buecherei.gui;
import java.awt.*;
import java.awt.event.*;
class MainFrameGUI extends Frame
{
//public MainFrameGUI(KeyListener cmd)
public MainFrameGUI(KeyAdapter cmd)
{
super("Nachrichtentransfer");
//Instanz der Klasse WindowClosingAdapter erzeugen um den X Button zu belegen
addWindowListener(new WindowClosingAdapter(true));
//setBackground(Color.lightGray);
setSize(300,200);
setLocation(200,100);
setVisible(true);
addKeyListener(cmd);
}
public void paint(Graphics g)
{
g.setFont(new Font("Serif",Font.PLAIN,18));
g.drawString("Zum Beenden bitte ESC drücken...",10,50);
}
}
// in package buecherei.event
package buecherei.event;
import java.awt.*;
import java.awt.event.*;
public class WindowClosingAdapter
extends WindowAdapter
{
private boolean exitSystem;
/**
* Erzeugt einen WindowClosingAdapter zum Schliessen
* des Fensters. Ist exitSystem true, wird das komplette
* Programm beendet.
*/
public WindowClosingAdapter(boolean exitSystem)
{
this.exitSystem = exitSystem;
}
/**
* Erzeugt einen WindowClosingAdapter zum Schliessen
* des Fensters. Das Programm wird nicht beendet.
*/
public WindowClosingAdapter()
{
this(false);
}
public void windowClosing(WindowEvent event)
{
event.getWindow().setVisible(false);
event.getWindow().dispose();
if (exitSystem) {
System.exit(0);
}
}
}
Das Kompilieren von Listing2805 endet mit diesem Fehler:
Exception in thread "main" java.lang.NoClassDefFoundError: Listing2805
Was möchte mir java damit sagen?
Interessant sind zwar nur die Köpfe der jeweiligen Daten, habe aber trotzdem den Code der vollständigkeit hinzugefügt. Der Code läuft ohne die package Geschichte.