-->

Membuat progress bar pada Java Swing

Nah berhubung masih fresh dari open, Baru ngajarin orang sekarang ane juga mau kasih sharing ke temen - teman yang lainnya nih.. Ane mau kasih tutor bagaimana cara untuk membuat progress bar yang dapat menampilkan di full pada halaman JFrame. Nah langsung saja untuk membuat itu yang kita butuhkan adalah sebuah JPanel. Buat dengan bantuan Netbean tinggal New JPanel kemudian kasih nama PanelProgress misalnya. Kemudian Drag JProgressBar ke dalam Jpanel kita. Posisikan pada tengah dari panel kita kemudian buat gridbag layout pada panel tersebut..


Nah hasil akhir pada pembuatan bisa dilihat pada gambar di atas selanjutnya adalah pembuatan fungsi fungsi dan cara memakainya. Sebelumnya mari kita buat dulu interface yang nantinya akan digunakan untuk proses listener pada jalannya progress bar.. 


public interface Proses {
 public void lakukan();
 public void akhir();

}
Nah setelah pembuatan interface tersebu, kita tambahkan fungsi satu per satu ke dalam PanelProgress tersebut fungsi fungsi yang ditambahkan adalah  :

    private Proses p;
    private void addProsesListener(Proses p) {
        this.p = p;
    }


    /** Creates new form PanelInput */

    public PanelProgress() {
        initComponents();
        setOpaque(false);
    }



@Override

    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D gd = (Graphics2D) g.create();
        int w = getWidth();
        int h = getHeight();
        gd.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        gd.setColor(new Color(1f, 1f, 1f, 0.6f));
        gd.fillRect(0, 0, w, h);
        gd.dispose();

    }



    public void execute() {
        Task task = new Task();
        task.execute();
    }

//inner class yang dimasukkan ke dalam JPanel

 class Task extends SwingWorker<Object, Object> {

        @Override
        protected Object doInBackground() throws Exception {
            setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
            p.lakukan();
            return null;
        }



        @Override
        protected void done() {
            p.akhir();
            setVisible(false);
            Toolkit.getDefaultToolkit().beep();
            setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
        }
    }

interface status diatas digunakan untuk pembuatan listener yang nantinya method2 tersebut akan di override pada saat penggunaan. Kemudian untuk paintBackground digunakan untuk mengubah sedikit tampilan agar berwarna blur saat dijalankan di atas panel yang lain. Nah kemudian sebuah inner class yang mengextends SwingWorker yang digunakan untuk menjalankan thread sendiri kalau di Android mirip dengan AsyncTask.

Nah untuk menggunakan class tersebut cukup mudah kita tinggal membuat class baru kemudian set mainFrame yang mau kita tambahkan dan tambahkan addProsesListener


   PanelProgress p=new PanelProgress();
        p.addProsesListener(new Proses() {

            @Override
            public void lakukan() {
                    try {
                        Thread.sleep(5000);
                    } catch (InterruptedException ex) {
                        Logger.getLogger(FrameProgress.class.getName()).log(Level.SEVERE, null, ex);
                    }
            }

            @Override
            public void akhir() {
                JOptionPane.showMessageDialog(null, "Tugas telah selesai");
            }

        });
        this.setGlassPane(p);
        this.getGlassPane().setVisible(true);
        p.execute();


Nah hasil akhir yang kita dapatkan adalah sebagai berikut
Nah itulah sekelumit tutorial hari ini jika ada pertanyaan monggo dikomen

Facebook Comments

2 komentar