자바 드래그 앤 드롭 작업을 시도하고 있습니다. 액션은 이미지에 대한 경로를 동원하여 작동하지만, 나중에 레이블을 그려 넣으려고하지만 플롯되지 않았습니까? 누군가 도움을받을 수 있습니까?자바 드래그 앤 드롭이 작동하지 않습니다.
class MyDragDropListener implements DropTargetListener {
public void drop(DropTargetDropEvent event) {
// Accept copy drops
event.acceptDrop(DnDConstants.ACTION_COPY);
// Get the transfer which can provide the dropped item data
Transferable transferable = event.getTransferable();
// Get the data formats of the dropped item
DataFlavor[] flavors = transferable.getTransferDataFlavors();
// Loop through the flavors
for (DataFlavor flavor : flavors) {
try {
// If the drop items are files
if (flavor.isFlavorJavaFileListType()) {
// List files = (List) transferable.getTransferData(flavor);
Object f = transferable.getTransferData(flavor);
// Loop them through
// for (File file : files) {
// Print out the file path
// System.out.println("File path is '" + f.getPath() + "'.");
String cesta = f.toString();
String typ = "";
String cesta2 = "";
for (int i = 1; i < cesta.length() - 1; i++) {
if (cesta.charAt(i) == '\\') {
cesta2 = cesta2 + '/';
} else {
cesta2 = cesta2 + cesta.charAt(i);
}
}
for (int i = cesta2.length() - 1; i > 0; i--) {
if (cesta2.charAt(i) == '.') {
break;
}
typ = typ + cesta2.charAt(i);
}
typ = new StringBuilder(typ).reverse().toString().toLowerCase();
MojeOkno mo = new MojeOkno();
// Inform that the drop is complete
mo.VlozObrazekDoLabelu(cesta2);
System.out.println("METODA PROBEHLA");
}
} catch (Exception e) {
// Print out the error stack
e.printStackTrace();
}
}
event.dropComplete(true);
}
public void dragEnter(DropTargetDragEvent event) {
}
public void dragExit(DropTargetEvent event) {
}
public void dragOver(DropTargetDragEvent event) {
}
public void dropActionChanged(DropTargetDragEvent event) {
}
}
public void VlozObrazekDoLabelu(String Mojecesta) {
System.out.println("Cesta k obrazku: " + Mojecesta);
try {
img = ImageIO.read(new File(Mojecesta));
Graphics2D g = (Graphics2D) PanelProObrazek_jPanel1.getGraphics();
g.drawImage(img, 3, 3, PanelProObrazek_jPanel1.getWidth() - 6, PanelProObrazek_jPanel1.getHeight() - 6, this);
System.out.println("Dostal jsem se do try");
} catch (Exception e) {
System.out.println("CHYBA");
}
}
Greetings from Czech Republic.
안녕하세요. 중국에서. 1. [SSCCE] (http://sscce.org/)를 게시하십시오. 2. 영어로 당신의 방법, 매개 변수를 지명하십시오. 해답에 圖 圖像 转换 成标 傑 또는 檔案 路徑을보고 싶지는 않을 것입니다. – johnchen902
SSCCE 란 무엇입니까? 그것은 작동하지 않는다, 나는 당신을 위해 간단한 예 (영어 코멘트와 함께)를 만들었습니다. 전체 자바 파일을 다운로드하려면 다음 링크를 클릭하십시오. [link] (https://mega.co.nz/#!4M4CxS7B!-u6OwiNT3Cw8c8Wk5QFhBF1xs44Mz74i2kXe6Hu5ho) – JaLe29