figureselection.java
来自「开源(Open Source)项目JHotDraw的文档和源程序」· Java 代码 · 共 81 行
JAVA
81 行
/*
* @(#)FigureSelection.java 5.2
*
*/
package CH.ifa.draw.framework;
import CH.ifa.draw.util.*;
import java.util.*;
import java.io.*;
/**
* FigureSelection enables to transfer the selected figures
* to a clipboard.<p>
* Will soon be converted to the JDK 1.1 Transferable interface.
*
* @see Clipboard
*/
public class FigureSelection extends Object {
private byte[] fData; // flattend figures, ready to be resurrected
/**
* The type identifier of the selection.
*/
public final static String TYPE = "CH.ifa.draw.Figures";
/**
* Constructes the Figure selection for the vector of figures.
*/
public FigureSelection(Vector figures) {
// a FigureSelection is represented as a flattened ByteStream
// of figures.
ByteArrayOutputStream output = new ByteArrayOutputStream(200);
StorableOutput writer = new StorableOutput(output);
writer.writeInt(figures.size());
Enumeration selected = figures.elements();
while (selected.hasMoreElements()) {
Figure figure = (Figure) selected.nextElement();
writer.writeStorable(figure);
}
writer.close();
fData = output.toByteArray();
}
/**
* Gets the type of the selection.
*/
public String getType() {
return TYPE;
}
/**
* Gets the data of the selection. The result is returned
* as a Vector of Figures.
*
* @return a copy of the figure selection.
*/
public Object getData(String type) {
if (type.equals(TYPE)) {
InputStream input = new ByteArrayInputStream(fData);
Vector result = new Vector(10);
StorableInput reader = new StorableInput(input);
int numRead = 0;
try {
int count = reader.readInt();
while (numRead < count) {
Figure newFigure = (Figure) reader.readStorable();
result.addElement(newFigure);
numRead++;
}
} catch (IOException e) {
System.out.println(e.toString());
}
return result;
}
return null;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?