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

📄 derectpos.java~93~

📁 一个png文件的解析工具
💻 JAVA~93~
字号:
import java.io.*;
import java.awt.*;
import java.util.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileView;
/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class derectPos extends JFrame {
  //JPanel contentPane;
  Vector list;
  private InfoList infolist;
  private JTextField txtID,txtX,txtY,txtW,txtH;
  //图片的大小
  private int width,height;
  BorderLayout borderLayout1 = new BorderLayout();
  private static derectPos main;
  JLabel lblNUM = new JLabel();
  JTextField jTextField1 = new JTextField();

  public static void main(String[] args)
  {
    main = new derectPos();
    main.show();
  }
  //Construct the frame
  public derectPos() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }

  //Component initialization
  private void jbInit() throws Exception  {
    Container contentPane = (JPanel) this.getContentPane();
    //contentPane.setLayout(borderLayout1);


    infolist = new InfoList();

    JPanel panel1 = new JPanel();
    JPanel panel2 = new JPanel();

    panel1.setLayout(new FlowLayout());

    JButton btOK = new JButton("确定");

    JLabel lblID = new JLabel("图片ID");
    JLabel lblX = new JLabel("起始X坐标");
    JLabel lblY = new JLabel("起始Y坐标");
    JLabel lblW = new JLabel("图片的宽");
    JLabel lblH = new JLabel("图片的高");
    txtID = new JTextField("",3);
    txtX = new JTextField("",3);
    txtY = new JTextField("",3);
    txtW = new JTextField("",3);
    txtH = new JTextField("",3);

    lblNUM.setText("图片数量");
    jTextField1.setCaretPosition(0);
    jTextField1.setColumns(3);
    panel1.add(lblNUM, null);
    panel1.add(jTextField1, null);
    panel1.add(lblID);
    panel1.add(txtID);
    panel1.add(lblX);
    panel1.add(txtX);
    panel1.add(lblY);
    panel1.add(txtY);
    panel1.add(lblW);
    panel1.add(txtW);
    panel1.add(lblH);
    panel1.add(txtH);
    panel1.add(btOK);

    /*panel2.add(infolist);*/
    contentPane.add(panel1,BorderLayout.NORTH );
    contentPane.add(infolist,BorderLayout.CENTER);

    JMenuBar menu = new JMenuBar();
    JMenu menufile = new JMenu("文件");
    JMenuItem open = new JMenuItem("打开");
    JMenuItem save = new JMenuItem("保存");

    menufile.add(open);
    menufile.add(save);
    menu.add(menufile);
    setJMenuBar(menu);
    this.setSize(new Dimension(600, 480));
    this.setTitle("derectPos");

    open.addActionListener(new ActionListener()
                           {
                             public void actionPerformed(ActionEvent e)
                             {
                               JFileChooser file = new JFileChooser();
                               //file.setCurrentDirectory(new File("."));
                               file.setMultiSelectionEnabled(false);

                               file.setAcceptAllFileFilterUsed(false);

                               //final ExtensionFileFilter filter = new ExtensionFileFilter();
                               //filter.addExtension("dsn");

                               //filter.setDescription("Scene Files(*.dsn)");

                               //file.setFileFilter(filter);

                               int result = file.showOpenDialog(new JPanel());
                               if (result == file.APPROVE_OPTION)
                               {
                                  String fileName = file.getSelectedFile().getName();
                                  String dir = file.getCurrentDirectory().toString();
                                  JOptionPane.showConfirmDialog(null,dir+"\\"+fileName,"选择的文件",JOptionPane.YES_OPTION);

                                  Vector data = new Vector();
                                  data = readFile(dir+"\\"+fileName);
                                  System.out.println(data.size());
                               }
                             }
                           });
    //保存
    save.addActionListener(new ActionListener()
                           {
                             public void actionPerformed(ActionEvent e)
                             {
                               DataNode node = new DataNode();
                               list = new Vector();
                               list = infolist.getRes();

                               /*for(int i=0;i<list.size();i++)
                               {

                                 node = (DataNode)(list.elementAt(i));
                                 System.out.println(node.ID );
                                 System.out.println(node.W );
                               }*/
                               writeFile("info.ifo",list);

                             }
                           });
    btOK.addActionListener(new ActionListener()
                           {
                             public void actionPerformed(ActionEvent e)
                             {
                               Vector data = new Vector(4);

                               //data.addElement(txtID.getText());
                               data.addElement(txtX.getText());
                               data.addElement(txtY.getText());
                               data.addElement(txtW.getText());
                               data.addElement(txtH.getText());

                               infolist.addOneRow(data);
                             }
                           });
  }

  private Vector readFile(String name)
  {
    Vector data = new Vector();
    try
    {
      FileInputStream filein = new FileInputStream(name);
      DataInputStream in = new DataInputStream(filein);
      int size = in.readInt();
      data = new Vector(size);
      for(int i=0;i<size;i++)
      {
        DataNode datanode = new DataNode();
        datanode.X = in.readInt();
        datanode.Y = in.readInt();
        datanode.W = in.readInt() ;
        datanode.H =in.readInt();

        data.addElement(datanode);

      }

    }catch(Exception e){e.printStackTrace() ;}
    return data;
  }

  private void writeFile(String name,Vector data)
  {
    try
    {
      FileOutputStream fileout = new FileOutputStream(name);
      DataOutputStream out = new DataOutputStream(fileout);

      out.writeInt(data.size());
      for(int i=0;i<data.size();i++)
      {
        //int n = ( (DataNode) (data.elementAt(i))).ID;
        //out.writeInt(n);
        int n = ( (DataNode) (data.elementAt(i))).X;
        out.writeInt(n);
        n = ( (DataNode) (data.elementAt(i))).Y;
        out.writeInt(n);
        n = ( (DataNode) (data.elementAt(i))).W;
        out.writeInt(n);
        n = ( (DataNode) (data.elementAt(i))).H;
        out.writeInt(n);
      }
    }catch(Exception e){}

  }

  /*public int convert(int n)
  {
    byte first = 0;
    byte second = 0;
    byte third = 0;
    byte forth = 0;

    first = n & 0x000f;

  }*/

  //Overridden so we can exit when window is closed
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
  }
}

class DataNode
{
  int ID;
  int X;
  int Y;
  int W;
  int H;

  public DataNode() {}
}

⌨️ 快捷键说明

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