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

📄 mainframe.java

📁 Java门电路画图器 基本功能: 1。文件的保存
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
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 + -