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

📄 rampentryeditdialog.java

📁 java 3d game jme 工程开发源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
 * Copyright (c) 2003-2009 jMonkeyEngine
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
 * met:
 *
 * * Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 *
 * * Redistributions in binary form must reproduce the above copyright
 *   notice, this list of conditions and the following disclaimer in the
 *   documentation and/or other materials provided with the distribution.
 *
 * * Neither the name of 'jMonkeyEngine' nor the names of its contributors 
 *   may be used to endorse or promote products derived from this software 
 *   without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

package com.jmex.editors.swing.particles;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JColorChooser;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
import javax.swing.border.TitledBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

import com.jme.renderer.ColorRGBA;
import com.jmex.editors.swing.widget.ValuePanel;
import com.jmex.editors.swing.widget.ValueSpinner;
import com.jmex.effects.particles.RampEntry;

public class RampEntryEditDialog extends JDialog {

    private static final long serialVersionUID = 1L;

    private JColorChooser colorChooser = new JColorChooser();
    private JDialog colorChooserDialog = new JDialog((JFrame)null, "Choose a color:");
    private ValueSpinner alphaSpinner = new ValueSpinner(0, 255, 1);
    private JLabel colorHex = new JLabel();
    private JPanel sColorPanel = new JPanel();

    public RampEntryEditDialog(final RampEntry entry) {
        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        
        setLayout(new GridBagLayout());
        
        if (entry.getOffset() != -1) {
            final ValuePanel offsetPanel = new ValuePanel("Offset: ", "%", 1, 100, 1);
            offsetPanel.setValue((int)(entry.getOffset()*100));
            offsetPanel.addChangeListener(new ChangeListener() {
                public void stateChanged(ChangeEvent e) {
                    entry.setOffset(offsetPanel.getIntValue()/100f);
                }
            });
    
            JPanel off = new JPanel(new GridBagLayout());
            off.setBorder(createTitledBorder("OFFSET"));
            off.add(offsetPanel, new GridBagConstraints(0, 0, 1, 1, 1.0,
                    0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
                    new Insets(0, 0, 0, 0), 0, 0));
            add(off, new GridBagConstraints(1, 0, 1, 1, 1.0, 0.0,
                    GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
                    new Insets(10, 5, 5, 5), 0, 0));
        }
        
        final ValuePanel sizePanel = new ValuePanel("Size: ", "", 0f, Float.MAX_VALUE, 1f);
        sizePanel.setValue(0f);
        sizePanel.addChangeListener(new ChangeListener() {
            public void stateChanged(ChangeEvent e) {
                entry.setSize(sizePanel.getFloatValue());
            }
        });

        if (entry.getOffset() != -1) {
            final JCheckBox sizeCheck = new JCheckBox("");
            sizeCheck.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    sizePanel.setEnabled(sizeCheck.isSelected());
                    entry.setSize(sizeCheck.isSelected() ? sizePanel.getFloatValue() : RampEntry.DEFAULT_SIZE);
                }
            });
            if (entry.hasSizeSet()) {
                sizeCheck.setSelected(true);
            } else {
                sizeCheck.doClick();
                sizeCheck.doClick();
            }
            add(sizeCheck, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0,
                    GridBagConstraints.NORTHEAST, GridBagConstraints.NONE,
                    new Insets(10, 5, 5, 5), 0, 0));
        }
        if (entry.hasSizeSet()) {
            sizePanel.setValue(entry.getSize());
        }

        
        JPanel size = new JPanel(new GridBagLayout());
        size.setBorder(createTitledBorder("PARTICLE SIZE"));
        size.add(sizePanel, new GridBagConstraints(0, 0, 1, 1, 1.0,
                0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
                new Insets(0, 0, 0, 0), 0, 0));
        add(size, new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0,
                GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
                new Insets(10, 5, 5, 5), 0, 0));
        
        
        final ValuePanel spinPanel = new ValuePanel("Spin: ", "", -Float.MAX_VALUE, Float.MAX_VALUE, 0.01f);
        spinPanel.setValue(0f);
        spinPanel.addChangeListener(new ChangeListener() {
            public void stateChanged(ChangeEvent e) {
                entry.setSpin(spinPanel.getFloatValue());
            }
        });


        if (entry.getOffset() != -1) {
            final JCheckBox spinCheck = new JCheckBox("");
            spinCheck.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    spinPanel.setEnabled(spinCheck.isSelected());
                    entry.setSpin(spinCheck.isSelected() ? spinPanel.getFloatValue() : RampEntry.DEFAULT_SPIN);
                }
            });
            if (entry.hasSpinSet()) {
                spinCheck.setSelected(true);
            } else {
                spinCheck.doClick();
                spinCheck.doClick();
            }
            add(spinCheck, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0,
                    GridBagConstraints.NORTHEAST, GridBagConstraints.NONE,
                    new Insets(10, 5, 5, 5), 0, 0));
        }
        if (entry.hasSpinSet()) {
            spinPanel.setValue(entry.getSpin());
        }
        
        JPanel spin = new JPanel(new GridBagLayout());
        spin.setBorder(createTitledBorder("PARTICLE SPIN"));
        spin.add(spinPanel, new GridBagConstraints(0, 0, 1, 1, 1.0,
                0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
                new Insets(0, 0, 0, 0), 0, 0));
        add(spin, new GridBagConstraints(1, 2, 1, 1, 1.0, 0.0,
                GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
                new Insets(10, 5, 5, 5), 0, 0));
        
        final ValuePanel massPanel = new ValuePanel("Mass: ", "", -Float.MAX_VALUE, Float.MAX_VALUE, 0.01f);
        massPanel.setValue(0f);
        massPanel.addChangeListener(new ChangeListener() {
            public void stateChanged(ChangeEvent e) {
                entry.setMass(massPanel.getFloatValue());
            }
        });

        if (entry.getOffset() != -1) {
            final JCheckBox massCheck = new JCheckBox("");
            massCheck.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    massPanel.setEnabled(massCheck.isSelected());
                    entry.setMass(massCheck.isSelected() ? massPanel.getFloatValue() : RampEntry.DEFAULT_MASS);
                }
            });
            if (entry.hasMassSet()) {
                massCheck.setSelected(true);

⌨️ 快捷键说明

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