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

📄 drawapplet.java

📁 JHotDraw学习过程中对数组的测试程序haha 学习过程中对数组的测试程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * @(#)DrawApplet.java 5.1 * */package CH.ifa.draw.applet;import java.applet.Applet;import java.awt.*;import java.awt.event.*;import java.util.*;import java.io.*;import java.net.*;import CH.ifa.draw.framework.*;import CH.ifa.draw.standard.*;import CH.ifa.draw.figures.*;import CH.ifa.draw.util.*;/** * DrawApplication defines a standard presentation for * a drawing editor that is run as an applet. The presentation is * customized in subclasses.<p> * Supported applet parameters: <br> * <i>DRAWINGS</i>: a blank separated list of drawing names that is *           shown in the drawings choice. */public class DrawApplet        extends Applet	    implements DrawingEditor, PaletteListener {    transient private Drawing         fDrawing;    transient private Tool            fTool;    transient private StandardDrawingView fView;    transient private ToolButton      fDefaultToolButton;    transient private ToolButton      fSelectedToolButton;    transient private boolean         fSimpleUpdate;    transient private Button          fUpdateButton;    transient private Choice          fFrameColor;    transient private Choice          fFillColor;    //transient private Choice          fTextColor;    transient private Choice          fArrowChoice;    transient private Choice          fFontChoice;    transient private Thread          fSleeper;    private Iconkit                   fIconkit;    static String                     fgUntitled = "untitled";    private static final String       fgDrawPath = "/CH/ifa/draw/";    public static final String        IMAGES = fgDrawPath+"images/";    /**     * Initializes the applet and creates its contents.     */    public void init() {        fIconkit = new Iconkit(this);		setLayout(new BorderLayout());        fView = createDrawingView();        Panel attributes = createAttributesPanel();        createAttributeChoices(attributes);        add("North", attributes);        Panel toolPanel = createToolPalette();        createTools(toolPanel);        add("West", toolPanel);        add("Center", fView);        Panel buttonPalette = createButtonPanel();        createButtons(buttonPalette);        add("South", buttonPalette);        initDrawing();        setBufferedDisplayUpdate();        setupAttributes();    }    /*     * Gets the iconkit to be used in the applet.     */     /**** not sure whether this will still be needed on 1.1 enabled browsers     protected Iconkit iconkit() {        if (fIconkit == null) {            startSleeper();            loadAllImages(this); // blocks until images loaded            stopSleeper();        }        return fIconkit;    } */    /**     * Creates the attributes panel.     */    protected Panel createAttributesPanel() {        Panel panel = new Panel();        panel.setLayout(new PaletteLayout(2, new Point(2,2), false));        return panel;    }    /**     * Creates the attribute choices. Override to add additional     * choices.     */    protected void createAttributeChoices(Panel panel) {        panel.add(new Label("Fill"));        fFillColor = createColorChoice("FillColor");        panel.add(fFillColor);        //panel.add(new Label("Text"));        //fTextColor = createColorChoice("TextColor");        //panel.add(fTextColor);        panel.add(new Label("Pen"));        fFrameColor = createColorChoice("FrameColor");        panel.add(fFrameColor);        panel.add(new Label("Arrow"));        CommandChoice choice = new CommandChoice();        fArrowChoice = choice;        choice.addItem(new ChangeAttributeCommand("none",     "ArrowMode", new Integer(PolyLineFigure.ARROW_TIP_NONE),  fView));        choice.addItem(new ChangeAttributeCommand("at Start", "ArrowMode", new Integer(PolyLineFigure.ARROW_TIP_START), fView));        choice.addItem(new ChangeAttributeCommand("at End",   "ArrowMode", new Integer(PolyLineFigure.ARROW_TIP_END),   fView));        choice.addItem(new ChangeAttributeCommand("at Both",  "ArrowMode", new Integer(PolyLineFigure.ARROW_TIP_BOTH),  fView));        panel.add(fArrowChoice);        panel.add(new Label("Font"));        fFontChoice = createFontChoice();        panel.add(fFontChoice);    }    /**     * Creates the color choice for the given attribute.     */    protected Choice createColorChoice(String attribute) {        CommandChoice choice = new CommandChoice();        for (int i=0; i<ColorMap.size(); i++)            choice.addItem(                new ChangeAttributeCommand(                    ColorMap.name(i),                    attribute,                    ColorMap.color(i),                    fView                )            );        return choice;    }    /**     * Creates the font choice. The choice is filled with     * all the fonts supported by the toolkit.     */    protected Choice createFontChoice() {        CommandChoice choice = new CommandChoice();        String fonts[] = Toolkit.getDefaultToolkit().getFontList();        for (int i = 0; i < fonts.length; i++)            choice.addItem(new ChangeAttributeCommand(fonts[i], "FontName", fonts[i],  fView));        return choice;    }    /**     * Creates the buttons panel.     */    protected Panel createButtonPanel() {        Panel panel = new Panel();        panel.setLayout(new PaletteLayout(2, new Point(2,2), false));        return panel;    }    /**     * Creates the buttons shown in the buttons panel. Override to     * add additional buttons.     * @param panel the buttons panel.     */    protected void createButtons(Panel panel) {        panel.add(new Filler(24,20));        Choice drawingChoice = new Choice();        drawingChoice.addItem(fgUntitled);	    String param = getParameter("DRAWINGS");	    if (param == null)	        param = "";       	StringTokenizer st = new StringTokenizer(param);        while (st.hasMoreTokens())            drawingChoice.addItem(st.nextToken());        // offer choice only if more than one        if (drawingChoice.getItemCount() > 1)            panel.add(drawingChoice);        else            panel.add(new Label(fgUntitled));		drawingChoice.addItemListener(		    new ItemListener() {		        public void itemStateChanged(ItemEvent e) {		            if (e.getStateChange() == ItemEvent.SELECTED) {		                loadDrawing((String)e.getItem());		            }		        }		    }		);        panel.add(new Filler(6,20));        Button button;        button = new CommandButton(new DeleteCommand("Delete", fView));        panel.add(button);        button = new CommandButton(new DuplicateCommand("Duplicate", fView));        panel.add(button);        button = new CommandButton(new GroupCommand("Group", fView));        panel.add(button);        button = new CommandButton(new UngroupCommand("Ungroup", fView));        panel.add(button);        button = new Button("Help");		button.addActionListener(		    new ActionListener() {		        public void actionPerformed(ActionEvent event) {		            showHelp();		        }		    }		);        panel.add(button);        fUpdateButton = new Button("Simple Update");		fUpdateButton.addActionListener(		    new ActionListener() {		        public void actionPerformed(ActionEvent event) {                    if (fSimpleUpdate)                        setBufferedDisplayUpdate();                    else                        setSimpleDisplayUpdate();		        }		    }		);        // panel.add(fUpdateButton); // not shown currently    }    /**     * Creates the tools palette.     */    protected Panel createToolPalette() {        Panel palette = new Panel();        palette.setLayout(new PaletteLayout(2,new Point(2,2)));        return palette;    }    /**     * Creates the tools. By default only the selection tool is added.     * Override this method to add additional tools.     * Call the inherited method to include the selection tool.     * @param palette the palette where the tools are added.     */    protected void createTools(Panel palette) {        Tool tool = createSelectionTool();        fDefaultToolButton = createToolButton(IMAGES+"SEL", "Selection Tool", tool);        palette.add(fDefaultToolButton);    }    /**     * Creates the selection tool used in this editor. Override to use

⌨️ 快捷键说明

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