tilebmpPanel.add(tileSpacing, c); c.gridwidth = 1;
tilebmpPanel.add(tileSpacing, c); c.gridx = 0; c.gridy = 4; c.gridwidth = 2; tilebmpPanel.add(tileColorPanel, c); c.gridx = 1; c.gridwidth = 1;
    private void init() {        // Create the primitives        nameLabel = new JLabel("Tileset name: ");        tileWidthLabel = new JLabel("Tile width: ");        tileHeightLabel = new JLabel("Tile height: ");        spacingLabel = new JLabel("Tile spacing: ");        tilebmpFileLabel = new JLabel("Tile image: ");        tilesetName = new JTextField("Untitled");        tileWidth = new JTextField("" + map.getTileWidth(), 3);        tileHeight = new JTextField("" + map.getTileHeight(), 3);        tileSpacing = new IntegerSpinner(0, 0);        tilebmpFile = new JTextField(10);        tilebmpFile.setEnabled(false);        tileWidthLabel.setEnabled(false);        tileHeightLabel.setEnabled(false);        tileWidth.setEnabled(false);        tileHeight.setEnabled(false);        tilebmpCheck = new JCheckBox("Reference tileset image", false);        tilebmpCheck.addChangeListener(this);        tileAutoCheck = new JCheckBox("Automatically create tiles from images",                false);        tileAutoCheck.setEnabled(false);        okButton = new JButton("OK");        cancelButton = new JButton("Cancel");        browseButton = new JButton("Browse...");        okButton.addActionListener(this);        cancelButton.addActionListener(this);        browseButton.addActionListener(this);        // Combine browse button and tile bitmap path text field        JPanel tilebmpPathPanel = new JPanel(new GridBagLayout());        GridBagConstraints c = new GridBagConstraints();        c.gridx = 0; c.gridy = 0; c.weightx = 1;        c.fill = GridBagConstraints.HORIZONTAL;        tilebmpPathPanel.add(tilebmpFile, c);        c.gridx = 1; c.weightx = 0;        c.fill = GridBagConstraints.NONE;        c.insets = new Insets(0, 5, 0, 0);        tilebmpPathPanel.add(browseButton, c);        // Create the tile bitmap import setting panel        JPanel tilebmpPanel = new VerticalStaticJPanel();        tilebmpPanel.setLayout(new GridBagLayout());        tilebmpPanel.setBorder(BorderFactory.createCompoundBorder(                    BorderFactory.createTitledBorder("From tileset image"),                    BorderFactory.createEmptyBorder(0, 5, 5, 5)));        c.gridx = 0; c.gridy = 0; c.weightx = 0;        c.insets = new Insets(5, 0, 0, 0);        c.anchor = GridBagConstraints.EAST;        c.fill = GridBagConstraints.HORIZONTAL;        c.gridwidth = 2;        tilebmpPanel.add(tilebmpCheck, c);        c.gridy = 1;        tilebmpPanel.add(tileAutoCheck, c);        c.gridy = 2; c.gridwidth = 1;        c.fill = GridBagConstraints.NONE;        tilebmpPanel.add(tilebmpFileLabel, c);        c.gridy = 3;        tilebmpPanel.add(spacingLabel, c);        c.gridx = 1; c.gridy = 2; c.weightx = 1;        c.fill = GridBagConstraints.HORIZONTAL;        tilebmpPanel.add(tilebmpPathPanel, c);        c.gridy = 3;        tilebmpPanel.add(tileSpacing, c);        c.gridwidth = 1;        // OK and Cancel buttons        JPanel buttons = new VerticalStaticJPanel();        buttons.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0));        buttons.setLayout(new BoxLayout(buttons, BoxLayout.X_AXIS));        buttons.add(Box.createGlue());        buttons.add(okButton);        buttons.add(Box.createRigidArea(new Dimension(5, 0)));        buttons.add(cancelButton);        // Top part of form        JPanel miscPropPanel = new VerticalStaticJPanel();        miscPropPanel.setLayout(new GridBagLayout());        miscPropPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 5, 0));        c.gridx = 0; c.gridy = 0; c.weightx = 0;        c.fill = GridBagConstraints.NONE;        c.insets = new Insets(5, 0, 0, 0);        miscPropPanel.add(nameLabel, c);        c.gridy = 1;        miscPropPanel.add(tileWidthLabel, c);        c.gridy = 2;        miscPropPanel.add(tileHeightLabel, c);        c.fill = GridBagConstraints.HORIZONTAL;        c.gridx = 1; c.gridy = 0; c.weightx = 1;        miscPropPanel.add(tilesetName, c);        c.gridy = 1;        miscPropPanel.add(tileWidth, c);        c.gridy = 2;        miscPropPanel.add(tileHeight, c);        // Main panel        JPanel mainPanel = new JPanel();        mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.PAGE_AXIS));        mainPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));        mainPanel.add(miscPropPanel);        mainPanel.add(tilebmpPanel);        mainPanel.add(Box.createRigidArea(new Dimension(0, 5)));        mainPanel.add(Box.createGlue());        mainPanel.add(buttons);        getContentPane().add(mainPanel);        getRootPane().setDefaultButton(okButton);        setUseTileBitmap(tilebmpCheck.isSelected());    }