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

📄 svgpropertiesfontchooserwidget.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 java.util.*;import javax.swing.*;import fr.itris.glips.svgeditor.*;import fr.itris.glips.svgeditor.canvas.*;/** * @author Jordi SUC */public class SVGPropertiesFontChooserWidget extends SVGPropertiesWidget{    /**     * the constructor of the class     * @param propertyItem a property item     */	public SVGPropertiesFontChooserWidget(SVGPropertyItem propertyItem) {		super(propertyItem);				buildComponent();	}		/**	 * builds the component that will be displayed	 */	protected void buildComponent(){				//the value of the property		String propertyValue=propertyItem.getGeneralPropertyValue();					//builds the array of Integer that will be inserted into the combo box		Integer[] obj=new Integer[fontList.size()];				for(int i=0;i<fontList.size();i++){		    			obj[i]=new Integer(i);		}					//creates the combo box		final JComboBox combo=new JComboBox(obj);		combo.setFont(theFont);					//creates and sets the renderer		FontFamilyRenderer renderer=new FontFamilyRenderer();		combo.setRenderer(renderer);		//sets the selected item		combo.setSelectedItem(fontFamilyList.contains(propertyValue)?new Integer(fontFamilyList.indexOf(propertyValue)):new Integer(0));					final ActionListener listener=new ActionListener(){		    			public void actionPerformed(ActionEvent evt) {			    				String value="";								if(combo.getSelectedItem()!=null){				    					try{						value=(String)(fontFamilyList.get(((Integer)combo.getSelectedItem()).intValue()));					}catch (Exception ex){value="";}				}										//modifies the widgetValue of the property item				if(value!=null && !value.equals("")){				    					propertyItem.changePropertyValue(value);				}			}			};					//adds a listener to the combo box		combo.addActionListener(listener);					//the panel that will be contained in the widget object		JPanel panel=new JPanel();		panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));		panel.add(combo);				component=panel;			//creates the disposer		disposer=new Runnable(){            public void run() {				combo.removeActionListener(listener);            }		};	}		/**	 * @author Jordi SUC	 *	 * the class allowing to display a formatted text in a combo box	 */	protected class FontFamilyRenderer extends JLabel implements ListCellRenderer {				/**		 * the constructor of the class		 */		 protected FontFamilyRenderer() {		     			 setOpaque(true);			 setHorizontalAlignment(LEFT);			 setVerticalAlignment(CENTER);		 }		 /**		  * returns the component that will be displayed in a combo box		  * @param list 		  * @param value		  * @param index		  * @param isSelected		  * @param cellHasFocus		  * @return the component that will be displayed in a combo box		  */		 public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {						//gets the selected index			int ind= ((Integer)value).intValue();			setBackground(list.getBackground());			setForeground(list.getForeground());			setText((String)fontFamilyList.get(ind));			setFont((Font)fontList.get(ind));			return this;		 }	}}

⌨️ 快捷键说明

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