📄 derectpos.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 + -