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

📄 formmanager.java

📁 很棒的web服务器源代码
💻 JAVA
字号:
// FormManager.java// $Id: FormManager.java,v 1.4 2000/08/16 21:37:49 ylafon Exp $// (c) COPYRIGHT MIT and INRIA, 1996.// Please first read the full copyright statement in file COPYRIGHT.htmlpackage org.w3c.tools.forms ;import java.awt.Component;import java.awt.Container;import java.awt.Dimension;import java.awt.Frame;import java.awt.Panel;import java.awt.Window;import java.util.Vector;public class FormManager {    /**     * Our list of field, at description time.     */    protected Vector vfields = null ;    /**     * Our list of fields, at runtime.     */    protected FormField fields[] = null ;    /**     * The current field being edited, as an index in our fields.     */    protected int    cursor = 0 ;    /**     * Is this form description completed ?     */    protected boolean finished = false ;    /**     * The form's title.     */    protected String title = null ;    /**     * The form grphical UI.     */    protected FormPanel panel = null ;    /**     * Callback for field value's change.     * @param field The field that changed.     */    public void notifyChange(FormField field) {	return ;    }    /**     * Construct the Panel to edit the form.     * @return A Panel instance, layed out for this form edition.     */    protected FormPanel createPanel() {	panel = new FormPanel(this) ;	for (int i = 0 ; i < fields.length ; i++) 	    panel.addField (fields[i].getTitle(), fields[i].getEditor()) ;	return panel ;    }    /**     * Move to the field whose index is given.     * @param n The field to move to.     */    public void gotoField (int idx) {	if ((idx < 0) || (idx >= fields.length)) 	    throw new RuntimeException ("invalid form cursor:"+cursor) ;	cursor = idx ;	fields[cursor].getEditor().requestFocus() ;    }    /**     * Move the focus to the next editable field.     */    public void nextField() {	gotoField((cursor+1) % fields.length) ;    }    /**     * Some of our field got the focus, update our cursor.     * @param field The field that now has the focus.     */    protected void gotFocus (FormField field) {	for (int i = 0 ; i < fields.length ; i++) {	    if ( fields[i] == field ) {		cursor = i ;		break ;	    }	}    }		    /**     * Add a field to the form.     * @param name The field name (the key by wich this field will be      *    accessible.)     * @param field The field to be created.     */    public void addField(FormField field) {	if ( finished )	    throw new RuntimeException ("This form has been finished.");	vfields.addElement (field) ;    }    /**     * Mark the description of the form as completed.     * Once this method is called, no more fields can be added to the form.     * This method will perform any required compilation of the form.     */    public void finish() {	if ( finished )	    return ;	finished = true ;	// Compile the vfields into fields, for fast access and no casts:	fields = new FormField[vfields.size()] ;	vfields.copyInto(fields) ;	vfields = null ;    }    /**     * Get the graphical object for editing the form.     */    public Panel getPanel() {	if ( ! finished )	    finish() ;	if ( panel == null )	    panel = createPanel() ;	return panel ;    }    /**     * Create a new, empty form.     * @param title The form's title.     */    public FormManager(String title) {	this.title   = title ;	this.vfields = new Vector() ;    }    /**     * Test.     * @exception IllegalFieldValueException test     */    public static void main (String args[]) 	throws IllegalFieldValueException    {	FormManager manager = new FormManager ("test") ;	FormField field   = null ;	// Create the first field:	field = new StringField(manager, "field-1", "title-1", "value-1");	manager.addField(field) ;	// Create the second field:	field = new StringField(manager, "field-2", "title-2", "value-2") ;	manager.addField(field) ;	// Create an Integer field;	field = new IntegerField(manager, "field-3", "title-3", 10);	manager.addField(field) ;	// Create an option field:	String opts[] = { "option-1", "option-2", "foo", "bar", "etc" };	field = new OptionField(manager, "field-4", "title-4", opts, 0) ;	manager.addField(field) ;	// Create a boolean field.	field = new BooleanField(manager, "field-5", "title-5", true) ;	manager.addField(field) ;	// Create a RangedInteger	field = new RangedIntegerField(manager, "field-6", "title-6"				       , 0, 10000, 5000) ;	manager.addField(field);	// Display the resulting GUI:	Panel p = manager.getPanel() ;	Frame toplevel = new Frame("form test") ;	toplevel.add ("Center", p) ;	toplevel.pack() ;	toplevel.resize(toplevel.preferredSize()) ;	toplevel.show() ;    }}

⌨️ 快捷键说明

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