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

📄 cardlaydemo.java

📁 codebook!
💻 JAVA
字号:
/* CardLayout Demo: Login Applet */import java.applet.*;import java.awt.*;import java.awt.event.*;import java.io.*;import java.util.*;/** Switchable interface lets us call back the Applet, instead of * having global variables (in other languages) or passing lots of * extra stuff into the ImgPanel constructor */interface Switchable {	void gotoNext(String target);}/** ImgPanel holds an Image and optional TextField, jumps to next */class ImgPanel extends Panel {	/** The background Image */	Image im;	/* Size of the Images */	final int WIDTH = 216;	final int HEIGHT= 144;	/** The container */	Switchable applet;	/** The label for the next panel in the series (CardLayout	 * switches based on name string, not reference to a GUI component.	 */	String next;	/** Our entry field */	TextField fld = null;	/** Our pushbutton */	Button butt = null;	/** Construct an ImagePanel */	ImgPanel(Switchable theApplet, Image image, String theNextPanelName) {		super();		applet	= theApplet;		im		= image;		next	= theNextPanelName;		if (theNextPanelName == null)			return;		GridBagLayout gridbag = new GridBagLayout();		GridBagConstraints cL = new GridBagConstraints(),			cR = new GridBagConstraints();		cL.gridx = 0; cL.gridwidth = 1;		cR.gridx = 1; cR.gridwidth = GridBagConstraints.REMAINDER;		cR.weightx = 1.0; cL.weightx = 4.0;		cR.weighty = cL.weighty = 0.8;		cR.gridheight = cL.gridheight = GridBagConstraints.REMAINDER;		cR.anchor = GridBagConstraints.SOUTHWEST;		cL.anchor = GridBagConstraints.SOUTHEAST;		setLayout(gridbag);		// Add the textfield at the left side		fld = new TextField(8);		gridbag.setConstraints(fld, cL);		add(fld);		// Add the OK button at the right side		butt = new Button("OK");		gridbag.setConstraints(butt, cR);		add(butt);		// Give it an ActionListener to move on to the next page		butt.addActionListener(new ActionListener() {			public void actionPerformed(ActionEvent e) {				if (fld.getText().length() > 0)					applet.gotoNext(next);			}		});	}	/** Set this panel's text field to hidden echo */	public void setNoEcho() {		if (fld != null)			fld.setEchoChar('*');	}	/* override update() to not clear, which reduces flicker */	public void update(Graphics g) {		paint(g);	}	/* Draw the background */	public void paint(Graphics g) {		g.drawImage(im, 0, 0, this);	}	/* urge the Layout Mangler to make us the same size as our background */	public Dimension getPreferredSize() {		return new Dimension(WIDTH, HEIGHT);	}	public Dimension getMinimumSize() {		return getPreferredSize();	}}/** CardLayDemo -- Prototype of a Login Dialog for an Applet * * @author Ian F. Darwin * @version 1.0, July, 1997 */public class CardLayDemo extends Applet implements Switchable {	private ImgPanel loginP, passwdP, welcomeP; 	CardLayout cardlay;	/** Initialize the CardLayDemo applet. */	public void init() {		// Main panel (managed by CardLayout) is details		// for either Login, Passwd or Welcome! screen.		setLayout(cardlay = new CardLayout()); 		/* create each Panel. */		add("login",			loginP = new ImgPanel(this, 				getImage(getCodeBase(), "loginLogin.gif"), "passwd"));		add("passwd",			passwdP = new ImgPanel(this, 				getImage(getCodeBase(), "loginPasswd.gif"), "welcome"));		passwdP.setNoEcho();		add("welcome",			welcomeP = new ImgPanel(this, 				getImage(getCodeBase(), "loginWelcome.gif"), null));	}	public void start() { 		gotoNext("login");		// gotta start somewhere	}	/** Switch to the next panel */	public void gotoNext(String gotoLabel) {		cardlay.show(this, gotoLabel);	}}

⌨️ 快捷键说明

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