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

📄 yesnopanelcustomizer.java

📁 java 的164个例子的源代码,包括了 很多方面,供包括了19个方面的 源代码
💻 JAVA
字号:
/* * Copyright (c) 2000 David Flanagan.  All rights reserved. * This code is from the book Java Examples in a Nutshell, 2nd Edition. * It is provided AS-IS, WITHOUT ANY WARRANTY either expressed or implied. * You may study, use, and modify it for any non-commercial purpose. * You may distribute it non-commercially as long as you retain this notice. * For a commercial use license, or to purchase the book (recommended), * visit http://www.davidflanagan.com/javaexamples2. */package com.davidflanagan.examples.beans;import java.awt.*;import java.awt.event.*;import java.beans.*;/** * This class is a customizer for the YesNoPanel bean.  It displays a * TextArea and three TextFields where the user can enter the main message * and the labels for each of the three buttons.  It does not allow the * alignment property to be set. **/public class YesNoPanelCustomizer extends Panel    implements Customizer, TextListener{    protected YesNoPanel bean;    // The bean being customized    protected TextArea message;   // For entering the message        protected TextField fields[]; // For entering button text    // The bean box calls this method to tell us what object to customize.    // This method will always be called before the customizer is displayed,    // so it is safe to create the customizer GUI here.    public void setObject(Object o) {	bean = (YesNoPanel)o;   // save the object we're customizing		// Put a label at the top of the panel.	this.setLayout(new BorderLayout());	this.add(new Label("Enter the message to appear in the panel:"),		 "North");		// And a big text area below it for entering the message.	message = new TextArea(bean.getMessageText());	message.addTextListener(this);	// TextAreas don't know how big they want to be.  You must tell them.	message.setSize(400, 200);	this.add(message, "Center");		// Then add a row of textfields for entering the button labels.	Panel buttonbox = new Panel();                     // The row container	buttonbox.setLayout(new GridLayout(1, 0, 25, 10)); // Equally spaced	this.add(buttonbox, "South");                      // Put row on bottom		// Now go create three TextFields to put in this row.  But actually	// position a Label above each, so create an container for each	// TextField+Label combination.	fields = new TextField[3];               // Array of TextFields.	String[] labels = new String[] {         // Labels for each.	    "Yes Button Label", "No Button Label", "Cancel Button Label"};	String[] values = new String[] {         // Initial values of each.	    bean.getYesLabel(), bean.getNoLabel(), bean.getCancelLabel()};	for(int i = 0; i < 3; i++) {	    Panel p = new Panel();                 // Create a container.	    p.setLayout(new BorderLayout());       // Give it a BorderLayout.	    p.add(new Label(labels[i]), "North");  // Put a label on the top.	    fields[i] = new TextField(values[i]);  // Create the text field.	    p.add(fields[i], "Center");            // Put it below the label.	    fields[i].addTextListener(this);       // Set the event listener.	    buttonbox.add(p);                      // Add container to row.	}    }    // Add some space around the outside of the panel.    public Insets getInsets() { return new Insets(10, 10, 10, 10); }        // This is the method defined by the TextListener interface.  Whenever the    // user types a character in the TextArea or TextFields, this will get    // called.  It updates the appropriate property of the bean and fires a    // property changed event, as all customizers are required to do.    // Note that we are not required to fire an event for every keystroke.    // Instead we could include an "Apply" button that would make all the    // changes at once, with a single property changed event.    public void textValueChanged(TextEvent e) {	TextComponent t = (TextComponent)e.getSource();	String s = t.getText();	if (t == message) bean.setMessageText(s);	else if (t == fields[0]) bean.setYesLabel(s);	else if (t == fields[1]) bean.setNoLabel(s);	else if (t == fields[2]) bean.setCancelLabel(s);	listeners.firePropertyChange(null, null, null);    }        // This code uses the PropertyChangeSupport class to maintain a list of    // listeners interested in the edits we make to the bean.    protected PropertyChangeSupport listeners =new PropertyChangeSupport(this);    public void addPropertyChangeListener(PropertyChangeListener l) {	listeners.addPropertyChangeListener(l);    }    public void removePropertyChangeListener(PropertyChangeListener l) {	listeners.removePropertyChangeListener(l);    }}

⌨️ 快捷键说明

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