<!-- Library Class --> 类库

# 类库

JAR 库的访问点是一个扩展 `Library` 类的类。 库的主要工作是列出通过库可用的工具； 大多数情况下，这些工具都是用于添加定义的各种组件的工具 - 即与不同组件工厂一起使用的 `AddTool` 类的实例。

## Components

    package com.cburch.gray;

    import java.util.Arrays;
    import java.util.List;

    import com.cburch.logisim.tools.AddTool;
    import com.cburch.logisim.tools.Library;

    /** The library of components that the user can access. */
    public class Components extends Library {
        /** The list of all tools contained in this library. Technically,
         * libraries contain tools, which is a slightly more general concept
         * than components; practically speaking, though, you'll most often want
         * to create AddTools for new components that can be added into the circuit.
         */
        private List<AddTool> tools;

        /** Constructs an instance of this library. This constructor is how
         * Logisim accesses first when it opens the JAR file: It looks for
         * a no-arguments constructor method of the user-designated class.
         */
        public Components() {
            tools = Arrays.asList(new AddTool[] {
                    new AddTool(new GrayIncrementer()),
                    new AddTool(new SimpleGrayCounter()),
                    new AddTool(new GrayCounter()),
            });
        }

        /** Returns the name of the library that the user will see. */
        public String getDisplayName() {
            return "Gray Tools";
        }

        /** Returns a list of all the tools available in this library. */
        public List<AddTool> getTools() {
            return tools;
        }
    }

Next: Simple Gray Code Counter .