Olen kiinnostunut oppimaan lisää tiedostojen ohjelmaan vetämisestä mutta netistä löytämien ohjeiden perusteella en ole hirveästi saanut aikaiseksi, siksipä toivonkin täältä apua.
Haluaisin tehdä sovelman johon voidaan vetää kuva jonka se sitten näyttää, onnistun siinä sen kautta että teen JTextAreasta(tai mistä vain) drop targetin jossa on dropTargetListener mikä käyttää hyväkseen lähdessä josta se on tullut, mutta tuo kuulostaa ihme häsläykseltä! Tahtoisin suoraan vedettyä kuvan ohjelman sisään.
miten siis hoidan pudotusten käsittelyn? tässä käyttämäni tapa.
public void drop(DropTargetDropEvent e) {
Transferable t = e.getTransferable();
DataFlavor[] df = t.getTransferDataFlavors();
for(int x = 0; x < df.length; x ){
if(df[x].isFlavorJavaFileListType()){
e.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
try {
System.out.println(t.getTransferData(df[x]));
} catch (UnsupportedFlavorException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
Haluaisin tehdä sovelman johon voidaan vetää kuva jonka se sitten näyttää, onnistun siinä sen kautta että teen JTextAreasta(tai mistä vain) drop targetin jossa on dropTargetListener mikä käyttää hyväkseen lähdessä josta se on tullut, mutta tuo kuulostaa ihme häsläykseltä! Tahtoisin suoraan vedettyä kuvan ohjelman sisään.
miten siis hoidan pudotusten käsittelyn? tässä käyttämäni tapa.
public void drop(DropTargetDropEvent e) {
Transferable t = e.getTransferable();
DataFlavor[] df = t.getTransferDataFlavors();
for(int x = 0; x < df.length; x ){
if(df[x].isFlavorJavaFileListType()){
e.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
try {
System.out.println(t.getTransferData(df[x]));
} catch (UnsupportedFlavorException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
Vastaukset 2
Vanhimmat
minusta se on jo uskomattoman helppoa, että voit vaan sanoa että tämä kyseinen alue voi ottaa vastaan darg&drop kamaa ja että aina kun näin tapahtuu, niin drop() hoitaa homman.
Haluaisin minäkin tehdä world of warcraftin tapaisen pelin vain main() function tekemällä, mutta se on vaikeaa.
http://www.rockhoppertech.com/java-drag-and-drop-faq.html
Eikös tuo ollut nyt jo vähän liioittelua? Tahtoisin vain apua drop()in tapahtuman käsittelyssä, en voi millään ymmärtää miksen saa siitä järkevää kokonaisuutta ettei siihen tulee mitään ihmeen kikkailua, se siis ottaa vastaan aina listan vedetyistä "itemeistä", miten käsitellä niitä? En saa tuosta sivusta mitään irti muutakuin sen mitä tiedän jo. Clipboardin käyttö oli niin yksinkertaista mutta nyt on tullut suuria ognelmia ohjelman yksinkertaistamisessa.