Sunday, February 9, 2020

Buku Tips dan Trik Pemrograman Java-Membuat Aplikasi dengan Fitur Drag and Drop

Buku Tips dan Trik Pemrograman Java-Membuat Aplikasi dengan Fitur Drag and Drop

Sinopsis

Sudah sangat umum fitur drag and drop disematkan kedalam sebuah aplikasi sehingga menyingkat suatu proses, pada java fitur drag and drop (DnD) sangat mudah diterapkan, misalkan kalian akan membuat aplikasi Image Viewer yang berfungsi untuk menampilkan gambar dengan cara Drag and Drop. Aplikasi tersebut dibangun menggunakan component \(JButton\) yang dibungkus dengan \(JScroolPane\)

Buku Tips dan Trik Pemrograman Java-Membuat Aplikasi dengan Fitur Drag and Drop


Buku Tips dan Trik Pemrograman Java-Membuat Aplikasi dengan Fitur Drag and Drop

Pembuatan Method/Function

Setelah kalian menambahkan component diatas beserta desainnya, kalian tinggal menambahkan 1 function/method untuk dimasukan kedalam event listener  \(JButton\). Dibawah ini functionnya yang harus kalian buat.


    private void dragAndDrop(DropTargetDropEvent eventListener)
    {
        try {
                Transferable transfer = eventListener.getTransferable();
                if(transfer.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) {
                    eventListener.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
                    List objects = (List)transfer.getTransferData(DataFlavor.javaFileListFlavor);
                    for(Object object : objects) {
                        if(object instanceof File) {
                            File source = (File)object;
                            File dest = new File(System.getProperty("user.home")+File.separator+source.getName());
                            Files.copy(Paths.get(source.getAbsolutePath()), Paths.get(dest.getAbsolutePath()), StandardCopyOption.REPLACE_EXISTING);
                            //System.out.println("File copied from "+source.getAbsolutePath()+" to "+dest.getAbsolutePath());
                            button1.setText("");
                            button1.setIcon(new ImageIcon(ImageIO.read(new File(dest.getAbsolutePath()))));
                            int tinggi = ImageIO.read(new File(dest.getAbsolutePath())).getHeight();
                            int lebar = ImageIO.read(new File(dest.getAbsolutePath())).getWidth();
                            jLabel1.setText("Tinggi :"+tinggi+" Lebar :"+lebar+" Tipe : "+ImageIO.read(new File(dest.getAbsolutePath())).getType());
                        }else
                        {
                            button1.setText(pesan);
                        }
                    }
                } else if(transfer.isDataFlavorSupported(DataFlavor.stringFlavor)) {
                    eventListener.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
                    String type = (String)transfer.getTransferData(DataFlavor.stringFlavor);
                    //System.err.println("Data flavor not supported: "+type);
                } else {
                   // System.err.println("Data flavor not supported.");
                }
            } catch(UnsupportedFlavorException ex) {
                //System.err.println(ex.getMessage());
            } catch(IOException ex) {
               // System.err.println(ex.getMessage());
            } catch(Exception ex) {
                //System.err.println(ex.getMessage());
            } finally {
                eventListener.dropComplete(true);
            }
    }

Kemudian kalian tambahkan event Listener tersebut di \(JButton\)

Buku Tips dan Trik Pemrograman Java-Membuat Aplikasi dengan Fitur Drag and Drop

    public DragAndDropViewer() {
        initComponents();
         button1.setDropTarget(new DropTarget() {
            @Override
            public void drop(DropTargetDropEvent dtde) {
                dragAndDrop(dtde);
            }
        });
       setTitle("Viewer - www.softscients.web.id");
        
    }

Hasil akhir aplikasi seperti berikut

Buku Tips dan Trik Pemrograman Java-Membuat Aplikasi dengan Fitur Drag and Drop




No comments:

Post a Comment