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

📄 abstractoptionpane.java

📁 用java 编写的源码开放的文本编辑器。有很多有用的特性
💻 JAVA
字号:
/* * AbstractOptionPane.java - Abstract option pane * :tabSize=8:indentSize=8:noTabs=false: * :folding=explicit:collapseFolds=1: * * Copyright (C) 1998, 1999, 2000, 2001, 2002 Slava Pestov * * 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 any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. */package org.gjt.sp.jedit;//{{{ Importsimport javax.swing.border.EmptyBorder;import javax.swing.*;import java.awt.*;//}}}/** * The default implementation of the option pane interface.<p> * * Most option panes extend this implementation of {@link OptionPane}, instead * of implementing {@link OptionPane} directly. This class provides a convenient * default framework for laying out configuration options.<p> * * It is derived from Java's <code>JPanel</code> class and uses a * <code>GridBagLayout</code> object for component management. Since * <code>GridBagLayout</code> can be a bit cumbersome to use, this class * contains shortcut methods to simplify layout: * * <ul> * <li>{@link #addComponent(Component)}</li> * <li>{@link #addComponent(String,Component)}</li> * <li>{@link #addComponent(String,Component,int)}</li> * <li>{@link #addComponent(Component,Component)}</li> * <li>{@link #addComponent(Component,Component,int)}</li> * <li>{@link #addSeparator()}</li> * <li>{@link #addSeparator(String)}</li> * </ul> * * @see OptionGroup * @see org.gjt.sp.jedit.gui.OptionsDialog#addOptionPane(OptionPane) * * @author Slava Pestov * @author John Gellene (API documentation) * @version $Id: AbstractOptionPane.java,v 1.14 2003/02/18 22:03:19 spestov Exp $ */// even though this class is called AbstractOptionPane, it is not really// abstract, since BufferOptions uses an instance of it to lay out its// components.public class AbstractOptionPane extends JPanel implements OptionPane{	//{{{ AbstractOptionPane constructor	/**	 * Creates a new option pane.	 * @param name The internal name. The option pane's label is set to the	 * value of the property named <code>options.<i>name</i>.label</code>.	 */	public AbstractOptionPane(String name)	{		this.name = name;		setLayout(gridBag = new GridBagLayout());	} //}}}	//{{{ getName() method	/**	 * Returns the internal name of this option pane. The option pane's label	 * is set to the value of the property named	 * <code>options.<i>name</i>.label</code>.	 */	public String getName()	{		return name;	} //}}}	//{{{ getComponent() method	/**	 * Returns the component that should be displayed for this option pane.	 * Because this class extends Component, it simply returns "this".	 */	public Component getComponent()	{		return this;	} //}}}	//{{{ init() method	/**	 * Do not override this method, override {@link #_init()} instead.	 */	// final in 4.2	public void init()	{		if(!initialized)		{			initialized = true;			_init();		}	} //}}}	//{{{ save() method	/**	 * Do not override this method, override {@link #_save()} instead.	 */	// final in 4.2	public void save()	{		if(initialized)			_save();	} //}}}	//{{{ addComponent() method	/**	 * Adds a labeled component to the option pane. Components are	 * added in a vertical fashion, one per row. The label is	 * displayed to the left of the component.	 * @param label The label	 * @param comp The component	 */	public void addComponent(String label, Component comp)	{		JLabel l = new JLabel(label);		l.setBorder(new EmptyBorder(0,0,0,12));		addComponent(l,comp,GridBagConstraints.BOTH);	} //}}}	//{{{ addComponent() method	/**	 * Adds a labeled component to the option pane. Components are	 * added in a vertical fashion, one per row. The label is	 * displayed to the left of the component.	 * @param label The label	 * @param comp The component	 * @param fill Fill parameter to GridBagConstraints for the right	 * component	 */	public void addComponent(String label, Component comp, int fill)	{		JLabel l = new JLabel(label);		l.setBorder(new EmptyBorder(0,0,0,12));		addComponent(l,comp,fill);	} //}}}	//{{{ addComponent() method	/**	 * Adds a labeled component to the option pane. Components are	 * added in a vertical fashion, one per row. The label is	 * displayed to the left of the component.	 * @param comp1 The label	 * @param comp2 The component	 *	 * @since jEdit 4.1pre3	 */	public void addComponent(Component comp1, Component comp2)	{		addComponent(comp1,comp2,GridBagConstraints.BOTH);	} //}}}	//{{{ addComponent() method	/**	 * Adds a labeled component to the option pane. Components are	 * added in a vertical fashion, one per row. The label is	 * displayed to the left of the component.	 * @param comp1 The label	 * @param comp2 The component	 * @param fill Fill parameter to GridBagConstraints for the right	 * component	 *	 * @since jEdit 4.1pre3	 */	public void addComponent(Component comp1, Component comp2, int fill)	{		GridBagConstraints cons = new GridBagConstraints();		cons.gridy = y++;		cons.gridheight = 1;		cons.gridwidth = 1;		cons.weightx = 0.0f;		cons.insets = new Insets(1,0,1,0);		cons.fill = GridBagConstraints.BOTH;		gridBag.setConstraints(comp1,cons);		add(comp1);		cons.fill = fill;		cons.gridx = 1;		cons.weightx = 1.0f;		gridBag.setConstraints(comp2,cons);		add(comp2);	} //}}}	//{{{ addComponent() method	/**	 * Adds a component to the option pane. Components are	 * added in a vertical fashion, one per row.	 * @param comp The component	 */	public void addComponent(Component comp)	{		GridBagConstraints cons = new GridBagConstraints();		cons.gridy = y++;		cons.gridheight = 1;		cons.gridwidth = cons.REMAINDER;		cons.fill = GridBagConstraints.NONE;		cons.anchor = GridBagConstraints.WEST;		cons.weightx = 1.0f;		cons.insets = new Insets(1,0,1,0);		gridBag.setConstraints(comp,cons);		add(comp);	} //}}}	//{{{ addSeparator() method	/**	 * Adds a separator component.	 * @param label The separator label property	 * @since jEdit 4.1pre7	 */	public void addSeparator()	{		if(y != 0)			addComponent(Box.createVerticalStrut(6));		JSeparator sep = new JSeparator(JSeparator.HORIZONTAL);		GridBagConstraints cons = new GridBagConstraints();		cons.gridy = y++;		cons.gridheight = 1;		cons.gridwidth = cons.REMAINDER;		cons.fill = GridBagConstraints.BOTH;		cons.anchor = GridBagConstraints.WEST;		cons.weightx = 1.0f;		cons.insets = new Insets(1,0,1,0);		gridBag.setConstraints(sep,cons);		add(sep);	} //}}}	//{{{ addSeparator() method	/**	 * Adds a separator component.	 * @param label The separator label property	 * @since jEdit 2.6pre2	 */	public void addSeparator(String label)	{		if(y != 0)			addComponent(Box.createVerticalStrut(6));		Box box = new Box(BoxLayout.X_AXIS);		Box box2 = new Box(BoxLayout.Y_AXIS);		box2.add(Box.createGlue());		box2.add(new JSeparator(JSeparator.HORIZONTAL));		box2.add(Box.createGlue());		box.add(box2);		JLabel l = new JLabel(jEdit.getProperty(label));		l.setMaximumSize(l.getPreferredSize());		box.add(l);		Box box3 = new Box(BoxLayout.Y_AXIS);		box3.add(Box.createGlue());		box3.add(new JSeparator(JSeparator.HORIZONTAL));		box3.add(Box.createGlue());		box.add(box3);		GridBagConstraints cons = new GridBagConstraints();		cons.gridy = y++;		cons.gridheight = 1;		cons.gridwidth = cons.REMAINDER;		cons.fill = GridBagConstraints.BOTH;		cons.anchor = GridBagConstraints.WEST;		cons.weightx = 1.0f;		cons.insets = new Insets(1,0,1,0);		gridBag.setConstraints(box,cons);		add(box);	} //}}}	//{{{ Protected members	/**	 * Has the option pane been initialized?	 */	protected boolean initialized;	/**	 * The layout manager.	 */	protected GridBagLayout gridBag;	/**	 * The number of components already added to the layout manager.	 */	protected int y;	/**	 * This method should create and arrange the components of the option pane	 * and initialize the option data displayed to the user. This method	 * is called when the option pane is first displayed, and is not	 * called again for the lifetime of the object.	 */	protected void _init() {}	/**	 * Called when the options dialog's "ok" button is clicked.	 * This should save any properties being edited in this option	 * pane.	 */	protected void _save() {}	//}}}	//{{{ Private members	private String name;	//}}}}

⌨️ 快捷键说明

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