Java DnD(Drag and Drop)

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();
}
}
}

}
2316
Äänestä

Muut lukivat myös

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

Äänestä
  • 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.

    Äänestä

Kommentoi aloitusta


java-aloittelija-plz kirjoitti:

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();
}
}
}

}

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu