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

📄 rubbersheetimage.java

📁 world wind java sdk 源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*Copyright (C) 2001, 2009 United States Governmentas represented by the Administrator of theNational Aeronautics and Space Administration.All Rights Reserved.*/package gov.nasa.worldwind.examples;import gov.nasa.worldwind.*;import gov.nasa.worldwind.avlist.*;import gov.nasa.worldwind.data.*;import gov.nasa.worldwind.event.*;import gov.nasa.worldwind.examples.util.*;import gov.nasa.worldwind.formats.gcps.GCPSReader;import gov.nasa.worldwind.formats.tab.TABRasterReader;import gov.nasa.worldwind.formats.worldfile.WorldFile;import gov.nasa.worldwind.geom.*;import gov.nasa.worldwind.layers.*;import gov.nasa.worldwind.pick.PickedObject;import gov.nasa.worldwind.render.*;import gov.nasa.worldwind.util.*;import javax.swing.*;import javax.swing.event.*;import java.awt.*;import java.awt.event.*;import java.awt.geom.*;import java.awt.image.*;import java.io.File;import java.util.ArrayList;/** * @author tag * @version $Id: RubberSheetImage.java 9579 2009-03-20 19:13:50Z dcollins $ */public class RubberSheetImage extends ApplicationTemplate{    public static final String OPEN_IMAGE_FILE = "OpenImageFile";    public static final String SET_IMAGE_OPACITY = "SetImageOpacity";    public static final String TOGGLE_EDITING = "ToggleEditing";    protected static final String ENABLE_EDITING = "Enable Editing";    protected static final String DISABLE_EDITING = "Disable Editing";    public static class AppFrame extends ApplicationTemplate.AppFrame implements ActionListener    {        private Controller controller;        private JButton toggleEditButton;        public AppFrame()        {            this.controller = new Controller(this);            this.controller.loadBackgroundData();            this.getWwd().addSelectListener(this.controller);                        this.initComponents();        }        public JButton getToggleEditButton()        {            return this.toggleEditButton;        }        private void initComponents()        {            JMenuBar menuBar = new JMenuBar();            {                JMenu menu = new JMenu("File");                JMenuItem item = new JMenuItem("Open...");                item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,                    Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));                item.setActionCommand(OPEN_IMAGE_FILE);                item.addActionListener(this);                menu.add(item);                menuBar.add(menu);            }            this.setJMenuBar(menuBar);            JPanel controlPanel = new JPanel(new BorderLayout(0, 0)); // hgap, vgap            {                controlPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 20, 0)); // top, left, bottom, right                Box vbox = Box.createVerticalBox();                JLabel label = new JLabel("Opacity");                final JSlider slider = new JSlider(0, 100, 100);                slider.addChangeListener(new ChangeListener()                {                    public void stateChanged(ChangeEvent changeEvent)                    {                        ActionEvent actionEvent = new ActionEvent(slider, 0, SET_IMAGE_OPACITY);                        actionPerformed(actionEvent);                    }                });                Box box = Box.createHorizontalBox();                box.setAlignmentX(JComponent.LEFT_ALIGNMENT);                box.add(label);                box.add(slider);                vbox.add(box);                this.toggleEditButton = new JButton(DISABLE_EDITING);                this.toggleEditButton.setAlignmentX(JComponent.LEFT_ALIGNMENT);                this.toggleEditButton.setActionCommand(TOGGLE_EDITING);                this.toggleEditButton.addActionListener(this);                vbox.add(this.toggleEditButton);                controlPanel.add(vbox, BorderLayout.NORTH);            }            this.getLayerPanel().add(controlPanel, BorderLayout.SOUTH);        }        public void actionPerformed(ActionEvent e)        {            if (e == null)                return;            if (this.controller == null)                return;            this.controller.actionPerformed(e);        }    }    public static class SurfaceImageEntry    {        private SurfaceImage surfaceImage;        private SurfaceImageEditor editor;        private RenderableLayer layer;        public SurfaceImageEntry(WorldWindow wwd, SurfaceImage surfaceImage, String name)        {            this.surfaceImage = surfaceImage;            this.editor = new SurfaceImageEditor(wwd, surfaceImage);            this.layer = new RenderableLayer();            this.layer.setName(name);            this.layer.setPickEnabled(true);            this.layer.addRenderable(surfaceImage);            insertBeforePlacenames(wwd, this.layer);        }        public SurfaceImage getSurfaceImage()        {            return this.surfaceImage;        }        public SurfaceImageEditor getEditor()        {            return this.editor;        }        public RenderableLayer getLayer()        {            return this.layer;        }    }    public static class Controller implements ActionListener, SelectListener    {        private AppFrame appFrame;        private JFileChooser openFileChooser;        private ImageIOReader imageReader;        private ArrayList<SurfaceImageEntry> entryList = new ArrayList<SurfaceImageEntry>();        public Controller(AppFrame appFrame)        {            this.appFrame = appFrame;            this.imageReader = new ImageIOReader();        }        public void actionPerformed(ActionEvent e)        {            String actionCommand = e.getActionCommand();            if (actionCommand == null)                return;            //noinspection StringEquality            if (actionCommand == OPEN_IMAGE_FILE)            {                this.doOpenImageFile();            }            else //noinspection StringEquality                if (actionCommand == SET_IMAGE_OPACITY)            {                JSlider slider = (JSlider) e.getSource();                this.doSetImageOpacity(slider.getValue() / 100.0);            }            else //noinspection StringEquality                if (actionCommand == TOGGLE_EDITING)            {                String text = this.appFrame.getToggleEditButton().getText();                boolean enabled = DISABLE_EDITING.equals(text);                this.appFrame.getToggleEditButton().setText(enabled ? ENABLE_EDITING : DISABLE_EDITING);                this.enableEditing(!enabled);            }        }        public void selected(SelectEvent e)        {            PickedObject topObject = e.getTopPickedObject();            if (e.getEventAction().equals(SelectEvent.LEFT_PRESS))            {                if (topObject != null && !topObject.isTerrain() && topObject.getObject() instanceof SurfaceImage)                {                    SurfaceImageEntry entry = this.getEntryFor((SurfaceImage) topObject.getObject());                    if (entry != null)                    {                        this.setSelectedEntry(entry);                    }                }            }        }        protected void enableEditing(boolean enable)        {            for (SurfaceImageEntry entry : this.entryList)            {                entry.getLayer().setPickEnabled(enable);                if (!enable)                {                    entry.getEditor().setArmed(false);                }            }        }        protected void addSurfaceImage(SurfaceImage surfaceImage, String name)        {            SurfaceImageEntry entry = new SurfaceImageEntry(this.appFrame.getWwd(), surfaceImage, name);            this.entryList.add(entry);            this.setSelectedEntry(entry);            this.appFrame.getLayerPanel().update(this.appFrame.getWwd());        }        protected SurfaceImageEntry getEntryFor(SurfaceImage surfaceImage)        {            for (SurfaceImageEntry entry : this.entryList)            {                if (entry.getSurfaceImage() == surfaceImage)                {                    return entry;                }            }            return null;        }        protected void setSelectedEntry(SurfaceImageEntry selected)        {            for (SurfaceImageEntry entry : this.entryList)

⌨️ 快捷键说明

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