unknown[i] = createSizedJTextField(2)));
unknown[i] = createSizedJTextField(2, true, true)));
    protected void init()    {        SpriteEditor.initSptNames(rom.getPath());        mainWindow = createBaseWindow(this);        mainWindow.setTitle(this.getDescription());        mainWindow.setSize(560, 520);        JPanel display = new JPanel(new GridLayout(4, 4));        for (int i = 0; i < pics.length; i++)        {            display.add(pics[i] = new JButton(Integer.toString(i)));            pics[i].setBorder(null);            pics[i].setActionCommand("pics" + Integer.toHexString(i));            pics[i].addActionListener(this);        }        mainWindow.getContentPane().add(display, BorderLayout.CENTER);        JPanel entry = new JPanel();        entry.setLayout(new BoxLayout(entry, BoxLayout.Y_AXIS));        entry.add(getLabeledComponent("Name: ", name = new JTextField(20)));        entry.add(getLabeledComponent("Width: ",            width = createSizedJTextField(3, true)));        entry.add(getLabeledComponent("Height: ",            height = createSizedJTextField(3, true)));        entry.add(getLabeledComponent("Palette: ",            palette = createJComboBoxFromArray(new Object[8])));        entry            .add(getLabeledComponent("Bank: ", bank = createSizedJTextField(2)));        // bank and addresses shown in hex        for (int i = 0; i < address.length; i++)        {            entry.add(getLabeledComponent("Address #" + i + ": ",                address[i] = createSizedJTextField(4)));        }        JPanel buttons = new JPanel(new FlowLayout());        JButton testb = new JButton("Test Entry");        testb.addActionListener(this);        buttons.add(testb);        JButton saveb = new JButton("Save Entry");        saveb.addActionListener(this);        buttons.add(saveb);        JButton copyb = new JButton("Copy");        copyb.addActionListener(this);        buttons.add(copyb);        JButton pasteb = new JButton("Paste");        pasteb.addActionListener(this);        buttons.add(pasteb);        JButton closeb = new JButton("Close");        closeb.setActionCommand("close");        closeb.addActionListener(this);        buttons.add(closeb);        mainWindow.getContentPane().add(buttons, BorderLayout.SOUTH);        mainWindow.getContentPane().add(            pairComponents(entry, new JLabel(), false), BorderLayout.EAST);        mainWindow.getContentPane().add(            new JSearchableComboBox(selector = createComboBox(sptNames, true,                this), "Entry #:"), BorderLayout.NORTH);        //selector.addActionListener(this);        Box unknowns = new Box(BoxLayout.Y_AXIS);        unknowns.add(getLabeledComponent("Pointer: ", pointer = new JLabel()));        unknowns.add(getLabeledComponent("Difference: ", diff = new JLabel(),            "Difference between the nex pointer and this one"));        for (int i = 0; i < unknown.length; i++)        {            unknowns.add(getLabeledComponent("Unknown #" + i + ": ",                unknown[i] = createSizedJTextField(2)));            if (i == 0)                unknowns.add(Box.createVerticalStrut(5));        }        mainWindow.getContentPane().add(            pairComponents(unknowns, new JLabel(), false), BorderLayout.WEST);    }