[Pemrograman]Memasukan background gambar di JFrame


Hello ,hello selamat malam berjumpa lagi dengan saya anugrah bagus susilo sang empunya newbieilmu
kemarin siang ada yang chatting sama saya,gimana sih mas cara memasukan gambar di JFrame di java nah kebetulan kali ini ada waktu buat posting maka akan saya share ilmu yang sedikit ini
disini sebagai contoh saya membuat form entry barang berikut tampilan layarnya

nah disitu terlihat jelas kalo ada images/gambar sebagai backgroundnya ,sebenernya sangat mudah sekali hanya yang perlu di perhatikan adalah letak penempatan JLabel nya dideklarasikan paling akhir .
kalo belum mafhum silahkan perhatikan coding dari form entry barang yang saya buat tadi


package sistempenjualan;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.sql.*;
import com.jtattoo.plaf.acryl.AcrylLookAndFeel; //look and feel

@anugrah bagus susilo - newbieilmu 

public class EntryBarang extends JFrame implements ActionListener,MouseListener
{

	Dimension Layar = Toolkit.getDefaultToolkit().getScreenSize();
	private JLabel lblKdBarang = new JLabel("Kode Barang");
	private JTextField txtKdBarang = new JTextField(20);
	private JLabel lblNmBarang = new JLabel("Nama Barang");
	private JTextField txtNmBarang = new JTextField(20);
	private JLabel lblJnsBarang = new JLabel("Jenis Barang");
	private JTextField txtJnsBarang = new JTextField(20);
	private JLabel lblSatuan = new JLabel("Satuan");
	private JTextField txtSatuan = new JTextField(20);
	private JLabel lblHrgSatuan = new JLabel("Harga Satuan");
	private JTextField txtHrgSatuan = new JTextField(20);
	private JLabel lblJmlhStok = new JLabel("Jumlah Stok");
	private JTextField txtJmlhStok = new JTextField(20);
	private Color color = Color.WHITE;

	private JButton btnBaru = new JButton("Baru");
	private JButton btnUbah = new JButton("Ubah");
	private JButton btnHapus = new JButton("Hapus");
	private JButton btnBersih = new JButton("Bersih");
	private JButton btnKeluar = new JButton("Keluar");

        //deklarasi background
	private JLabel lbljpg = new JLabel(new ImageIcon("src/sistempenjualan/image/plg2.jpg"));

	private String[] strJdl = {"Kd_Barang","Nm_Barang","Jns_Barang","Satuan","Hrg_Satuan","Jmlh_Stok "};
	DefaultTableModel tabModel;
	private JTable tblBarang = new JTable();
	private JScrollPane scrTabel = new JScrollPane();

	public EntryBarang(){
	setTitle("Entry Barang");
	setIconImage(getToolkit().getImage(""));
	setSize(550,520);
	setVisible(true);
	getContentPane().setLayout(null);
	getContentPane().setBackground(color);
	setLocation(Layar.height/2-getHeight()/2,Layar.width/2-getWidth()/2);
	setLocationRelativeTo(null);

	tabModel = new DefaultTableModel(null,strJdl);
	tblBarang.setModel(tabModel);
	scrTabel.getViewport().add(tblBarang);
	tblBarang.setEnabled(true);

	lblKdBarang.setForeground(Color.WHITE);
	lblNmBarang.setForeground(Color.WHITE);
	lblJnsBarang.setForeground(Color.WHITE);
	lblSatuan.setForeground(Color.WHITE);
	lblHrgSatuan.setForeground(Color.WHITE);
	lblJmlhStok.setForeground(Color.WHITE);
	btnBaru.setForeground(Color.BLACK);
	btnUbah.setForeground(Color.BLACK);
	btnHapus.setForeground(Color.BLACK);
	btnBersih.setForeground(Color.BLACK);
	btnKeluar.setForeground(Color.BLACK);

	lblKdBarang.setBounds(10, 20, 120, 20);
	txtKdBarang.setBounds(120, 20, 120, 20);
	lblNmBarang.setBounds(10, 50, 120, 20);
	txtNmBarang.setBounds(120, 50, 120, 20);
	lblJnsBarang.setBounds(10, 80, 120, 20);
	txtJnsBarang.setBounds(120, 80, 120, 20);
	lblSatuan.setBounds(10, 110, 120, 20);
	txtSatuan.setBounds(120, 110, 120, 20);
	lblHrgSatuan.setBounds(10, 140, 120, 20);
	txtHrgSatuan.setBounds(120, 140, 120, 20);
	lblJmlhStok.setBounds(10, 170, 120, 20);
	txtJmlhStok.setBounds(120, 170, 120, 20);

	btnBaru.setBounds(10, 200, 100, 30);
	btnUbah.setBounds(100, 200, 100, 30);
	btnHapus.setBounds(190, 200, 100, 30);
	btnBersih.setBounds(280, 200,100,30);
	btnKeluar.setBounds(370, 200, 100, 30);  

	scrTabel.setBounds(10, 240, 480, 160);

	lbljpg.setBounds(0,0,550,500); //setting jlabel image berada di baris paling akhir

	txtKdBarang.addActionListener(this);
	btnBaru.addActionListener(this);
	btnUbah.addActionListener(this);
	btnHapus.addActionListener(this);
	btnBersih.addActionListener(this);
	btnKeluar.addActionListener(this);
	tblBarang.addMouseListener(this);

	getContentPane().add(lblKdBarang);
	getContentPane().add(txtKdBarang);
	getContentPane().add(lblNmBarang);
	getContentPane().add(txtNmBarang);
	getContentPane().add(lblJnsBarang);
	getContentPane().add(txtJnsBarang);
	getContentPane().add(lblSatuan);
	getContentPane().add(txtSatuan);
	getContentPane().add(lblHrgSatuan);
	getContentPane().add(txtHrgSatuan);
	getContentPane().add(lblJmlhStok);
	getContentPane().add(txtJmlhStok);

	getContentPane().add(scrTabel);

	getContentPane().add(btnBaru);
	getContentPane().add(btnUbah);
	getContentPane().add(btnBersih);
	getContentPane().add(btnHapus);
	getContentPane().add(btnKeluar);
	getContentPane().add(lbljpg); //penempatan container jlabel image berada di baris paling akhir

	TampilTabel();
	//nonAktif();
	}

		@Override
		public void actionPerformed(ActionEvent arg0) {
			if(arg0.getSource() == txtKdBarang)
			{
				cariBarang();
			}
			if(arg0.getSource() == btnBaru)
			{
				tambahBarang();
			}
			if(arg0.getSource() == btnUbah)
			{
				ubahBarang();
			}
			if(arg0.getSource()== btnHapus)
			{
				hapusBarang();
			}
			if(arg0.getSource() == btnBersih){
				bersihkan();
			}
			if(arg0.getSource()== btnKeluar)
			{
				if(JOptionPane.showConfirmDialog(null, "Yakin ingin keluar",
						"Konfirmasi",JOptionPane.OK_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE)
						== JOptionPane.OK_OPTION)
				{
					System.exit(0);
				}
			}
			}

		public void nonAktif(){
			txtNmBarang.setEnabled(false);
			txtJnsBarang.setEnabled(false);
			txtSatuan.setEnabled(false);
			txtHrgSatuan.setEnabled(false);
			txtJmlhStok.setEnabled(false);
		}

		public void cariBarang(){
			try{
			Class.forName("com.mysql.jdbc.Driver").newInstance();
			Connection con = DriverManager.getConnection("jdbc:mysql://localhost/penjualan", "root", "root");
			Statement state = con.createStatement();
			String sql = "select * from barang where KdBarang='"+txtKdBarang.getText()+"' ";
			ResultSet rs = state.executeQuery(sql);
			if(rs.next()){
				txtNmBarang.setText(rs.getString(2));
				txtJnsBarang.setText(rs.getString(3));
				txtSatuan.setText(rs.getString(4));
				txtHrgSatuan.setText(rs.getString(5));
				txtJmlhStok.setText(rs.getString(6));
			}
				rs.close();
				con.close();
				//nonAktif();
			}
			catch(Exception ec){
				JOptionPane.showConfirmDialog(null,"data di tidak temukan");
			}
		}

		public void tambahBarang(){
			try{
				Class.forName("com.mysql.jdbc.Driver").newInstance();
				Connection con = DriverManager.getConnection("jdbc:mysql://localhost/penjualan", "root", "root");
				Statement st = con.createStatement();
				String sql = "insert into barang values('"+txtKdBarang.getText()+
						"','"+txtNmBarang.getText()+
						"','"+txtJnsBarang.getText()+
						"','"+txtSatuan.getText()+
						"','"+txtHrgSatuan.getText()+
						"','"+txtJmlhStok.getText()+
						"')";
				int hasil = st.executeUpdate(sql);
				if(hasil>0)
				{
					JOptionPane.showMessageDialog(null,"Data Berhasil Ditambahkan","Pesan",JOptionPane.INFORMATION_MESSAGE);
				}

				con.close();
				TampilTabel();
				bersihkan();
				}
				catch(Exception ex){
					JOptionPane.showMessageDialog(null, "Database tidak masuk");
			}
		}

		public void ubahBarang(){
		try{
			Class.forName("com.mysql.jdbc.Driver").newInstance();
			Connection con = DriverManager.getConnection("jdbc:mysql://localhost/penjualan", "root", "root");
			Statement state = con.createStatement();
			String sql = "update barang set Nmbarang='"+txtNmBarang.getText()+
					"',JnsBarang='"+txtJnsBarang.getText()+
					"',Satuan='"+txtSatuan.getText()+
					"',HrgSatuan='"+txtHrgSatuan.getText()+
					"',JmlhStok='"+txtJmlhStok.getText()+
					"' where KdBarang='"+txtKdBarang.getText()+"' ";
			int Hasil = state.executeUpdate(sql);
			if(Hasil==1){
				JOptionPane.showMessageDialog(null, "Data berhasil di ubah");
			}
			con.close();
			TampilTabel();
		}
		catch(Exception ex){
			JOptionPane.showMessageDialog(null, "Data gagal di ubah");
		}
		}

		public void hapusBarang(){
			try{
				Class.forName("com.mysql.jdbc.Driver").newInstance();
				Connection con = DriverManager.getConnection("jdbc:mysql://localhost/penjualan","root", "root");
				Statement state = con.createStatement();
				String sql = "delete from barang where KdBarang='"+txtKdBarang.getText()+"' ";
				int Hasil = state.executeUpdate(sql);
				if(Hasil==1){
					JOptionPane.showMessageDialog(null, "data berhasil di hapus");
					bersihkan();
					con.close();
					TampilTabel();
				}
			}
			catch(Exception ex){
				JOptionPane.showMessageDialog(null, "data gagal di hapus");
			}
		}

		public void bersihkan(){
			txtKdBarang.setText("");
			txtNmBarang.setText("");
			txtJnsBarang.setText("");
			txtSatuan.setText("");
			txtHrgSatuan.setText("");
			txtJmlhStok.setText("");
			txtKdBarang.requestFocus(true);
			TampilTabel();
		}

		public void TampilTabel(){
			try{
				hapusTabel();
				Class.forName("com.mysql.jdbc.Driver").newInstance();
				Connection con = DriverManager.getConnection("jdbc:mysql://localhost/penjualan","root", "root");
				Statement state = con.createStatement();
				String sql = "select * from barang";
				ResultSet rs = state.executeQuery(sql);
				while(rs.next()){
					String KdBarang = rs.getString(1);
					String NmBarang = rs.getString(2);
					String JnsBarang = rs.getString(3);
					String Satuan = rs.getString(4);
					String HrgSatuan = rs.getString(5);
					String JmlhStok = rs.getString(6);
					String[] data = {KdBarang,NmBarang,JnsBarang,Satuan,HrgSatuan,JmlhStok};
					tabModel.addRow(data);
				}
				rs.close();
				con.close();
			}
			catch(Exception ex){
				JOptionPane.showMessageDialog(null,"tidak tampil ke table");
			}
		}

		public void hapusTabel(){
			int brs = tabModel.getRowCount();
			for(int i=0;i<brs;i++){
				tabModel.removeRow(0);
			}
		}

		public void getdataBarang(){
			txtKdBarang.setText(""+tabModel.getValueAt(tblBarang.getSelectedRow(),0));
			txtNmBarang.setText(""+tabModel.getValueAt(tblBarang.getSelectedRow(),1));
			txtJnsBarang.setText(""+tabModel.getValueAt(tblBarang.getSelectedRow(),2));
			txtSatuan.setText(""+tabModel.getValueAt(tblBarang.getSelectedRow(),3));
			txtHrgSatuan.setText(""+tabModel.getValueAt(tblBarang.getSelectedRow(),4));
			txtJmlhStok.setText(""+tabModel.getValueAt(tblBarang.getSelectedRow(),5));
			cariBarang();
			//nonAktif();
		}

		@Override
		public void mouseClicked(MouseEvent arg0) {
			// TODO Auto-generated method stub
			getdataBarang();
		}

		@Override
		public void mouseEntered(MouseEvent arg0) {
			// TODO Auto-generated method stub

		}

		@Override
		public void mouseExited(MouseEvent arg0) {
			// TODO Auto-generated method stub

		}

		@Override
		public void mousePressed(MouseEvent arg0) {
			// TODO Auto-generated method stub

		}

		@Override
		public void mouseReleased(MouseEvent arg0) {
			// TODO Auto-generated method stub

		}

		public static void main(String[] args) {
			try{

				UIManager.setLookAndFeel(new AcrylLookAndFeel());
				}
			catch (UnsupportedLookAndFeelException e){
		//handle exception
				}
				new EntryBarang();
		}
}		

nah begitu sedikit ilmu yang saya peroleh,bagi yang mempunyai permasalahan yang berkenaan dengan ini silahkan di pahami dan bagi yang merasa mempunyai cara yang lebih baik silahkan tinggalkan komentar di bawah ini πŸ™‚
semoga bermanfaat bagi para newbie dalam belajar java termasuk saya πŸ™‚

CEO & Founder Newbie Ilmu

Anugrah Bagus Susilo

Satu pemikiran pada “[Pemrograman]Memasukan background gambar di JFrame

  1. mas, kalo saya mau masukin 2 label di jframe yg sama kok ketimpa ya? gmn caranya supaya rapi mas antara label1 dan label 2? (labelnya gambar)

Tinggalkan komentar