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

📄 cardlaydemo2.java

📁 codebook!
💻 JAVA
字号:
/* Printing Dialog */import java.awt.*;import java.awt.event.*;import java.io.*;import java.util.*;/** * PrintPanel is the base for an open-ended series of classes * that implement printing of one type. We provide two examples  * to start: First prints a phone book, second prints labels, etc. * To add more, for example a Mail List/Form Letter Merge, * define a class for it below and insert in the "add" loop * in the main constructor. */abstract class PrintPanel extends Panel {	/** Returns the string to use in a Choice to display this panel */	public abstract String getChoice();	/** Print the data in the format for this type of printout */	public abstract void doPrint();}/** PhonesPanel extends PrintPanel to provide the UI for printing * a user's phone book. */class PhonesPanel extends PrintPanel {	PhonesPanel() {		super();		setBackground(Color.red);		setLayout(new FlowLayout());		add(new Label("Tab markers at edge of page?"));		add(new Checkbox());		add(new Label("Each letter starts page?"));		add(new Checkbox());	}	public String getChoice() {		return "Phone Book";	}	public void doPrint() {		// code here to print Phone book	}}/** LabelsPanel extends PrintPanel to provide the UI for printing * name and address labels */class LabelsPanel extends PrintPanel {	LabelsPanel() {		super();		setBackground(Color.green);		setLayout(new GridLayout(3,2));		add(new Label("Left Offset:"));		add(new TextField(5));		add(new Label("Rows:"));		add(new TextField(5));		add(new Label("Cols:"));		add(new TextField(5));	}	public String getChoice() {		return "Labels";	}	public void doPrint() {		// code here to print Labels	}}/** CardLayDemo2 -- Prototype of a Print Dialog for JabaDex * * @author Ian F. Darwin * @version 0.0, September, 1996 */public class CardLayDemo2 extends Frame {	PrintPanel[] pps = new PrintPanel[2];	private int runType = 0;	private Choice runTypeChoice;	private Panel tp, mainP, bp;	// top, middle, bottom.	CardLayout cardlay;	private Button printButton, 		sampleButton, cancelButton;	/** Construct a Print dialog. */	CardLayDemo2(String title) {		super(title);		// Top panel (tp) has choices for labels/phonebook/etc.		// and paper size.		// Middle panel (mainP, managed by CardLayout) is details		// for either Labels or Phonebook		//	Shows either a PhonesPanel or a LabelsPanel or ...		// Bottom panel (bp) has Print/Preview/Cancel buttons.		tp = new Panel();		tp.setLayout(new FlowLayout());		mainP = new Panel();		mainP.setLayout(cardlay = new CardLayout()); 		tp.add(runTypeChoice = new Choice());		runTypeChoice.addItemListener(new ItemListener() {			public void itemStateChanged(ItemEvent e) {				runType = runTypeChoice.getSelectedIndex();				cardlay.show(mainP, pps[runType].getChoice());			}		});		/* create one instance of each PrintPanel type. */		pps[0] = new PhonesPanel();		pps[1] = new LabelsPanel();		/* Add each print type to the choice and to mainP */		for (int i=0; i<pps.length; i++) {			runTypeChoice.add(pps[i].getChoice());			mainP.add(pps[i].getChoice(), pps[i]);		}		cardlay.show(mainP, pps[runType].getChoice());		// Bottom has a Panel with push buttons		bp = new Panel();		bp.setLayout(new FlowLayout());		bp.add(printButton = new Button("Print"));		printButton.addActionListener(new ActionListener() {			public void actionPerformed(ActionEvent e) {				doPrint(true);				setVisible(false);				System.exit(0);			}		});		bp.add(sampleButton = new Button("Print Sample"));			sampleButton.setEnabled(false);		bp.add(cancelButton = new Button("Cancel"));		cancelButton.addActionListener(new ActionListener() {			public void actionPerformed(ActionEvent e) {				System.out.println("Printing canceled");				setVisible(false);				System.exit(0);			}		});		setLayout(new BorderLayout());		add("North", tp);		add("Center", mainP);		add("South", bp);		pack();        addWindowListener(new WindowAdapter() {			public void windowClosing(WindowEvent e) {        	// If windowClosing() does setVisible and dispose, 			// then the close action completes				setVisible(false);				dispose();				System.exit(0);			}		});	}	/** Print the current list.  */	protected void doPrint(boolean toRealDevice) {		// open a PrintStream to the printer device to file on disk.		// PrintStream pf = ...		// call the appropriate doPrint()		// pps[runType].doPrint(pf);		System.err.println("Print completed");	}	public static void main(String[] args) {		// Generate some data...		// ...		// pop up the print dialog to print it		(new CardLayDemo2("Print Tester")).setVisible(true);	}}

⌨️ 快捷键说明

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