📄 jfdrawappletsample.java
字号:
/**
* $Id:JFDrawAppletSample.java $
*
* Copyright 2004 ~ 2005 JingFei International Cooperation LTD. All rights reserved. *
*/
import javax.swing.JApplet;
import javax.swing.JMenuBar;
import javax.swing.JSplitPane;
import javax.swing.JToolBar;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import com.jfimagine.jfdraw.gui.DrawPane;
import com.jfimagine.jfdraw.gui.DrawCanvas;
import com.jfimagine.jfdraw.gui.dialog.LibDialog;
import com.jfimagine.jfdraw.gui.dialog.LibHelper;
import com.jfimagine.jfdraw.gui.dialog.LibContainer;
import com.jfimagine.jfgraph.shape.union.JFPage;
import com.jfimagine.jfdraw.gui.ToolFactory;
import com.jfimagine.jfgraph.transfer.ExportBase;
import com.jfimagine.jfgraph.transfer.ExportJPG;
import com.jfimagine.jfdraw.action.ActionConst;
import com.jfimagine.jfdraw.action.FileAction;
import com.jfimagine.utils.log.*;
/**
* JFDrawAppletSample class is an applet class for runing JFDraw.
*
* @author CookieMaker
*
* @version $Revision: 1.6.0 $
*/
public class JFDrawAppletSample extends JApplet {
/**an internal log utility*/
private JFLogger m_logger=JFLogManager.getLogger(this.getClass());
private DrawPane m_drawPane;
public void init(){
//an inner class for a subclass of DrawPane.
class AppletDrawPane extends DrawPane{
ToolFactory toolFactory;
public AppletDrawPane(ToolFactory toolFactory){
this.toolFactory =toolFactory;
}
/** set current layer name of current drawing page.
* @param layerName Current layername
*/
public void setLayerName(String layerName){
toolFactory.setLayerName(layerName);
}
}
ToolFactory toolFactory =new ToolFactory();
Container c;
c=getContentPane();
c.setLayout(new BorderLayout());
//Action: create a draw panel
//Desc: A DrawPane object packaged a vertical ruler, a horizontal ruler and a drawing canvas
m_drawPane =new AppletDrawPane(toolFactory);
//add two toolba1r to applet.
JPanel toolPanel =new JPanel();
toolPanel.setLayout(new BorderLayout());
toolPanel.add("North",createToolBar1(m_drawPane));
toolPanel.add("Center",createToolBar2(m_drawPane));
c.add("North",toolPanel);
//action: add menu to Applet
setJMenuBar(createMenuBar(m_drawPane));
///* demo
//make a library container
LibHelper helper =LibHelper.getInstance();
helper.setLibraryType(LibHelper.LIBRARY_VISIBLETYPE_EXTERNAL);
LibContainer container =new LibContainer(m_drawPane);
helper.setLibraryPanel(container.getLibraryPanel());
helper.setTemplatePanel(container.getTemplatePanel());
//add drawPane and library container into a SplitPane:
JSplitPane splitPane =new JSplitPane();
splitPane.setLeftComponent(container);
splitPane.setRightComponent(m_drawPane);
splitPane.setDividerLocation(140);
splitPane.setOneTouchExpandable(true);
//add this split pane into applet's content pane.
c.add("Center",splitPane);
//*/
}
/** load a remote a local file,this method is called by JavaScript
*
*/
public void loadFile(String url){
try{
DrawCanvas drawCanvas =m_drawPane.getDrawCanvas();
drawCanvas.getDrawPage().loadFromBinary(url,drawCanvas);
repaint();
}catch(Exception e){
m_logger.error("loadFile: "+e);
}
}
public void paint(Graphics g){
super.paint(g);
m_drawPane.repaint();
}
/**
* Create a main menu bar.
*/
public static JMenuBar createMenuBar(ActionListener listener) {
JMenuBar mBar = new JMenuBar();
mBar.add(ToolFactory.createDocMenu(listener,true));
mBar.add(ToolFactory.createEditMenu(listener,false));
mBar.add(ToolFactory.createViewMenu(listener,true,true));
mBar.add(ToolFactory.createShapeMenu(listener));
mBar.add(ToolFactory.createDrawMenu(listener));
mBar.add(ToolFactory.createSetMenu(listener));
mBar.add(ToolFactory.createHelpMenu(listener));
return mBar;
}
/**
* Create a tool bar.
*/
public JToolBar createToolBar1(ActionListener listener) {
//Create the toolbar.
JToolBar toolBar = new JToolBar();
toolBar.setFloatable(false);
ToolFactory factory =new ToolFactory();
//add file buttons
factory.addFileButtons(toolBar,listener);
toolBar.addSeparator();
//add alignment buttons
factory.addAlignmentButtons(toolBar,listener);
toolBar.addSeparator();
//add layer buttons
factory.addLayerButtons(toolBar,listener);
return toolBar;
}
/**
* Create a tool bar.
*/
public JToolBar createToolBar2(ActionListener listener) {
//Create the toolbar.
JToolBar toolBar = new JToolBar();
toolBar.setFloatable(false);
ToolFactory factory =new ToolFactory();
//add graph drawing buttons
factory.addGraphDrawButtons(toolBar,listener);
toolBar.addSeparator();
//add graph processing buttons
factory.addGraphProcessButtons(toolBar,listener);
return toolBar;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -