📄 mainframe.java
字号:
package ding;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.w3c.dom.*;
import org.xml.sax.helpers.*;
import java.io.File;
import java.io.*;
/**
* <p>Title: 门电路画图器</p>
* <p>Description: www.1shu.net</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: EyeSome</p>
* @author ES
* @version 1.0
*/
public class mainFrame
extends JFrame
implements KeyListener {
JPanel contentPane;
//mypanel ppane = new mypanel();
public picPanel ppane;
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jMenuFile = new JMenu();
JMenu jMenuHelp = new JMenu();
JMenuItem jMenuHelpAbout = new JMenuItem();
JLabel statusBar = new JLabel();
BorderLayout borderLayout1 = new BorderLayout();
JFileChooser chooser;
Font tmpF = new Font("Dialog", Font.PLAIN, 14);
readXml rXml;
/////////////////////////////
// 测试用数据
/////////////////////////////
yjRec inRec[];
yjLine inLine[];
yjCircle inCircle[];
yjStr inStr[];
yjArc inArc[];
yuanjian yjc[] = new yuanjian[1000];
int yjcNo = 0; // 元件的个数
yuanjiantemp yjt[] = new yuanjiantemp[1000];
int yjtNo = 0; // 元件模板的个数
int lineNo = 0; // 线的数量
int pointNo = 0; // 点的数量
String resChar;
JMenu jMenuComponet = new JMenu();
JMenuItem jMenuFileOpen = new JMenuItem();
JMenuItem jMenuFileExit = new JMenuItem();
JMenuItem jMenuFileSave = new JMenuItem();
JMenuItem jMenuComponetNew = new JMenuItem();
JMenuItem jMenuComponetLine = new JMenuItem();
JMenuItem jMenuComponetPoint = new JMenuItem();
JMenuItem jMenuItem1 = new JMenuItem();
JMenuItem jMenuItem2 = new JMenuItem();
/////////////////////////////
//Construct the frame
public mainFrame() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
this.addKeyListener(this);
try {
jbInit();
}
catch (Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
contentPane = (JPanel)this.getContentPane();
contentPane.setLayout(borderLayout1);
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize(); //get the user\u00B4s screen size
int WIDTH = screenSize.width;
int HEIGHT = screenSize.height;
this.setSize(new Dimension(WIDTH, HEIGHT));
this.setTitle("门电路画图器");
statusBar.setText(" ");
statusBar.setFont(tmpF);
jMenuFile.setText("File");
jMenuFile.setFont(new java.awt.Font("Dialog", 0, 12));
jMenuHelp.setText("Help");
jMenuHelp.setFont(new java.awt.Font("Dialog", 0, 12));
jMenuHelp.setFocusPainted(false);
jMenuHelpAbout.setText("About");
jMenuHelpAbout.setFont(new java.awt.Font("Dialog", 0, 12));
jMenuHelpAbout.addActionListener(new mainFrame_jMenuHelpAbout_ActionAdapter(this));
jMenuFileOpen.setText("Open");
jMenuFileOpen.setFont(new java.awt.Font("Dialog", 0, 12));
jMenuFileOpen.addActionListener(new mainFrame_jMenuFileOpen_actionAdapter(this));
jMenuFileExit.setText("Exit");
jMenuFileExit.setFont(new java.awt.Font("Dialog", 0, 12));
jMenuFileExit.addActionListener(new mainFrame_jMenuExit_ActionAdapter(this));
jMenuFileSave.setText("Save");
jMenuFileSave.setFont(new java.awt.Font("Dialog", 0, 12));
jMenuFileSave.addActionListener(new mainFrame_jMenuFileSave_actionAdapter(this));
jMenuComponet.setText("Component");
jMenuComponet.setFont(new java.awt.Font("Dialog", 0, 12));
jMenuComponetNew.setActionCommand("新元件");
jMenuComponetNew.setSelected(false);
jMenuComponetNew.setText("Add");
jMenuComponetNew.setFont(new java.awt.Font("Dialog", 0, 12));
jMenuComponetNew.addActionListener(new
mainFrame_jMenuComponetNew_actionAdapter(this));
jMenuComponetLine.setText("Line");
jMenuComponetLine.setFont(new java.awt.Font("Dialog", 0, 12));
jMenuComponetLine.setToolTipText("");
jMenuComponetLine.addActionListener(new
mainFrame_jMenuComponetLine_actionAdapter(this));
jMenuComponetPoint.setActionCommand("绘 点");
jMenuComponetPoint.setText("Point");
jMenuComponetPoint.setFont(new java.awt.Font("Dialog", 0, 12));
jMenuComponetPoint.addActionListener(new
mainFrame_jMenuComponetPoint_actionAdapter(this));
jMenuItem1.setActionCommand("");
jMenuItem1.setText("Char");
jMenuItem1.setFont(new java.awt.Font("Dialog", 0, 12));
jMenuItem1.addActionListener(new mainFrame_jMenuItem1_actionAdapter(this));
jMenuItem2.setText("Count");
jMenuItem2.setFont(new java.awt.Font("Dialog", 0, 12));
jMenuItem2.addActionListener(new mainFrame_jMenuItem2_actionAdapter(this));
jMenuFile.add(jMenuFileOpen);
jMenuFile.add(jMenuFileSave);
jMenuFile.addSeparator();
jMenuFile.add(jMenuFileExit);
jMenuHelp.add(jMenuHelpAbout);
jMenuBar1.add(jMenuFile);
jMenuBar1.add(jMenuComponet);
jMenuBar1.add(jMenuHelp);
this.setJMenuBar(jMenuBar1);
ppane = new picPanel(this);
ppane.addMouseMotionListener(ppane);
ppane.addMouseListener(ppane);
contentPane.add(ppane);
statusBar.setText("Status:");
contentPane.add(statusBar, BorderLayout.SOUTH);
jMenuComponet.add(jMenuComponetNew);
jMenuComponet.add(jMenuComponetLine);
jMenuComponet.add(jMenuComponetPoint);
jMenuComponet.add(jMenuItem1);
jMenuComponet.add(jMenuItem2);
try {
SAXParserFactory sf = SAXParserFactory.newInstance();
SAXParser sp = sf.newSAXParser();
rXml = new readXml(this, true);
sp.parse(new InputSource("yjc.xml"), rXml);
}
catch (Exception ee) {
ee.printStackTrace();
}
}
//File | Exit action performed
public void jMenuFileExit_actionPerformed(ActionEvent e) {
System.exit(0);
}
//Help | About action performed
public void jMenuHelpAbout_actionPerformed(ActionEvent e) {
mainFrame_AboutBox dlg = new mainFrame_AboutBox(this);
Dimension dlgSize = dlg.getPreferredSize();
Dimension frmSize = getSize();
Point loc = getLocation();
dlg.setLocation( (frmSize.width - dlgSize.width) / 2 + loc.x,
(frmSize.height - dlgSize.height) / 2 + loc.y);
dlg.setModal(true);
dlg.pack();
dlg.show();
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
jMenuFileExit_actionPerformed(null);
}
}
void jMenuFileOpen_actionPerformed(ActionEvent e) {
chooser = new JFileChooser("save");
int retval = chooser.showDialog(null, null);
if (retval == JFileChooser.APPROVE_OPTION) {
File theFile = chooser.getSelectedFile();
if (theFile != null) {
if (theFile.isDirectory()) {
JOptionPane.showMessageDialog(null,
"You chose this directory: " +
theFile.getPath());
}
else {
try {
for (int ii = 0; ii < yjtNo; ii++) {
yjt[ii].number = 0;
}
for (int ii = 0; ii < 1000; ii++) {
yjc[ii] = null;
}
SAXParserFactory sf = SAXParserFactory.newInstance();
SAXParser sp = sf.newSAXParser();
rXml = new readXml(this, -1);
sp.parse(new InputSource(theFile.getPath()), rXml);
}
catch (Exception ee) {
ee.printStackTrace();
}
//JOptionPane.showMessageDialog(null,"You chose this file: " + theFile.getPath());
}
}
}
}
void jMenuComponetNew_actionPerformed(ActionEvent e) {
ppane.drawPoint = false;
ppane.drawLine = false;
component cp = new component(this);
cp.show();
}
void jMenuFileSave_actionPerformed(ActionEvent e) {
//filesave fs = new filesave();
// fs.show();
int i, j, k;
String resFileSave = JOptionPane.showInputDialog(null,
"请输入要保存的文件名:");
String fileName = "save\\" + resFileSave + ".xml";
try {
FileWriter toSave = new FileWriter(fileName);
toSave.write("<?xml version=\"1.0\" encoding=\"gb2312\"?>\n");
toSave.write("<file>\n");
for (i = 0; i < yjcNo; i++) {
if (yjc[i] != null) {
toSave.write("<yuanjian id=\"" + yjc[i].id + "\" des=\"" + yjc[i].des +
"\">\n");
if (yjc[i].inArc != null) {
toSave.write("\t<arcp>\n");
for (j = 0; j < yjc[i].inArc.length; j++) {
toSave.write("\t\t<arc x=\"" + yjc[i].inArc[j].x + "\" y=\"" +
yjc[i].inArc[j].y + "\" width=\"" +
yjc[i].inArc[j].width + "\" height=\"" +
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -