⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tiledialog.java

📁 tiled地图编辑器是2d的,很不错的国外软件,使用起来很方便的
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            currentTile.setImage(d.getImageId());        }    }    private void newTile() {        File[] files;        JFileChooser ch = new JFileChooser(location);        ch.setMultiSelectionEnabled(true);        BufferedImage image = null;        int ret = ch.showOpenDialog(this);        if (ret == JFileChooser.APPROVE_OPTION) {            files = ch.getSelectedFiles();            for (int i = 0; i < files.length; i++) {                try {                    image = ImageIO.read(files[i]);                    // TODO: Support for a transparent color                } catch (IOException e) {                    JOptionPane.showMessageDialog(this, e.getLocalizedMessage(),                                                  "Error!", JOptionPane.ERROR_MESSAGE);                    return;                }                Tile newTile = new Tile(tileset);                newTile.setImage(tileset.addImage(image));                tileset.addNewTile(newTile);            }            if (files.length > 0) {                location = files[0].getAbsolutePath();            }        }        queryTiles();        queryImages();    }    public void setTileset(TileSet s) {        tileset = s;        if (tileset != null) {            // Find new tile images at the location of the tileset            if (tileset.getSource() != null) {                location = tileset.getSource();            } else if (map != null) {                location = map.getFilename();            }            tilesetNameEntry.setText(tileset.getName());        }        queryTiles();        queryImages();        updateEnabledState();    }    public void queryTiles() {        Vector listData;        if (tileset != null && tileset.size() > 0) {            listData = new Vector();            Iterator tileIterator = tileset.iterator();            while (tileIterator.hasNext()) {                Tile tile = (Tile)tileIterator.next();                listData.add(tile);            }            tileList.setListData(listData);        }        if (currentTile != null) {            tileList.setSelectedIndex(currentTile.getId() - 1);            tileList.ensureIndexIsVisible(currentTile.getId() - 1);        }    }    public void queryImages() {        Vector listData = new Vector();        Enumeration ids = tileset.getImageIds();        while(ids.hasMoreElements()) {            Image img = tileset.getImageById(Integer.parseInt((String) ids.nextElement()));            if (img != null)                listData.add(img);        }        imageList.setListData(listData);        if (currentImageIndex != -1) {            imageList.setSelectedIndex(currentImageIndex);            imageList.ensureIndexIsVisible(currentImageIndex);        }    }    private void setCurrentTile(Tile tile) {        // Update the old current tile's properties        // (happens automatically as properties are changed in place now)        /*        if (currentTile != null) {            PropertiesTableModel model =                (PropertiesTableModel)tileProperties.getModel();            currentTile.setProperties(model.getProperties());        }        */        currentTile = tile;        updateTileInfo();        updateEnabledState();    }    private void setImageIndex(int i) {        currentImageIndex = i;        updateEnabledState();    }    private void updateEnabledState() {        boolean tilebmp = tileset.getTilebmpFile() != null;        boolean tileSelected = currentTile != null;        boolean atLeastOneSharedImage = tileset.getTotalImages() >= 1;        newTileButton.setEnabled(!tilebmp);        deleteTileButton.setEnabled(!tilebmp && tileSelected);        changeImageButton.setEnabled(atLeastOneSharedImage && !tilebmp            && tileSelected);        duplicateTileButton.setEnabled(!tilebmp && tileSelected);        //animationButton.setEnabled(!tilebmp && tileSelected &&        //        currentTile instanceof AnimatedTile);        tileProperties.setEnabled(tileSelected);        createTileButton.setEnabled(!tilebmp);    }    /**     * Updates the properties table with the properties of the current tile.     */    private void updateTileInfo() {        if (currentTile == null) {            return;        }        Properties tileProps = currentTile.getProperties();        // (disabled making a copy, as properties are changed in place now)        /*        Properties editProps = new Properties();        for (Enumeration keys = tileProps.keys(); keys.hasMoreElements();) {            String key = (String)keys.nextElement();            editProps.put(key, tileProps.getProperty(key));        }        */        ((PropertiesTableModel)tileProperties.getModel()).update(tileProps);    }    public void actionPerformed(ActionEvent event) {        Object source = event.getSource();        if (source == okButton) {            tileset.setName(tilesetNameEntry.getText());            dispose();        } else if (source == deleteTileButton) {            int answer = JOptionPane.showConfirmDialog(                    this,                    Resources.getString("action.tile.delete.confirm.message"),                    Resources.getString("action.tile.delete.confirm.title"),                    JOptionPane.YES_NO_OPTION,                    JOptionPane.QUESTION_MESSAGE);            if (answer == JOptionPane.YES_OPTION) {                Tile tile = (Tile)tileList.getSelectedValue();                if (tile != null) {                    tileset.removeTile(tile.getId());                }                queryTiles();            }        } else if (source == changeImageButton) {            changeImage();        } else if (source == newTileButton) {            newTile();        } else if (source == duplicateTileButton) {            Tile n = new Tile(currentTile);            tileset.addNewTile(n);            queryTiles();            // Select the last (cloned) tile            tileList.setSelectedIndex(tileset.size() - 1);            tileList.ensureIndexIsVisible(tileset.size() - 1);        //} else if (source == animationButton) {        //    AnimationDialog ad = new AnimationDialog(this, ((AnimatedTile)currentTile).getSprite());        //    ad.setVisible(true);        }        /*        else if (source == setImagesCheck) {            if (setImagesCheck.isSelected()) {                tileset.enablesetImages();                updateEnabledState();            } else {                int answer = JOptionPane.YES_OPTION;                if (!tileset.safeToDisablesetImages()) {                    answer = JOptionPane.showConfirmDialog(                        this, "This tileset uses features that require the "                        + "use of shared images.  Disable the use of shared "                        + "images?",                        "Are you sure?",                        JOptionPane.YES_NO_OPTION,                        JOptionPane.QUESTION_MESSAGE);                }                if (answer == JOptionPane.YES_OPTION) {                    tileset.disablesetImages();                    updateEnabledState();                } else {                    setImagesCheck.setSelected(true);                }            }        }        */        else if (source == createTileButton) {            Image img = (Image)imageList.getSelectedValue();            Tile n = new Tile(tileset);            n.setImage(tileset.getIdByImage(img));            tileset.addNewTile(n);            queryTiles();            // Select the last (cloned) tile            tileList.setSelectedIndex(tileset.size() - 1);            tileList.ensureIndexIsVisible(tileset.size() - 1);            JOptionPane.showMessageDialog(                    this,                    MessageFormat.format(Resources.getString("action.tile.create.done.message"),                                         new Object[]{new Integer(n.getId())}),                    Resources.getString("action.tile.create.done.title"),                    JOptionPane.INFORMATION_MESSAGE);        }        repaint();    }    public void valueChanged(ListSelectionEvent e) {        if (e.getSource() == tileList) {            setCurrentTile((Tile)tileList.getSelectedValue());        } else if (e.getSource() == imageList) {            setImageIndex(imageList.getSelectedIndex());        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -