# Bibliotecas JAR

## Uso de bibliotecas JAR

O Logisim tem dois tipos de componentes de circuito: os que são concebidos dentro Logisim como combinações de outros; e os primitivos, que são escritos em Java. Os circuitos do Logisim são mais fáceis de projetar, mas eles não podem oferecer suporte mais sofisticado à interação com o usuário, e são relativamente ineficientes.

O Logisim contém uma coleção bastante completa de bibliotecas predefinidas de componentes em Java, mas poderá também acomodar bibliotecas adicionais escritas por você ou por outros. Uma vez em posse do código de uma biblioteca, você poderá importá-lo em seu projeto ao clicar em Projeto no painel de explorador (linha superior) e escolher carregar a biblioteca (Load Library > JAR Library)... Então, o Logisim pedirá para você selecionar o arquivo JAR. (Em algumas circunstâncias, você poderá ter que digitar o nome da classe inicial, quando solicitado, isso deverá ser previsto pelo desenvolvedor da biblioteca. No entanto, um desenvolvedor normalmente deverá configurar a biblioteca JAR para evitar isso (ao incluir no manifesto do arquivo JAR um atributo Library-Class especificando o principal nome da classe).)

## Criar bibliotecas JAR

O restante desta seção será dedicado a uma série de exemplos bem comentados que ilustram como desenvolver bibliotecas do Logisim. Você só deverá tentar fazer isso, se for um programador Java experiente. Além desses exemplos, você irá encontrar documentação bastante escassa.

Você poderá baixar um arquivo JAR que lhe permitirá importar esses exemplos do website do Logisim na seção Links. Esse arquivo JAR também conterá o código-fonte desses exemplos.

Incrementador em código de Gray

  Ilustra os elementos essenciais de qualquer tipo de componente por meio de um exemplo simples de um componente que tem uma entrada multibit e calcula o valor do próximo código de Gray que o segue.

Biblioteca de classes

  Ilustra como definir uma biblioteca. Este é o ponto de entrada para qualquer arquivo JAR - a classe cujo nome o usuário fornecerá quando for carregar a biblioteca JAR.

<a
href="simpctr.html"> Contador simples em código Gray

  Ilustra como fazer um componente que tem estado interno; em particular, um contador de 8 bits que itera em código de Gray.

Contador em código de Gray

  Demonstra um componente completo, bem mais sofisticado, com o qual o usuário poderá interagir. Ele implementa um contador em código de Gray, onde o número de bits guardado é customizável, e onde o usuário poderá editar o valor corrente, ao clicar nele com a ferramenta Testar e digitar um novo valor.

  <a
href="guide.html"> Orientações
  Informações gerais para as bibliotecas com desenvolvimento por terceiros.

## License

The code in this example JAR library is released under the MIT license, a more permissive license than the GPL, under which the rest of Logisim is released.

Copyright (c) 2009, Carl Burch.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Próximo: Incrementador em código de Gray.