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

📄 tileimagedialog.java

📁 tiled地图编辑器是2d的,很不错的国外软件,使用起来很方便的
💻 JAVA
字号:
/* *  Tiled Map Editor, (c) 2004-2006 * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  (at your option) any later version. * *  Adam Turk <aturk@biggeruniverse.com> *  Bjorn Lindeijer <b.lindeijer@xs4all.nl> *  Rainer Deyke <rainerd@eldwood.com> */package tiled.mapeditor.dialogs;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Enumeration;import java.util.Vector;import java.util.Arrays;import javax.swing.*;import javax.swing.event.ListSelectionEvent;import javax.swing.event.ListSelectionListener;import tiled.core.TileSet;import tiled.mapeditor.Resources;import tiled.mapeditor.util.ImageCellRenderer;import tiled.mapeditor.widget.VerticalStaticJPanel;/** * Dialog for picking a tile image. Used by the edit tileset dialog for * changing the image of a tile. * * @version $Id: TileImageDialog.java 683 2006-06-25 14:17:37Z bjorn $ */public class TileImageDialog extends JDialog implements ListSelectionListener{    private JList imageList;    private JButton okButton, cancelButton;    private int imageId;    private final TileSet tileset;    private JLabel imageLabel;    private int[] imageIds;    private static final String DIALOG_TITLE = Resources.getString("dialog.tileimage.title");    private static final String OK_BUTTON = Resources.getString("general.button.ok");    private static final String CANCEL_BUTTON = Resources.getString("general.button.cancel");    public TileImageDialog(Dialog parent, TileSet set) {        this(parent, set, 0);    }    public TileImageDialog(Dialog parent, TileSet set, int id) {        super(parent, DIALOG_TITLE, true);        tileset = set;        imageId = id;        init();        queryImages();        updateImageLabel();        pack();        setLocationRelativeTo(getOwner());    }    private void init() {        // image list        imageList = new JList();        imageList.setCellRenderer(new ImageCellRenderer());        imageList.setLayoutOrientation(JList.HORIZONTAL_WRAP);        imageList.addListSelectionListener(this);        JScrollPane sp = new JScrollPane();        sp.getViewport().setView(imageList);        sp.setPreferredSize(new Dimension(150, 150));        // image panel        JPanel image_panel = new JPanel();        image_panel.setLayout(new BoxLayout(image_panel, BoxLayout.Y_AXIS));        imageLabel = new JLabel(new ImageIcon());        image_panel.add(imageLabel);        // buttons        okButton = new JButton(OK_BUTTON);        cancelButton = new JButton(CANCEL_BUTTON);        JPanel buttons = new VerticalStaticJPanel();        buttons.setBorder(BorderFactory.createEmptyBorder(5, 0, 0, 0));        buttons.setLayout(new BoxLayout(buttons, BoxLayout.X_AXIS));        buttons.add(cancelButton);        buttons.add(okButton);        // main panel        JPanel mainPanel = new JPanel();        mainPanel.setLayout(new GridBagLayout());        GridBagConstraints c = new GridBagConstraints();        c.fill = GridBagConstraints.BOTH;        c.weightx = 1; c.weighty = 1;        mainPanel.add(sp, c);        c.weightx = 0; c.gridx = 1;        mainPanel.add(image_panel, c);        c.gridx = 0; c.weighty = 0; c.gridy = 1; c.gridwidth = 2;        mainPanel.add(buttons, c);        getContentPane().add(mainPanel);        getRootPane().setDefaultButton(okButton);        //create action listeners        okButton.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent actionEvent) {            	dispose();            }        });        cancelButton.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent actionEvent) {            	imageId = -1;            	dispose();            }        });    }    public void queryImages() {        Vector listData = new Vector();        int initialIndex = 0;        Enumeration ids = tileset.getImageIds();        imageIds = new int[tileset.getTotalImages()];        for (int i = 0; i < imageIds.length; ++i) {            imageIds[i] = Integer.parseInt((String)ids.nextElement());        }        Arrays.sort(imageIds);        for (int i = 0; i < imageIds.length; ++i) {            if (imageIds[i] == imageId) initialIndex = i;            Image img = tileset.getImageById(imageIds[i]);            // assert img != null;            listData.add(img);        }        imageList.setListData(listData);        imageList.setSelectedIndex(initialIndex);        imageList.ensureIndexIsVisible(initialIndex);    }    private void updateEnabledState() {        okButton.setEnabled(imageId >= 0);    }    private void updateImageLabel() {        if (imageId >= 0) {            Image img = tileset.getImageById(imageId);            imageLabel.setIcon(new ImageIcon(img));        }    }    public void valueChanged(ListSelectionEvent e) {        imageId = imageIds[imageList.getSelectedIndex()];        updateImageLabel();        updateEnabledState();    }    public int getImageId() {        return imageId;    }}

⌨️ 快捷键说明

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