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 itulah sekelumit tutorial hari ini jika ada pertanyaan monggo dikomen