# JAR-Bibliotheken

## Verwendung von JAR-Bibliotheken

Logisim kennt zwei Arten von Bauelementen: solche, die in Logisim als Kombination anderer Bauelemente konstruiert wurden, und die in Java programmierten Grundbauelemente. Schaltungen in Logisim sind einfacher zu entwerfen, aber diese unterstützen keine anspruchsvollen Interaktionen mit dem Anwender. Außerdem sind sie als Bauelement verhältnismäßig ineffizient.

Logisim enthält eine ziemlich umfangreiche Bibliothek von eingebauten Java-Bauelementen, es lassen sich aber auch Bibliotheken laden, die von Ihnen selbst oder anderen erstellt worden sind. Wenn Sie eine Bibliothek heruntergeladen haben, können Sie diese in Ihr aktuelles Projekt importieren, indem Sie im Übersichtsfenster Ihr Projekt anklicken (die oberste Zeile) und dort den Punkt "Bibliothek laden &gt; JAR-Bibliothek" auswählen. Diesen Punkt erreichen Sie auch über "Projekt &gt; Bibliothek laden" aus dem Hauptmenü. Dann wird Logisim Sie auffordern, die entsprechende JAR-Datei auszuwählen. (In einigen Fällen werden Sie aufgefordert, den Namen der Startklasse in der Bibliothek anzugeben. Diese Angabe sollten Sie vom Programmierer bekommen haben. Meistens aber wird der Entwickler die JAR-Bibliothek bereits so konfiguriert haben, daß dies nicht nötig ist (indem eine manifest-Datei im JAR-Archiv angelegt wurde, dessenLibrary-Class-Attribut den Namen der Hauptklasse angibt).)

## Erstellen von JAR-Bibliotheken

Der Rest dieses Abschnitts widmet sich einer Serie gut dokumentierter Beispiele, die aufzeigen, wie Sie eigene Logisim-Bibliotheken entwickeln können. Um erfolgreich eigene Bibliotheken zu entwickeln, sollten Sie sich in der Java-Programmierung auskennen. Die Dokumentation, die über diese Beispiele hinausgeht ist etwas dürftig.

Ein JAR-Archiv mit den folgenden Beispielen können Sie von der Homepage von Logisim herunterladen, Sie finden die Datei im Abschnitt "Links". Diese JAR-Datei enthält auch den Quellkode zu den folgenden Beispielen.

Gray-Kode-Inkrementierer

  Zeigt die wesentlichen Teile eines Bauelements an einem einfachen Beispiel. Dieses Bauelement nimmt einen Mehrbit-Wert an einem Eingang entgegen und berechnet den darauf folgenden Gray-Kode.

Bibliotheksklasse

  Zeigt, wie eine Bibliothek definiert wird. Dieses ist der Einstiegspunkt für jede JAR-Datei - die Klasse, deren Name der Anwender angibt, wenn er die JAR-Datei lädt.

Einfacher Gray-Kode-Zähler

  Zeigt, wie ein Bauelement mit einem internen Zustand aufgebaut ist, am Beispiel eines 8-Bit-Zählers mit Gray-Kode-Ausgabe.

Gray-Kode-Zähler

  Veranschaulicht ein komplettes und ziemlich anspruchsvolles Bauelement mit Interaktion mit dem Benutzer. Es wird ein Gray-Kode-Zähler mit variabler Bitbreite implementiert, dessen Bitbreite konfiguriert werden kann. Außerdem kann der Benutzer den aktuellen Wert mit dem Schaltwerkzeug und durch Eingabe eines Wertes verändern.

Richtlinien
  Allgemeine Informationen für die Entwicklung externer Bibliotheken

## Lizenz

Der Kode in diesem Beispiel einer JAR-Bibliothek ist unter der MIT-Lizenz veröffentlicht, einer großzügigeren Lizenz als die GPL, welche für den Rest von Logisim gilt.

Copyright (c) 2009, Carl Burch.

Hiermit wird die Erlaubnis erteilt, kostenlos, für jede Person, eine Kopie dieser Software und der zugehörigen Dokumentationen (die "Software") zu erhalten, die Software uneingeschränkt zu benutzen, einschließlich und ohne Einschränkung der Rechte zur Verwendung, dem Kopieren, Ändern, Zusammenführen, Veröffentlichen, Verbreiten, Lizenzieren und / oder Verkaufen von Kopien der Software, sowie Personen, denen die Software geliefert wird, dies unter den folgenden Bedingungen zu gestatten:

Der obige Urheberrechtsvermerk und diese Genehmigung soll in alle Kopien oder Teile der Software aufgenommen werden.

DIE SOFTWARE WIRD WIE BESEHEN AUSGELIEFERT, OHNE GARANTIE JEGLICHER ART, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GARANTIE DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NICHTVERLETZUNG DER RECHTE DRITTER. IN KEINEM FALL SIND DIE AUTOREN ODER URHEBERRECHTSINHABER VERANTWORTLICH FÜR ANSPRÜCHE, SCHÄDEN ODER ANDERE HAFTUNGEN, ALS FOLGE VON ODER IM ZUSAMMENHANG MIT DER SOFTWARE, DEREN BENUTZUNG ODER IN ANDEREM BEZUG ZUR SOFTWARE.

Weiter: Gray-Kode-Inkrementierer.