Belajar Java - Cara Menambahkan Aksi Pada JButton Di Pemrograman Java

Setelah sekian lama saya tidak menulis artikel java, sekarang saya akan membuat tutorial cara menambahkan aksi pada JButton di pemrograman java. Tutorial ini saya buat berdasarkan permintaan dari salah satu teman Facebook dari Timika Papua yang ingin belajar pemrograman java. Berawal dari pembelajaran online mengenai java fundamental atau java dasar dan sekarang sudah sampai ke tahap java swing.

Pada tutorial ini tidak lepas dari pembuatan JFrame, untuk materi pembuat JFrame di Java Netbeans. Silahkan kunjungi Tutorial Cara Membuat JFrame di Java Netbeans.

Pada tutorial java kali ini saya bagi dalam 2(dua) tahap

Tahap Pertama saya akan membuat sebuah tampilan dengan menggunakan JFrame, berikut tampilan yang akan saya buat.

Belajar Java - Cara Menambahkan Aksi Pada JButton Di Pemrograman Java

Untuk membuat tampilan diatas saya menggunakan full coding ( tidak menggunakan drag and drop ), berikut source code untuk membuat tampilan seperti diatas :

package com.communityjava.swing;

import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

/**
 *
 * @author Akira
 */
public class AksiTombol extends JFrame {

    private JTextField jTextField;
    private JButton jButton;
    private JTextArea jTextArea;
    
    public AksiTombol(){
        setTitle("Aksi Tombol");
        setSize(300, 200);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setResizable(false);
        setLocationRelativeTo(null);
        userInterface();
        setVisible(true);
    }

    private void userInterface(){
        JPanel jp = new JPanel(new FlowLayout(FlowLayout.CENTER, 10, 10));
        
        jTextField = new JTextField();
        jTextField.setPreferredSize(new Dimension(250, 30));
        jp.add(jTextField);
        
        jButton = new JButton("Klik Disini");
        jp.add(jButton);
        
        jTextArea = new JTextArea();
        jTextArea.setPreferredSize(new Dimension(250, 60));
        jp.add(jTextArea);
        
        getContentPane().add(jp);
    }
}


Tahap Kedua saya akan menambahkan sebuah aksi pada JButton, ketika saya melakukan klik pada JButton "Klik Disini" maka JTextArea akan menampilkan output seperti yang saya ketikkan di JTextField dan hasil inputan di JTextField akan hilang.

Berikut ini cara untuk menambahkan aksi di JButton menggunakan ActionListener :

Pada baris "public class AksiTombol extends JFrame" tambahkan "implements ActionListener", kemudian buatlah sebuah method seperti berikut :

    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource()==jButton){
            if(jTextField.getText().trim().equals("")){
                JOptionPane.showMessageDialog(null, "Silahkan Isi Text-nya");
            } else {
                jTextArea.setText(jTextField.getText());
                jTextField.setText("");
            }
        }
    }

Penjelasan :
Source code diatas akan melakukan sebuah aksi jika JButton atau Tombol di klik, Jika di JTextField tidak ada karakter yang diinputkan maka akan menampilkan sebuah dialog yang berisikan text "Silahkan Isi Text-nya". Jika JTextField berisi karakter maka hasil inputan tadi akan dijadikan output dari JTextArea dan inputan di JTextField akan dihapuskan.

Jangan lupa tambahkan code dibawah ini tepat dibawah "jButton = new JButton("Klik Disini");" :
jButton.addActionListener(this);

Dibawah ini merupakan source code secara keseluruhannya :

package com.communityjava.swing;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

/**
 *
 * @author Akira
 */
public class AksiTombol extends JFrame implements ActionListener{

    private JTextField jTextField;
    private JButton jButton;
    private JTextArea jTextArea;
    
    public AksiTombol(){
        setTitle("Aksi Tombol");
        setSize(300, 200);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setResizable(false);
        setLocationRelativeTo(null);
        userInterface();
        setVisible(true);
    }

    private void userInterface(){
        JPanel jp = new JPanel(new FlowLayout(FlowLayout.CENTER, 10, 10));
        
        jTextField = new JTextField();
        jTextField.setPreferredSize(new Dimension(250, 30));
        jp.add(jTextField);
        
        jButton = new JButton("Klik Disini");
        jButton.addActionListener(this);
        jp.add(jButton);
        
        jTextArea = new JTextArea();
        jTextArea.setPreferredSize(new Dimension(250, 60));
        jp.add(jTextArea);
        
        getContentPane().add(jp);
    }
    
    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource()==jButton){
            if(jTextField.getText().trim().equals("")){
                JOptionPane.showMessageDialog(null, "Silahkan Isi Text-nya");
            } else {
                jTextArea.setText(jTextField.getText());
                jTextField.setText("");
            }
        }
    }
    
    public static void main(String[] args){
        AksiTombol obj = new AksiTombol();
    }
    
}


Sekian tutorial java tentang cara menambahkan aksi pada JButton dengan menggunakan ActionListener di pemrograman java. Semoga bermanfaat. 

Konsep Dasar Data Warehouse

Data warehouse merupakan fasilitas sistem yang menampung data institusi secara menyeluruh dan menyajikannya kembali untuk berbagai keperluan pelaporan dan analisis data. Tujuan dari pembangunan data warehouse adalah untuk menunjang pengambilan keputusan yang strategis berdasarkan pada analisis data. Ide dasar dari data warehouse adalah untuk mengumpulkan berbagai macam data yang ada pada dan dihasilkan oleh suatu institusi, lalu mentransformasi seluruh data yang ada untuk kepentingan penyajian informasi strategis bagi institusi.

Data Warehouse

Jika kita ambil contoh pada institusi seperti pemerintahan daerah, seringkali kebutuhan penyajian data seperti berikut ini tidak bisa dalam waktu yang singkat segera ditampilkan:
  • Berapa kenaikan/penurunan anggaran pada masing-masing urusan pemerintahan pada 3 tahun terakhir?
  • Berapa kenaikan/penurunan belanja alat tulis kantor pada masing-masing Satuan Kerja pada 3 tahun terakhir?
  • Berapa persen belanja pemeliharaan gedung jika dibandingkan dengan nilai gedung milik Pemerintah Daerah pada tiap tahunnya?
  • Berapa besar pertumbuhan/penurunan pendapatan pajak pada tiap objek pajak pada 3 tahun terakhir?

Database VS Datawere House

Perbandingan Database VS Data Warehouse
Perbandingan Database VS Data Warehouse

Data warehouse bukanlah semacam software atau produk yang bisa dibeli secara langsung dan digunakan di lingkungan institusi untuk mendapatkan informasi strategis. Pembangunan suatu datawarehouse akan sangat tergantung pada kebutuhan pengguna pada suatu institusi dan juga tergantung pada domain data yang dikelola.

Baca Juga : Belajar Database - Pengenalan PostgreSQL

Karakteristik Data Warehouse

  • Diperuntukan bagi analisa data dan penyajian informasi untuk penunjang keputusan stratejik.
  • Sangat ditentukan oleh domain data yang diolah dan kebutuhan pengguna (customized).
  • Meliputi keseluruhan data yang pada suatu institusi, juga memungkinkan menyertakan data dari luar institusi untuk domain data yang sama untuk keperluan perbandingan (benchmark).
  • Menyediakan (lewat pengembangan rancangan) pola-pola data yang kompleks untuk keperluan penyajian informasi yang kompleks dan saling berkaitan.
  • Memiliki metoda khusus untuk akuisisi (pengumpulan) data.
  • Memiliki metoda khusus untuk pembersihan data yang kotor/rusak (data cleansing).
  • Berdasarkan pada pola data dibentuk agregasi data sehingga memenuhi model data yang diperlukan.

Data Warehouse Bukan Sekedar Kumpulan Data

  • Banyak yang memulai dengan pengumpulan data dan diberi istilah integrasi data atau bahkan diberi istilah sebagai data warehouse.
  • Data terkumpul bertahun-tahun tanpa ada rancangan penyimpanan data untuk disajikan kembali menjadi informasi untuk keperluan analisa dan pengambilan keputusan.
  • Ketika data akan dijadikan informasi maka ditemui banyak kendala: kesulitan mengambil informasi yang diinginkan, data terlalu banyak dan perlu waktu lama untuk mendapatkan informasi.

Persiapan Rancangan Data Warehouse

Kebutuhan akan data warehouse timbul dari adanya tuntutan penyajian data lintas tahun secara subjektif, akurat dan cepat. Pengembangan suatu sistem data warehouse dalam suatu institusi harus melalui tahapan-tahapan yang terukur dan dilakukan dengan baik dan akurat. Setidaknya tahapan langkah berikut harus dilakukan untuk mendapatkan hasil berupa pembangunan sistem data warehouse yang sesuai dengan kebutuhan.
  • Mempertimbangkan dan merancang arsitektur data warehouse yang cocok.
  • Memperhitungkan seluruh sumber data yang akan akan menjadi pemasok data ke dalam data warehosue.
  • Merancang perangkat ETL (Extract, Transform, Load) yang sesuai dengan karakter data dan juga sesuai dengan arsitektur sistem data warehouse yang akan dibangun.
  • Merancang data warehouse sebagai sentral dari keseluruhan bagian sistem yang akan dibangun.
  • Merancang kebutuhan penyajian data dan merancang data mart sebagai sub-data-warehouse yang akan menunjang penyajian data secara kontekstual dengan cepat.
Proses Umum Data Warehouse
Proses Umum Data Warehouse

Transformasi Data : ETL

  • Extract merupakan proses pengambilan atau pemisahan data dari sumber data asal. Sumber data ini bisa berupa berbagai macam jenis data yang disimpan dalam berbagai macam jenis teknologi penyimpanan data.
  • Transform meliputi beberapa tahapan proses mulai dari cleansing, pembentukan format ulang data agar sesuai dengan rancangan data warehouse yang telah ditetapkan, pembentukan agregasi agar sesuai dengan subject informasi yang diinginkan dan penetapan konteks varian waktu.
  • Load merupakan proses penyimpanan data yang telah ditransformasi ke dalam teknologi penyimpanan data warehouse seperti suatu sistem manajemen database yang telah dirancang khusus untuk menjadi data warehouse.

Arsitektur Umum Data Warehouse

  • Pemisahan. Arsitektur data ware house harus memisahkan data transaksi dan data analisis. Dalam hal ini secara jelas data warehouse sebagai basis data analisis harus berupa sistem yang terpisah dari sistem transaksional yang memasok data.
  • Skalabilitas. Data warehouse harus bisa diperbesar kapasitasnya secara dinamis sesuai kondisi perkembangan volume data, peningkatan jumlah pengguna, penambahan model data, dan lainnya.
  • Ekstensibilitas. Aristektur data warehouse harus memungkinkan penambahan sumber data, penambahan perangkat analisa, dan semacamnya, secara dinamis tanpa harus membongkar sistem data warehouse yang telah ada.
  • Keamanan. Data warehouse harus memiliki sistem keamanan yang menjamin konsistensi data, perlindungan data dari serangan pihak yang tidak bertanggung jawab, strategi menghadapi bencana alam yang mengakibatkan kerusakan data atau sistem.
  • Mudah Dikelola. Data warehouse harus menyediakan perangkat pengelola sistem yang memudahkan dalam pemeliharaan dan pengelolaan sistem date warehouse.
Arsitektur Umum Data Warehouse

Baca Juga : Arsitektur Big Data

Teknik Implementasi

Lapisan-lapisan abstraksi dari arsitektur data warehouse dapat diimplementasikan dengan teknologi dan cara yang berbeda-beda. Implementasi teknis yang berbeda ini biasanya tergantung pada:
  • Kapasitas dan skala data yang dikelola. Pengelolaan data dalam skala kecil akan menuntut teknik implementasi data warehouse yang lebih sederhana. Sebaliknya, pengelolaan data kelas enterprise yang besar akan menuntut teknik implementasi yang lebih kompleks dikarenakan harus memperhitungkan banyak hal seperti arsitektur sistem database yang tepat untuk mewadahi data yang besar, jaminan akses informasi yang efesien dan cepat.
  • Kompleksitas data juga sangat mempengaruhi bagaimana suatu arstektur data warehouse diimplementasikan. Semakin kompleks dan beragam (memiliki konteks yang luas dan heterogen) data yang dikelola maka rancangan arsitektur data warehouse bisa menjadi lebih kompleks pula. Terutama dalam hal ini adalah dalam lapisan ETL akan memerlukan berbagai macam perangkat atau bahkan juga memerlukan suatu lapisan pendukung seperti lapisan rekonsiliasi data hasil ETL sebelum masuk ke dalam data warehouse.
Implementasi arsitektur data warehouse dalam lingkungan jaringan komputer / sistem informasi yang cukup kompleks. Kompleksitas suatu sistem informasi dikarenakan struktur organisasi yang besar dan, sistem aplikasi yang beragam meliputi berbagai modul dan domain bisnis proses, besarnya volume data transaksional dan letak geografis institusi yang tidak terpusat, melainkan tersebar di berbagai tempat dan lokasi.
Kompleksitas organisasi ini melahirkan sistem informasi yang kompleks pula. Maka pembangunan data warehouse pada lingkungan organisasi seperti demikian mau tidak mau akan memerlukan suatu implementasi arsitektur yang cukup kompleks pula. Gambar di atas memperlihatkan bahwa setiap sumber database transaksional, yang dalam hal ini biasanya berupa modul aplikasi atau suatu domain proses bisnis yang diwakili oleh suatu database, memerlukan perangkat ETL tersendiri yang bisa mengolah data sebelum dimasukan ke dalam data warehouse. Data warehouse sendiri akan berupa server aplikasi tersendiri, yang berdiri sendiri, terpisah dari sistem lainnya. Perangkat ETL akan bisa terkoneksi ke data warehouse lewat jaringan komputer, baik itu berupa private network ataupun internet.

Baca Juga : Pengenalan Big Data

Sekian materi pengenalan tentang data warehouse.

Belajar Database PostgreSQL - Pengenalan function age() di PostgreSQL

Kalian dapat menghitung usia dalam aplikasi bisnis misalnya usia orang, tahun layanan dari karyawan, menghitung berapa lama seorang karyawan telah bekerja, menghitung berapa lama seseorang melakukan peminjaman buku, mobil dll. Di PostgreSQL kalian dapat menggunakan function age() untuk melakukan hal tersebut.

Belajar Database PostgreSQL - Pengenalan function age() di PostgreSQL


Sintak function age() :
Age(timestamp, timestamp); 
Penjelasan :
Function age() menerima dua nilai timestamp. Parameter pertama akan dikurangi dengan parameter kedua dan mengembalikan sebuah interval sebagai hasilnya. 

Perhatikan contoh berikut :
SELECT age('2017-08-05', '1990-07-27'); 
Hasilnya :
27 years 9 days

Jika kalian ingin menggunakan tanggal saat ini untuk parameter pertama, kalian dapat menggunakan function age() sebagai berikut :
Age(timestamp);

Sebagai contoh, jika seseorang yang tanggal lahirnya 1994-07-09 dan hari ini tanggal 2017-08-05, maka penggunaan age() adalah :
SELECT current_date, age(timestamp '1994-07-09'); 
Hasilnya :
date             | age
2017-08-05 | 23 years 27 days

Baca Juga : Contoh Penggunaan JOIN di PostgreSQL

Contoh function age() di PotsgreSQL

Buatlah sebuah tabel sebagai berikut :

Contoh function age() di PotsgreSQL

Misalkan, Kalian ingin mendapatkan 10 data rental teratas yang memiliki waktu pinjam yang lama, kalian dapat menggunakan function age() untuk menghitung sebagai berikut : 

SELECT id, id_pelanggan, age(tanggal_kembali, tanggal_pinjam) AS lama_pinjam
FROM rental
WHERE tanggal_kembali IS NOT NULL
ORDER BY lama_pinjam DESC
LIMIT 10; 

Dalam tutorial ini kalian telah belajar bagaimana menggunakan function age() di PostgreSQL untuk menghitung umur.

Sekian tutorial cara menggunakan function age() di PostgreSQL. Semoga bermanfaat dan silahkan tinggalkan komentar.

Copyrighted.com Registered & Protected 
NQAM-QY22-AIL1-OO4L

Belajar Java - Cara Membuat JTree di Java

Cara Membuat JTree - JTree merupakan komponen java swing yang bisa kalian gunakan untuk menampilkan atau membuat sebuah hirarki data (struktur pohon). Seperti yang biasa kalian lihat ketika membuat windows explorer. JTree merupakan komponen yang sangat komplek, JTree memiliki sebuah root node yang merupakan induk node yang paling atas dari semua node. Sebuah root dapat memiliki beberapa anak node (child node). Sebuah child node dapat memiliki child node lebih lanjut. Jika node tidak memiliki child node maka disebut leaf node.

Belajar Java - Cara Membuat JTree di Java

Baca juga : Cara menambahkan JComboBox pada JTable Java Swing

Contoh source code untuk membuat JTree

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;

/**
 *
 * @author Akira
 */
public class ContohJTree extends JFrame{
    private JTree tree;
    private JScrollPane scroll;
    private DefaultMutableTreeNode root, child;

    public ContohJTree() {
        setTitle("Contoh Membuat JTree");
        setSize(250, 300);
        setResizable(false);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        userGUI();
        setVisible(true);
    }
    
    private void userGUI(){
        root = new DefaultMutableTreeNode("Bahasa Pemrograman");
        
        child = new DefaultMutableTreeNode("Pemrograman Java");
        child.add(new DefaultMutableTreeNode("Java Enterprise"));
        child.add(new DefaultMutableTreeNode("Java Fx"));
        child.add(new DefaultMutableTreeNode("Java Mobile"));
        child.add(new DefaultMutableTreeNode("Java Swing"));
        root.add(child);
        
        tree = new JTree(root);
        scroll = new JScrollPane(tree);
        
        getContentPane().add(scroll);
    }
    
    public static void main(String[] args){
        ContohJTree obj = new ContohJTree();
    }
}

Penjelasan
child = new DefaultMutableTreeNode("Pemrograman Java");
digunakan untuk menambahkan child node pada root.

Baca juga : Cara Melakukan Swing Makeover JButton di Java

Sekian tutorial cara membuat JTree pada pemrograman java. Semoga bermanfaat dan silahkan tinggalkan komentar.

Copyrighted.com Registered & Protected 
NFHR-EVAF-KXQ4-GVLV

Belajar Java - Modul dan Arsitektur Spring Framework

Spring Framework adalah framework aplikasi dan inversi control container untuk platform Java. Fitur inti framework ini dapat digunakan oleh aplikasi Java manapun, namun ada ekstensi untuk membangun aplikasi web di atas platform Java EE (Enterprise Edition).

Modul Spring

Modul Spring. Framework Spring terdiri dari banyak modul seperti core, beans, context, expression language, AOP, Aspects, Instrumentation, JDBC, ORM, OXM, JMS, Transaction, Web, Servlet, Struts dll. Modul-modul ini dikelompokkan ke dalam Test, Core Container, AOP, Aspek, Instrumentasi, Akses Data / Integrasi, Web (MVC / Remoting) seperti yang ditunjukkan pada diagram berikut.

Spring Framework

Test
Lapisan ini memberikan dukungan pengujian dengan JUnit dan TestNG.

Spring core container
Kontainer Spring Core berisi modul inti, kacang, konteks dan bahasa ekspresi (EL).

Core dan bean
Modul ini menyediakan fitur IOC and Dependency Injection.

Context
Modul ini mendukung internasionalisasi (I18N), EJB, JMS, Basic Remoting.

Expression
Ini adalah ekstensi untuk EL yang didefinisikan dalam JSP. Ini memberikan dukungan untuk menetapkan dan mendapatkan nilai properti, pemanggilan metode, mengakses koleksi dan pengindeks, variabel bernama, operator logika dan aritmatika, pengambilan objek dengan nama dll.

AOP, Aspek dan Instrumentasi
Modul-modul ini mendukung implementasi pemrograman berorientasi aspek di mana Anda dapat menggunakan Saran, Pointer dll untuk memisahkan kode.
Modul aspek memberikan dukungan untuk integrasi dengan AspectJ.
Modul instrumentasi memberikan dukungan pada instrumentasi kelas dan implementasi classloader.

Akses Data / Integrasi
Kelompok ini terdiri dari modul JDBC, ORM, OXM, JMS dan Transaction. Modul ini pada dasarnya memberikan dukungan untuk berinteraksi dengan database.

Web
Kelompok ini terdiri dari Web, Web-Servlet, Web-Struts dan Web-Portlet. Modul ini memberikan dukungan untuk membuat aplikasi web.

Spring Arsitektur

Framework Spring adalah arsitektur berlapis yang terdiri dari beberapa modul. Semua modul dibangun di atas wadah core-nya. Modul ini menyediakan segala sesuatu yang mungkin dibutuhkan pengembang untuk digunakan dalam pengembangan aplikasi enterprise. Dia selalu bebas memilih fitur apa yang dia butuhkan dan menghilangkan modul yang tidak berguna. Arsitektur modular memungkinkan integrasi dengan framework lain tanpa banyak kerumitan.

The Core Module: Menyediakan fitur Dependency Injection (DI) yang merupakan konsep dasar dari framework Spring. Modul ini berisi BeanFactory, sebuah implementasi Pola Pabrik yang menciptakan bean sesuai konfigurasi yang disediakan oleh pengembang dalam file XML.

Modul AOP: Modul Pemrograman Berorientasi Aspek memungkinkan pengembang untuk menentukan metode-pencegat dan pemotongan titik untuk menjaga agar tetap terpisahkan. Ini dikonfigurasi pada run time sehingga langkah kompilasi dilewati. Ini bertujuan untuk manajemen transaksi deklaratif yang lebih mudah dipelihara.

Modul DAO: Ini menyediakan lapisan abstraksi ke tugas tingkat rendah untuk menciptakan koneksi, melepaskannya dan lain-lain. Ini juga menjaga hierarki pengecualian yang berarti daripada melemparkan kode kesalahan rumit dari vendor database tertentu. Menggunakan AOP untuk mengelola transaksi. Transaksi juga bisa dikelola secara terprogram.

ORM Module: Spring tidak menyediakan implementasi ORM sendiri namun menawarkan integrasi dengan alat pemetaan Objek Objek yang populer seperti Hibernate, iBATIS SQL Maps, Oracle TopLink dan JPA dll.

Modul JEE: Ini juga memberikan dukungan untuk JMX, JCA, EJB dan JMS dll. Dalam banyak kasus, JCA (Java EE Connection API) sangat mirip dengan JDBC, kecuali JDBC berfokus pada database JCA yang berfokus pada koneksi ke sistem warisan.

Modul Web: Spring hadir dengan kerangka kerja MVC yang memudahkan tugas mengembangkan aplikasi web. Ini juga terintegrasi dengan baik dengan kerangka kerja MVC yang paling populer seperti Struts, Tapestry, JSF, Wicket dll.

Copyrighted.com Registered & Protected 
RWNP-9EUP-JHJ3-IQNN

Belajar Java - Cara Membuat Splash Screen di Java Programming

Cara Membuat Splash Screen - Splash Screen adalah tampilan loading pertama kali ketika sebuah aplikasi dibuka/dijalankan, agar terlihat lebih menarik dan terkesan profesional. Biasanya Splash Screen ini dibuat untuk menampilkan logo dari aplikasi atau logo perusahaan.

Belajar Java - Cara Membuat Splash Screen di Java Programming

Baca Juga : Cara Menambahkan JCalendar atau JDatechooser di Java Swing

Tahapan untuk membuat splash screen sebagai berikut :

1. Buat sebuah class turunan dari JPanel untuk menempatkan gambar yang akan dijadikan splash screen.
Berikut source code-nya :

import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JPanel;

/**
 *
 * @author Akira
 */
public class ImageSplash extends JPanel{
    private Image image;

    public ImageSplash() {
        image = new ImageIcon(getClass().getResource("../images/Splash.png")).getImage();
        this.setLayout(new BorderLayout());
    }
    
    @Override
    protected void paintComponent(Graphics g){
 super.paintComponent(g);
 Graphics2D gd=(Graphics2D)g.create();
 gd.drawImage(image,0,0,getWidth(),getHeight(),null);
 gd.dispose();
    }
}

Catatan :
image = new ImageIcon(getClass().getResource("../images/Splash.png")).getImage(); Digunakan untuk menambahkan image atau gambar. Sesuaikan URL-nya dengan gambar atau image yang akan kalian gunakan untuk membuat splash screen.

Baca Juga : Cara Menambahkan Background Image pada JPanel di Java Swing

2. Buat sebuah class untuk membuat tampilan utama (menggabungkan class ImageSplash dengan JProgressBar).
Berikut source code-nya :

import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JWindow;

/**
 *
 * @author Akira
 */
public class ContohSplashScreen extends JWindow{
    private int duration;
    private JProgressBar progress;
    private ImageSplash panel;
    private JPanel p_bar;

    public ContohSplashScreen(int d){
        duration = d;
        setSize(500, 300);
        setLocationRelativeTo(null);
    }
    
    public void showSplash(){
        panel = new ImageSplash();
        
        p_bar = new JPanel(new FlowLayout(FlowLayout.CENTER, 10,40));
        p_bar.setOpaque(false);

        progress = new JProgressBar(0, 100);
        progress.setStringPainted(true);
        progress.setPreferredSize(new Dimension(getWidth()-10, 15));
        progress.setForeground(Color.red);
        progress.setVisible(true);
        p_bar.add(progress);

        panel.add(p_bar, "South");
        getContentPane().add(panel, "Center");

        setVisible(true);
        
        for (int i = 0; i < 100; i++) {
            try {
                progress.setValue(i);
                Thread.sleep(duration); 
            } catch (Exception e) {
                e.getMessage();
            }
        }
        setVisible(false);
    }

    public void showSplashAndExit(){
        showSplash();
        dispose();
    }
    
    public static void main(String []args){
        ContohSplashScreen obj = new ContohSplashScreen(100);
        obj.showSplashAndExit();
    }
}

Sekian tutorial cara membuat splash screen di java programming. Semoga bermanfaat dan silahkan tinggalkan komentar.

Copyrighted.com Registered & Protected 
BEOY-MPM1-VNKC-0W5C

Java 8 Tutorial - Belajar Java 8 Default Methods

Java 8 Tutorial Default Methods - Java 8 memperkenalkan konsep baru implementasi default method pada interface. Kemampuan ini ditambahkan untuk kompatibilitas sehingga interface yang lama dapat digunakan untuk memanfaatkan kemampuan lambda expression di Java 8. Misalnya, interface 'List' atau 'Collection' tidak memiliki deklarasi method 'forEach'. Dengan demikian, menambahkan method seperti itu hanya akan mematahkan implementasi Collection. Java 8 memperkenalkan default method sehingga interface List atau Collection dapat memiliki implementasi default untuk method forEach, dan java class yang mengimplementasikan interface ini tidak perlu menerapkan hal yang sama.

Java 8 Tutorial - Belajar Java 8 Default Methods

Baca Juga : Java 8 Tutorial - Belajar Java 8 Method Referance

Sintak

public interface Hikaru {
   default void print(){
      System.out.println("Saya Hikaru");
   }
}

Multiple Default

Dengan fungsi default dalam interface, ada kemungkinan class menerapkan dua interface dengan default method yang sama. Source code berikut menjelaskan bagaimana ambiguitas (sebuah class yang menerapkan 2 buah interface) ini dapat diatasi.

public interface Hikaru {
   default void print(){
      System.out.println("Saya Hikaru");
   }
}

public interface Pelajar {
   default void print(){
      System.out.println("Saya Seorang Pelajar");
   }
}

Solusi pertama adalah membuat method sendiri yang menggantikan implementasi default.

public class Job implements Hikaru, Pelajar {
   default void print(){
      System.out.println("Saya Hikaru Seorang Pelajar");
   }
}

Solusi kedua adalah memanggil default method dari interface yang ditentukan menggunakan super.

public class Job implements hikaru, pelajar {
   default void print(){
      Hikaru.super.print();
   }
}

Baca Juga : Java 8 Tutorial - Belajar Java 8 Functional Interface


Default Method Static

Mari kita lihat contoh penggunaan default method untuk lebih jelasnya.

public class Java8Tester {
   public static void main(String args[]){
      Hikaru hikaru = new Job();
      hikaru.print();
   }
}

interface Hikaru {
   default void print(){
      System.out.println("Saya Hikaru");
   }
}

interface Pelajar {
   default void print(){
      System.out.println("Saya Seorang Pelajar");
   }
}

class Job implements Hikaru, Pelajar {
   public void print(){
      Hikaru.super.print();
      Pelajar.super.print();
      System.out.println("Saya Memiliki Sebuah Mobil");
   }
}

Sekian tutorial java programming mengenai default method di java 8. Semoga bermanfaat dan silahkan tinggalkan komentar.

Copyrighted.com Registered & Protected 
IHKY-DDAG-WL10-OWHH