Kesan : selama perkuliahan ini berjalan sampai dengan sekarang, saya merasa nyaman dalam sistem pembelajarannya, khususnya untuk matakuliah pemograman vsual ini. mungkin karena pembawaan pengajarannya yang memudahkan kita untuk bisa mengerti dan sersan(serius tapi santai).
Pesan : kalau bisa di tambah asdos biar bapanya g kewalahan, tugas-tugasnya di kurangin yaa pa. hehhe
Selama saya kuliah di POLITEKNIK TELKOM saya menjalani karena ini kampus dan jurusan yang saya pilih, tapi saya kurang medukung dengan adanya sistem pebelajaran sekarang, apalagi yang sistem yang sekarang masih percoban.
terimakasih......
Pemograman Visual
Minggu, 04 Desember 2011
komponen swing (container, panel, dialog)
Container : Merupakan komponen khusus yang berguna untuk menampung komponen GUI lainya.
Dialog : Merupakan jenis dari swing windows
CONTOH CODING MENGGUNAKAN KOMPONEN SWING
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.*;
public class Form extends JInternalFrame { // pewarisan dari JFrame untuk digunakan di class Form
public Form() {
public Form() {
super(“FORM ANGGOTA”, true, true, true,true);
// PEMBUATAN OBJEK
JPanel panel1 = new JPanel(); // pembuatan panel 1
JPanel panel2 = new JPanel(); // pembuatan panel 1
JPanel panel2 = new JPanel(); // pembuatan panel 1
Container con = this.getContentPane(); // pembuatan ontainer
// Membuat objek option button baru
final JRadioButton rbAnggota1 = new JRadioButton(“Anggota Satu”);
final JRadioButton rbAnggota2 = new JRadioButton(“Anggota Dua”);
final JRadioButton rbAnggota3 = new JRadioButton(“Anggota Tiga”);
final JRadioButton rbAnggota4 = new JRadioButton(“Anggota Empat”);
final JRadioButton rbAnggota1 = new JRadioButton(“Anggota Satu”);
final JRadioButton rbAnggota2 = new JRadioButton(“Anggota Dua”);
final JRadioButton rbAnggota3 = new JRadioButton(“Anggota Tiga”);
final JRadioButton rbAnggota4 = new JRadioButton(“Anggota Empat”);
//Membuat button group
ButtonGroup radioBgroup = new ButtonGroup();
ButtonGroup radioBgroup = new ButtonGroup();
// Membuat label
JLabel lblNIM=new JLabel(“NIM “);
final JLabel lblNama =new JLabel(“Nama “);
final JLabel lblJK =new JLabel(“Jenis Kelamin “);
JLabel lblNIM=new JLabel(“NIM “);
final JLabel lblNama =new JLabel(“Nama “);
final JLabel lblJK =new JLabel(“Jenis Kelamin “);
// Membuat text field
final JTextField txtNIM=new JTextField(5);
final JTextField txtNama=new JTextField(5);
final JTextField txtJK=new JTextField(5);
final JTextField txtNIM=new JTextField(5);
final JTextField txtNama=new JTextField(5);
final JTextField txtJK=new JTextField(5);
final JButton cmdTampil=new JButton(“Tampil”);
final JButton cmdKosong=new JButton(“Kosongkan”);
final JButton cmdExit=new JButton(“Keluar”);
final JButton cmdKosong=new JButton(“Kosongkan”);
final JButton cmdExit=new JButton(“Keluar”);
// konfigurasi layout
con.setLayout(new GridLayout(1,2)); //
panel1.setLayout(new GridLayout(3,3,2,5));
panel2.setLayout(new GridLayout(6,3,2,5));
panel1.setBorder(BorderFactory.createTitledBorder(“Anggota”));
panel2.setBorder(BorderFactory.createTitledBorder(“Data”));
panel2.setLayout(new GridLayout(6,3,2,5));
panel1.setBorder(BorderFactory.createTitledBorder(“Anggota”));
panel2.setBorder(BorderFactory.createTitledBorder(“Data”));
// menambahkan panel ke window
con.add(panel1);
con.add(panel2);
con.add(panel2);
// mendaftarkan radio button sebagai group
radioBgroup.add(rbAnggota1);
radioBgroup.add(rbAnggota2);
radioBgroup.add(rbAnggota3);
radioBgroup.add(rbAnggota4);
radioBgroup.add(rbAnggota1);
radioBgroup.add(rbAnggota2);
radioBgroup.add(rbAnggota3);
radioBgroup.add(rbAnggota4);
// menambahkan objek ke dalam panel 1
panel1.add(rbAnggota1);
panel1.add(rbAnggota2);
panel1.add(rbAnggota3);
panel1.add(rbAnggota4);
panel1.add(rbAnggota1);
panel1.add(rbAnggota2);
panel1.add(rbAnggota3);
panel1.add(rbAnggota4);
// menambahkan objek ke dalam panel 2
panel2.add(lblNIM);
panel2.add(txtNIM);
panel2.add(lblNama);
panel2.add(txtNama);
panel2.add(lblJK);
panel2.add(txtJK);
panel2.add(cmdTampil);
panel2.add(cmdKosong);
panel2.add(cmdExit);
panel2.add(lblNIM);
panel2.add(txtNIM);
panel2.add(lblNama);
panel2.add(txtNama);
panel2.add(lblJK);
panel2.add(txtJK);
panel2.add(cmdTampil);
panel2.add(cmdKosong);
panel2.add(cmdExit);
// memberikan even handling kepada command button
cmdTampil.addActionListener(new ActionListener( ) {
public void actionPerformed(ActionEvent ae) {
if (rbAnggota1.isSelected()){
txtNIM.setText(“07.11.1382″);
txtNama.setText(“Syarief Hidayatulloh”);
txtJK.setText(“laki – laki”);
}
if (rbAnggota2.isSelected()){
txtNIM.setText(“07.11.1356″);
txtNama.setText(“Arif W Nugroho”);
txtJK.setText(“laki – laki”);
}
if (rbAnggota3.isSelected()){
txtNIM.setText(“07.11.1420″);
txtNama.setText(“Galuh Ristyanto”);
txtJK.setText(“laki – laki”);
}
if (rbAnggota4.isSelected()){
txtNIM.setText(“07.11.1385″);
txtNama.setText(“Yuni Ardita Sari Dewi “);
txtJK.setText(“Perempuan”);
}
public void actionPerformed(ActionEvent ae) {
if (rbAnggota1.isSelected()){
txtNIM.setText(“07.11.1382″);
txtNama.setText(“Syarief Hidayatulloh”);
txtJK.setText(“laki – laki”);
}
if (rbAnggota2.isSelected()){
txtNIM.setText(“07.11.1356″);
txtNama.setText(“Arif W Nugroho”);
txtJK.setText(“laki – laki”);
}
if (rbAnggota3.isSelected()){
txtNIM.setText(“07.11.1420″);
txtNama.setText(“Galuh Ristyanto”);
txtJK.setText(“laki – laki”);
}
if (rbAnggota4.isSelected()){
txtNIM.setText(“07.11.1385″);
txtNama.setText(“Yuni Ardita Sari Dewi “);
txtJK.setText(“Perempuan”);
}
}
});
cmdKosong.addActionListener(new ActionListener( ) {
public void actionPerformed(ActionEvent ae) {
txtNIM.setText(” “);
txtNama.setText(” “);
txtJK.setText(” “);
public void actionPerformed(ActionEvent ae) {
txtNIM.setText(” “);
txtNama.setText(” “);
txtJK.setText(” “);
}
});
});
cmdExit.addActionListener(new ActionListener( ) {
public void actionPerformed(ActionEvent ae) {
public void actionPerformed(ActionEvent ae) {
System.exit(0);
}
});
}
});
// menampilkan window
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocation(40,120);
this.setSize(520,230);
this.setVisible(true);
}
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocation(40,120);
this.setSize(520,230);
this.setVisible(true);
}
}
layout manager (border layout, flow layout, card layout, box layout, grid layout, gridbag layout)
BorderLayout
- menyusun komponen berdasarkan lokasi geografis: NORTH, SOUTH, EAST, WEST, and CENTER.
- Secara optional, kita dapat juga memberikan padding di antara komponen.
- BorderLayout merupakan layout default untuk JWindow dan JFrame.
- Karena setiap komponen diasosiasikan dengan suatu arah geografis, akibatnya layout ini hanya dapat menangani maksimal 5 komponen.
CONTOH CODING BorderLayout:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class BorderLayoutApp1 extends JFrame {
public BorderLayoutApp1( ) {
createUserInterface();
}
private void createUserInterface(){
this.setTitle("Border1");
this.setSize(300, 300);
this.setLocation(200, 200);
this.setLayout(new BorderLayout( ));
this.add(new JButton("North"), BorderLayout.NORTH );
this.add(new JButton("South"), BorderLayout.SOUTH );
this.add(new JButton("East"), BorderLayout.EAST );
this.add(new JButton("West"), BorderLayout.WEST );
this.add(new JButton("Center"), BorderLayout.CENTER );
this.setVisible(true);
}
public static void main(String[] args) {
BorderLayoutApp1 app = new BorderLayoutApp1();
app.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
}
import java.awt.event.*;
import javax.swing.*;
public class BorderLayoutApp1 extends JFrame {
public BorderLayoutApp1( ) {
createUserInterface();
}
private void createUserInterface(){
this.setTitle("Border1");
this.setSize(300, 300);
this.setLocation(200, 200);
this.setLayout(new BorderLayout( ));
this.add(new JButton("North"), BorderLayout.NORTH );
this.add(new JButton("South"), BorderLayout.SOUTH );
this.add(new JButton("East"), BorderLayout.EAST );
this.add(new JButton("West"), BorderLayout.WEST );
this.add(new JButton("Center"), BorderLayout.CENTER );
this.setVisible(true);
}
public static void main(String[] args) {
BorderLayoutApp1 app = new BorderLayoutApp1();
app.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
}
FlowLayout
- merupakan layout manager yang simpel.
- FlowLayout menyusun komponen berdasarkan ukuran default masing-masing, dengan posisi mulai dari kiri ke kanan dan dari atas ke bawah di dalam container yang digunakan.
- FlowLayout dapat memiliki “row justification”: LEFT, CENTER, atau RIGHT serta “padding” horizontal/vertical.
- Secara default, flow layout menggunakan justification CENTER. Artinya, semua komponen akan disimpan di posisi tengah-tengah.
- FlowLayout merupakan default untuk JPanel.
CONTOH CODING FlowLayout:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Flow extends JFrame {
public Flow( ) {
createUserInterface();
}
private void createUserInterface(){
// FlowLayout is default layout manager for a JPanel
JPanel panel1 = new JPanel();
panel1.setLayout(new FlowLayout()); // !! baris ini dapat dihapus !!
panel1.add(new JButton("One"));
panel1.add(new JButton("Two"));
panel1.add(new JButton("Three"));
panel1.add(new JButton("Four"));
panel1.add(new JButton("Five"));
this.add(panel1);
this.setTitle("Flow");
this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
this.setSize(400, 75);
this.setLocation(200, 200);
this.setVisible(true);
}
public static void main(String[] args) {
Flow app = new Flow();
}
}
import java.awt.event.*;
import javax.swing.*;
public class Flow extends JFrame {
public Flow( ) {
createUserInterface();
}
private void createUserInterface(){
// FlowLayout is default layout manager for a JPanel
JPanel panel1 = new JPanel();
panel1.setLayout(new FlowLayout()); // !! baris ini dapat dihapus !!
panel1.add(new JButton("One"));
panel1.add(new JButton("Two"));
panel1.add(new JButton("Three"));
panel1.add(new JButton("Four"));
panel1.add(new JButton("Five"));
this.add(panel1);
this.setTitle("Flow");
this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
this.setSize(400, 75);
this.setLocation(200, 200);
this.setVisible(true);
}
public static void main(String[] args) {
Flow app = new Flow();
}
}
CardLayout
- merupakan layout manager yang mampu menciptakan efek “tumpukan” komponen. Artinya, layout ini tidak memposisikan komponen di lokasi-lokasi tertentu di dalam kontainer, melainkan menampilkannya satu demi satu.
- Penggunaan CardLayout biasanya untuk membuat
panel yang bersifat custom-tabbed. - Namun, sebenarnya kita dapat membuat panel tersebut dengan menggunakan komponen
JTabbedPane.
CONTOH CODING CardLayout:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Card extends JPanel {
CardLayout cards = new CardLayout( );
public Card( ) {
setLayout(cards);
ActionListener listener = new ActionListener( ) {
public void actionPerformed(ActionEvent e) {
cards.next(Card.this);
}
};
JButton button;
button = new JButton("one");
button.addActionListener(listener);
add(button, "one");
button = new JButton("two");
button.addActionListener(listener);
add(button, "two");
button = new JButton("three");
button.addActionListener(listener);
add(button, "three");
}
public static void main(String[] args) {
JFrame frame = new JFrame("Card");
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setSize(200, 200);
frame.setLocation(200, 200);
frame.setContentPane(new Card( ));
frame.setVisible(true);
}
}
import java.awt.event.*;
import javax.swing.*;
public class Card extends JPanel {
CardLayout cards = new CardLayout( );
public Card( ) {
setLayout(cards);
ActionListener listener = new ActionListener( ) {
public void actionPerformed(ActionEvent e) {
cards.next(Card.this);
}
};
JButton button;
button = new JButton("one");
button.addActionListener(listener);
add(button, "one");
button = new JButton("two");
button.addActionListener(listener);
add(button, "two");
button = new JButton("three");
button.addActionListener(listener);
add(button, "three");
}
public static void main(String[] args) {
JFrame frame = new JFrame("Card");
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setSize(200, 200);
frame.setLocation(200, 200);
frame.setContentPane(new Card( ));
frame.setVisible(true);
}
}
- Javax.swing memiliki beberapa tambahan layout manager lagi, salah satunya adalah: BoxLayout.
- Layout manager ini sangat berguna untuk membuat toolbars sederhana atau vertical button bars.
- Cara kerjanya sangat sederhana yaitu menempatkan komponen dalam satu baris atau satu kolom.
- Box memiliki beberapa methods yang akan mempermudah kita dalam menggunakan BoxLayout manager, yaitu:
- createHorizontalBox() - untuk membuat box horizontal
createHorizontalGlue() - untuk merekatkan komponen
createHorizontalStrut(int n) - untuk memberi jarak antar komponen
createVerticalBox() - untuk membuat box vertical
createVerticalGlue() - untuk merekatkan komponen
createVerticalStrut(int n) - untuk memberi jarak antar komponen
CONTOH CODING BoxLayout:
import java.awt.FlowLayout;
import java.awt.Font;
import java.text.Format;
import java.text.NumberFormat;
import java.util.Locale;
import javax.swing.BoxLayout;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class boxlayout {
public static void main(String args[]) throws Exception {
JFrame frame = new JFrame("Jformated Demo | Mata Uang");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Font font = new Font("Tahoma", Font.BOLD, 16);
JLabel label;
JFormattedTextField input;
JPanel panel;
BoxLayout layout = new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS);
frame.setLayout(layout);
Format currency = NumberFormat.getCurrencyInstance(Locale.US);
label = new JLabel("Mata Uang Amerika:");
input = new JFormattedTextField(currency);
input.setValue(1000.25);
input.setColumns(20);
input.setFont(font);
panel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
panel.add(label);
panel.add(input);
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
}
import java.awt.Font;
import java.text.Format;
import java.text.NumberFormat;
import java.util.Locale;
import javax.swing.BoxLayout;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class boxlayout {
public static void main(String args[]) throws Exception {
JFrame frame = new JFrame("Jformated Demo | Mata Uang");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Font font = new Font("Tahoma", Font.BOLD, 16);
JLabel label;
JFormattedTextField input;
JPanel panel;
BoxLayout layout = new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS);
frame.setLayout(layout);
Format currency = NumberFormat.getCurrencyInstance(Locale.US);
label = new JLabel("Mata Uang Amerika:");
input = new JFormattedTextField(currency);
input.setValue(1000.25);
input.setColumns(20);
input.setFont(font);
panel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
panel.add(label);
panel.add(input);
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
}
GridLayout
- menempatkan komponen dalam bentuk “rectangular grid”. Ada 3 constructor untuk GridLayout:
GridLayout(int rows, int cols): membuat suatu layout berdasarkan jumlah baris dan kolom yang diinginkan.
GridLayout(int rows, int cols, int hgap, int vgap): membuat layout berdasarkan jumlah baris dan kolom yang diinginkan, serta ukuran jarak (gap) horisontal maupun vertical untuk setiap baris dan kolom tersebut.
GridLayout(int rows, int cols, int hgap, int vgap): membuat layout berdasarkan jumlah baris dan kolom yang diinginkan, serta ukuran jarak (gap) horisontal maupun vertical untuk setiap baris dan kolom tersebut.
- GridLayout menempatkan komponen dengan ur utan dari kiri ke kanan dan dari atas ke bawah.
- GridLayout akan memaksa setiap komponen untuk menempati space container yang kosong serta membagi rata ukuran space tersebut.
CONTOH CODING GridLayout:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class gridlayout extends JFrame {
public gridlayout( ) {
createUserInterface();
}
private void createUserInterface(){
JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayout(3, 2));
panel1.add(new JButton("One"));
panel1.add(new JButton("Two"));
panel1.add(new JButton("Three"));
panel1.add(new JButton("Four"));
panel1.add(new JButton("Five"));
this.add(panel1);
this.setTitle("Grid");
this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
this.setSize(200, 200);
this.setLocation(200, 200);
this.setVisible(true);
}
public static void main(String[] args) {
gridlayout app = new gridlayout();
}
}
GridBagLayout
- merupakan layaout manager yang sangat fleksibel.
- Layout ini memampukan kita untuk memposisikan komponen relatif terhadap komponen lainnya berdasarkan constraint tertentu.
- Dengan menggunakan GridBagLayout, kita dapat menciptakan layout apapun juga, tanpa batas.
- Komponen disusun pada koordinat tertentu pada sebuah grid yang disebut “logical coordinate”. Logical coordinate berarti bahwa koordinat suatu komponen ditentukan oleh sekumpulan komponen lainnya.
- Baris dan kolom dari grid tersebut bersifat “stretch” yang bergantung pada size dan constraint yang dimilikinya.
CONTOH CODING GridBagLayout:
import java.awt.event.*;
import javax.swing.*;
public class gridbaglayout extends JFrame {
private GridBagConstraints constraints;
public gridbaglayout( ) {
createUserInterface();
}
private void createUserInterface(){
constraints = new GridBagConstraints( );
this.setLayout(new GridBagLayout( ));
int x, y; // for clarity
this.addGB(new JButton("North"), x = 1, y = 0);
this.addGB(new JButton("West"), x = 0, y = 1);
this.addGB(new JButton("Center"), x = 1, y = 1);
this.addGB(new JButton("East"), x = 2, y = 1);
this.addGB(new JButton("South"), x = 1, y = 2);
this.setTitle("gridbaglayout");
this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
this.setSize(225, 150);
this.setLocation(200, 200);
this.setVisible(true);
}
private void addGB(Component component, int x, int y) {
constraints.gridx = x;
constraints.gridy = y;
this.add(component, constraints);
}
public static void main(String[] args) {
gridbaglayout app = new gridbaglayout();
}
}
Event listener (action listener, mouse listener, mouse motion listener)
Event Listener merupakan interface yang akan meng-handle event yang terjadi. setiap type event mempunyai interface yang bersesuaian. Listener tersebut harus diimplementasikan oleh class yang akan meng-handle event.
Action Listener : Terjadi ketika komponen seperti tombol diklik atau ditekan dengan tombol enter .
Contok Action Listener
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
if (field.getText().equals("")) {
System.out.println("tidak ada text yang ditulis!!");
JOptionPane.showMessageDialog(frame, label,
"judul pesannya", 1);
} else {
JFrame frame2 = new JFrame("frame hasil");
frame2.setSize(600, 400);
frame2.setLocationRelativeTo(frame);
final JTextPane textPane = new JTextPane();
final JScrollPane ScrollPane = new JScrollPane(textPane);
panggilKoneksi(field, textPane);
frame2.add(ScrollPane);
frame2.setVisible(true);
}
}
private void panggilKoneksi(final JTextField field,
final JTextPane textPane) {
try {
URL url = new URL(field.getText());
URLConnection con = url.openConnection();
InputStream is = con.getInputStream();
ByteArrayOutputStream os = new ByteArrayOutputStream();
byte[] b = new byte[10];
int len;
while ((len = is.read(b, 0, b.length)) != -1) {
os.write(b, 0, len);
}
textPane.setText(new String(os.toByteArray()));
os.close();
is.close();
} catch (MalformedURLException e) {
JLabel label2 = new JLabel("salah tulis di URL");
JOptionPane.showMessageDialog(frame, label2,
"kesalahan tulis", 1);
} catch (IOException e) {
JLabel label3 = new JLabel("salah tulis di URL ini");
JOptionPane.showMessageDialog(frame, label3,
"kesalahan tulisan", 0);
}
}
});
@Override
public void actionPerformed(ActionEvent arg0) {
if (field.getText().equals("")) {
System.out.println("tidak ada text yang ditulis!!");
JOptionPane.showMessageDialog(frame, label,
"judul pesannya", 1);
} else {
JFrame frame2 = new JFrame("frame hasil");
frame2.setSize(600, 400);
frame2.setLocationRelativeTo(frame);
final JTextPane textPane = new JTextPane();
final JScrollPane ScrollPane = new JScrollPane(textPane);
panggilKoneksi(field, textPane);
frame2.add(ScrollPane);
frame2.setVisible(true);
}
}
private void panggilKoneksi(final JTextField field,
final JTextPane textPane) {
try {
URL url = new URL(field.getText());
URLConnection con = url.openConnection();
InputStream is = con.getInputStream();
ByteArrayOutputStream os = new ByteArrayOutputStream();
byte[] b = new byte[10];
int len;
while ((len = is.read(b, 0, b.length)) != -1) {
os.write(b, 0, len);
}
textPane.setText(new String(os.toByteArray()));
os.close();
is.close();
} catch (MalformedURLException e) {
JLabel label2 = new JLabel("salah tulis di URL");
JOptionPane.showMessageDialog(frame, label2,
"kesalahan tulis", 1);
} catch (IOException e) {
JLabel label3 = new JLabel("salah tulis di URL ini");
JOptionPane.showMessageDialog(frame, label3,
"kesalahan tulisan", 0);
}
}
});
Mouse Listener : Mendeteksi tombol mouse yang digunakan.
- void mouseClicked (MouseEvent e) Mouse di-click atau ditekan tombolnya kemudian langsungdilepaskan.
- void mouseEntered (MouseEvent e) Ketika mouse memasuki komponen.
- void mouseExited(MouseEvent e) Ketika mouse keluar dari komponen.
- void mousePressed (MouseEvent e) Tombol mouse ditekan.
- void mouseReleased(MouseEvent e) Tombol mouse dilepaskan
CONTOH MouseEventsDemo :
package mouseeventsdemo;
import java.awt.*;
import java.awt.event.*;
/**
*
* @author Ren
*/
public class MouseEventsDemo extends Frame implements MouseListener, MouseMotionListener { // Langkah 1
TextField tf;
public MouseEventsDemo( String title){
super(title);
tf = new TextField(60);
addMouseListener(this); // Langkah 2
import java.awt.*;
import java.awt.event.*;
/**
*
* @author Ren
*/
public class MouseEventsDemo extends Frame implements MouseListener, MouseMotionListener { // Langkah 1
TextField tf;
public MouseEventsDemo( String title){
super(title);
tf = new TextField(60);
addMouseListener(this); // Langkah 2
}
public void launchFrame() {
/* Menambah komponen pada frame */
add(tf, BorderLayout.SOUTH);
setSize(300,300);
setVisible(true);
}
public void mouseClicked(MouseEvent me) { // Langkah 3
String msg = “Mouse clicked.”;
tf.setText(msg);
}
public void mouseEntered(MouseEvent me) {
String msg = “Mouse entered component.”;
tf.setText(msg);
}
public void mouseExited(MouseEvent me) {
String msg = “Mouse exited component.”;
tf.setText(msg);
}
public void mousePressed(MouseEvent me) {
String msg = “Mouse pressed.”;
tf.setText(msg);
}
public void mouseReleased(MouseEvent me) {
String msg = “Mouse released.”;
tf.setText(msg);
}
public void mouseDragged(MouseEvent me) {
String msg = “Mouse dragged at ” + me.getX()
+ “,” + me.getY();
tf.setText(msg);
}
public void mouseMoved(MouseEvent me) {
String msg = “Mouse moved at ” + me.getX()
+ “,” + me.getY();
tf.setText(msg);
}
}
public void launchFrame() {
/* Menambah komponen pada frame */
add(tf, BorderLayout.SOUTH);
setSize(300,300);
setVisible(true);
}
public void mouseClicked(MouseEvent me) { // Langkah 3
String msg = “Mouse clicked.”;
tf.setText(msg);
}
public void mouseEntered(MouseEvent me) {
String msg = “Mouse entered component.”;
tf.setText(msg);
}
public void mouseExited(MouseEvent me) {
String msg = “Mouse exited component.”;
tf.setText(msg);
}
public void mousePressed(MouseEvent me) {
String msg = “Mouse pressed.”;
tf.setText(msg);
}
public void mouseReleased(MouseEvent me) {
String msg = “Mouse released.”;
tf.setText(msg);
}
public void mouseDragged(MouseEvent me) {
String msg = “Mouse dragged at ” + me.getX()
+ “,” + me.getY();
tf.setText(msg);
}
public void mouseMoved(MouseEvent me) {
String msg = “Mouse moved at ” + me.getX()
+ “,” + me.getY();
tf.setText(msg);
}
}
main.java
package mouseeventsdemo;
/**
*
* @author Ren
*/
public class Main {
*
* @author Ren
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
MouseEventsDemo med = new MouseEventsDemo(“Mouse Events Demo”);
med.launchFrame();
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
MouseEventsDemo med = new MouseEventsDemo(“Mouse Events Demo”);
med.launchFrame();
}
}
Java.sql.ResultSet
sekarang kita akan belajar bagaimana melakukan proses SELECT di Java, buat Statement lalu buat ResultSet, caranya seperti ini :
1 | Connection koneksi = ... |
2 | Statement statement = koneksi.createStatement(); |
3 | ResultSet result = statement.executeQuery("SELECT ..."); |
sekarang kita akan mencoba menampilkan seluruh data pada tabel Mahiswa yang ada pada database NETBEANS:
01 | import java.sql.Date; |
02 | import java.sql.ResultSet; |
03 | import java.sql.SQLException; |
04 | import java.sql.Statement; |
05 |
06 | public class SelectRecord { |
07 |
08 | public static void main(String args[]) throws SQLException { |
09 | Statement statement = Koneksi.getConnection().createStatement(); |
10 |
11 | statement.executeUpdate("INSERT INTO MAHASISWA VALUES ('1','A','1988-12-29')"); |
12 | statement.executeUpdate("INSERT INTO MAHASISWA VALUES ('2','B','1988-12-29')"); |
13 | statement.executeUpdate("INSERT INTO MAHASISWA VALUES ('3','C','1988-12-29')"); |
14 | statement.executeUpdate("INSERT INTO MAHASISWA VALUES ('4','D','1988-12-29')"); |
15 | statement.executeUpdate("INSERT INTO MAHASISWA VALUES ('5','E','1988-12-29')"); |
16 |
17 | ResultSet result = statement.executeQuery("SELECT * FROM MAHASISWA"); |
18 |
19 | String nim; |
20 | String nama; |
21 | Date tanggalLahir; |
22 | int index = 1; |
23 |
24 | while (result.next()) { |
25 | nim = result.getString("NIM"); |
26 | nama = result.getString("NAMA"); |
27 | tanggalLahir = result.getDate("TANGGAL_LAHIR"); |
28 |
29 | System.out.println("Mahasiswa Ke-" + index); |
30 | System.out.println("Nim : " + nim); |
31 | System.out.println("Nama : " + nama); |
32 | System.out.println("Tanggal Lahir : " + tanggalLahir); |
33 | System.out.println(); |
34 | index++; |
35 | } |
36 | result.close(); |
37 | statement.close(); |
38 | } |
39 | } |
Setelah dieksekusi akan muncul seperti dibawah ini :
Mahasiswa Ke-1
Nim : 1
Nama : A
Tanggal Lahir : 1988-12-29
Mahasiswa Ke-2
Nim : 2
Nama : B
Tanggal Lahir : 1988-12-29
Mahasiswa Ke-3
Nim : 3
Nama : C
Tanggal Lahir : 1988-12-29
Mahasiswa Ke-4
Nim : 4
Nama : D
Tanggal Lahir : 1988-12-29
Mahasiswa Ke-5
Nim : 5
Nama : E
Tanggal Lahir : 1988-12-29
Nim : 1
Nama : A
Tanggal Lahir : 1988-12-29
Mahasiswa Ke-2
Nim : 2
Nama : B
Tanggal Lahir : 1988-12-29
Mahasiswa Ke-3
Nim : 3
Nama : C
Tanggal Lahir : 1988-12-29
Mahasiswa Ke-4
Nim : 4
Nama : D
Tanggal Lahir : 1988-12-29
Mahasiswa Ke-5
Nim : 5
Nama : E
Tanggal Lahir : 1988-12-29
Perlu diketahui, bahwa class Statement dan ResultSet serta Connection memiliki metode yang bernama metode close(). metode ini merupakan metode yang digunakan untuk menutup. misal ketika Satement kita panggil metode close() nya maka Statement tersebut akan ditutup, sehingga koneksi ke MySQL akan terputus dan dari memori akan dibapus. jadi metode close() harus selalu dipanggil jika proses telah selesai, karena jika tidak maka akan terjadi penumpukan memori.
Java.sql.Connection
Sebelum kita mengelola database pada MySQL kita perlu membuat terlebih dahulu sebuah koneksi yang dalam java dekenal dengan java.sql.Connection. tapi sebelumnya kita harus menentukan sebuah driver setiap DBMS yang akan kita gunakan. karena kita menggunakan DBMS MySQL, maka kita harus membuat instansiasi dari Driver milik MySQL. dan masalahnya, java tidak menyediakan driver untuk MySQL, sehingga kita harus mendownload driver MySQL dari situs resmi MySQL. tapi tenang saja, karena kita pake Netbeans, semuanya telah tersedia.
Setelah itu d RUN, jika berhasil akan muncul tulisan "koneksi berhasil", namun jika tidak akan muncul tulisan "Koneksi gagal". bila kegagalan terjadi kita dapat melihat bagian mana yang terjadi kesalahan tersebut, dn terus mecobanya sampai dengan berhasil.
setelah selesai lalu eksekusi/RUN.
Kedua ini kita akan melakukan eksekusi perintah UPDATE :
Ketiga ini kita akan melakukan eksekusi perintah DELETE :
setelah itu buat sebuah class untuk koneksi (jika anda belum tahu cara membuat koneksi, silahkan lihat kembali tutorial MySQL dan Netbeans bagian 1) :
01 | import com.mysql.jdbc.Driver; |
02 | import java.sql.Connection; |
03 | import java.sql.DriverManager; |
04 | import java.sql.SQLException; |
05 |
06 | public class Koneksi { |
07 |
08 | private static Connection koneksi; |
09 |
10 | public static Connection getConnection() throws SQLException { |
11 | if (koneksi == null) { |
12 | // panggil Driver MySQL |
13 | new Driver(); |
14 | // buat koneksi |
15 | koneksi = DriverManager.getConnection("jdbc:mysql://localhost:3306/netbeans", "username", "password"); |
16 | } |
17 | return koneksi; |
18 | } |
19 |
20 | public static void main(String args[]) { |
21 | try { |
22 | getConnection(); |
23 | System.out.println("Koneksi Berhasil"); |
24 | } catch (SQLException ex) { |
25 | System.err.println("Koneksi Gagal"); |
26 | } |
27 | } |
28 | } |
Java.sql.Statement
Pertama ini kita akan melakukan eksekusi perintah INSERT :
01 | import java.sql.SQLException; |
02 | import java.sql.Statement; |
03 |
04 | public class InsertRecord { |
05 |
06 | public static void main(String args[]) throws SQLException { |
07 | Statement statement = Koneksi.getConnection().createStatement(); |
08 | statement.executeUpdate("INSERT INTO MAHASISWA " + |
09 | "VALUES (" + |
10 | "'10106031','Eko Kurnaiwan Khannedy','1988-12-29'" + |
11 | ");"); |
12 |
13 | statement.close(); |
14 | } |
15 | } |
Kedua ini kita akan melakukan eksekusi perintah UPDATE :
01 | import java.sql.SQLException; |
02 | import java.sql.Statement; |
03 |
04 | public class UpdateRecord { |
05 |
06 | public static void main(String args[]) throws SQLException { |
07 | Statement statement = Koneksi.getConnection().createStatement(); |
08 | statement.executeUpdate("UPDATE MAHASISWA " + |
09 | "SET " + |
10 | "NAMA = 'Nesia Oktiana' ," + |
11 | "TANGGAL_LAHIR = '1988-10-04' " + |
12 | "WHERE " + |
13 | "NIM = '10106031';"); |
14 | statement.close(); |
15 | } |
16 | } |
Ketiga ini kita akan melakukan eksekusi perintah DELETE :
01 | import java.sql.SQLException; |
02 | import java.sql.Statement; |
03 |
04 | public class DeleteRecord { |
05 |
06 | public static void main(String args[]) throws SQLException { |
07 | Statement statment = Koneksi.getConnection().createStatement(); |
08 | statment.executeUpdate("DELETE FROM MAHASISWA " + |
09 | "WHERE NIM = '10106031';"); |
10 | statment.close(); |
11 | } |
12 | } |
Di atas adalah cara kita membuat koneksi serta perintah eksekusi |
Langganan:
Postingan (Atom)