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

📄 svgpropertiessliderwidget.java

📁 完全基于java开发的svg矢量绘图工具
💻 JAVA
字号:
/* * Created on 19 janv. 2005 *  =============================================                   GNU LESSER GENERAL PUBLIC LICENSE Version 2.1 =============================================GLIPS Graffiti Editor, a SVG EditorCopyright (C) 2004 Jordi SUC, Philippe Gil, SARL ITRISThis library is free software; you can redistribute it and/ormodify it under the terms of the GNU Lesser General PublicLicense as published by the Free Software Foundation; eitherversion 2.1 of the License, or (at your option) any later version.This library is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNULesser General Public License for more details.You should have received a copy of the GNU Lesser General PublicLicense along with this library; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USAContact : jordi.suc@itris.fr; philippe.gil@itris.fr ============================================= */package fr.itris.glips.svgeditor.properties;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;/** * @author Jordi SUC */public class SVGPropertiesSliderWidget extends SVGPropertiesWidget{    /**     * the constructor of the class     * @param propertyItem a property item     */	public SVGPropertiesSliderWidget(SVGPropertyItem propertyItem) {		super(propertyItem);				buildComponent();	}		/**	 * builds the component that will be displayed	 */	protected void buildComponent(){		//the panel that will contain the widgets		final JPanel displayAndSlider=new JPanel();					//the initial value		String value=propertyItem.getGeneralPropertyValue();		int val=100;					try{val=(int)(Double.parseDouble(value)*100);}catch (Exception ex){val=100;}					final JSlider slider=new JSlider(0, 100, val);		slider.setPreferredSize(new Dimension(100, 19));		final JTextField textField=new JTextField(val+"", 5);		textField.setHorizontalAlignment(SwingConstants.RIGHT);		textField.setFont(theFont);		final JLabel displayedValue=new JLabel("%");		displayedValue.setFont(theFont);				JPanel textAndLabel=new JPanel();		textAndLabel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 0));		textAndLabel.add(textField);		textAndLabel.add(displayedValue);				//adds a listener to the slider		final MouseAdapter sliderListener=new MouseAdapter(){		    			public void mouseReleased(MouseEvent evt) {			    				//modifies the value of the property item				String newValue=format.format(((double)slider.getValue())/100);				propertyItem.changePropertyValue(newValue);				textField.setText(slider.getValue()+"");			}		};		slider.addMouseListener(sliderListener);				//adding the listener to the textfield		final CaretListener textFieldListener=new CaretListener(){						public void caretUpdate(CaretEvent evt) {				double newVal=Double.NaN;								try{					newVal=Double.parseDouble(textField.getText());				}catch (Exception ex){newVal=Double.NaN;}								if(! Double.isNaN(newVal)){										if(newVal>100){												newVal=100;						final int fnewVal=(int)newVal;						final CaretListener thisListener=this;												SwingUtilities.invokeLater(new Runnable(){														public void run() {								textField.removeCaretListener(thisListener);								textField.setText(fnewVal+"");								textField.addCaretListener(thisListener);							}						});					}										if(newVal<0){												newVal=0;												final int fnewVal=(int)newVal;						final CaretListener thisListener=this;												SwingUtilities.invokeLater(new Runnable(){														public void run() {								textField.removeCaretListener(thisListener);								textField.setText(fnewVal+"");								textField.addCaretListener(thisListener);							}						});					}					String newValue=format.format(newVal/100);					propertyItem.changePropertyValue(newValue);					slider.setValue((int)newVal);				}			}		};				textField.addCaretListener(textFieldListener);				//adds a listener to the slider		final ChangeListener sliderChangeListener=new ChangeListener(){		    			public void stateChanged(ChangeEvent evt) {			    				textField.removeCaretListener(textFieldListener);				textField.setText(slider.getValue()+"");				textField.addCaretListener(textFieldListener);			}		};				slider.addChangeListener(sliderChangeListener);		displayAndSlider.setLayout(new BorderLayout(0, 0));		displayAndSlider.add(slider, BorderLayout.CENTER);		displayAndSlider.add(textAndLabel, BorderLayout.NORTH);				component=displayAndSlider;		//creates the disposer		disposer=new Runnable(){            public void run() {				slider.removeMouseListener(sliderListener);				slider.removeChangeListener(sliderChangeListener);				textField.removeCaretListener(textFieldListener);            }		};	}}

⌨️ 快捷键说明

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