Pages

Minggu, 04 Desember 2011

Kajian 3 - GridBagLayout

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”, yang 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 milikinya.

Berikut contoh sintaknya :

  import java.awt.*;
   import java.awt.event.*;
   import javax.swing.*;

    public class GridBag1 extends JFrame {
      private GridBagConstraints constraints;

       public GridBag1(  ) {
         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("GridBag1");
         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) {
         GridBag1 app = new GridBag1();
      }
   }

Kajian 3 - Grid Layout

Gridlayout merupakan salah satu layout yang digunakanuntuk mengatur tata letak pada panel. Gridlayout merupakan bagian dari library AWT. Grid layout menempatkan komponen dalam bentuk “rectangular grid”.

berikut contoh sintaknya :

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

    public class Grid extends JFrame {

       public Grid(  ) {

         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) {

         Grid app = new Grid();

      }

   }

Kajian 3 - Box Layout

Layout manager yang telah kita bahas sebelumnya merupakan bagian dari package java.awt. 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.

Berikut contoh sintaknya :

  import java.awt.*;
   import java.awt.event.*;
   import javax.swing.*;
    public class Boxer extends JFrame {
       public Boxer(){
         createUserInterface();
      }
       private void createUserInterface(){
         Container box = Box.createHorizontalBox(  );
         box.add(Box.createHorizontalGlue(  ));
         box.add(new JButton("In the"));
         box.add(Box.createHorizontalGlue(  ));
         box.add(new JButton("clearing"));
         box.add(Box.createHorizontalStrut(10));
         box.add(new JButton("stands"));
         box.add(Box.createHorizontalStrut(10));
         box.add(new JButton("a"));
         box.add(Box.createHorizontalGlue(  ));
         box.add(new JButton("boxer"));
         box.add(Box.createHorizontalGlue(  ));
  
         this.add(box);
         this.setTitle("Boxer");
         this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
         this.setSize(250, 250);
         this.setLocation(200, 200);
         this.pack(  );
         this.setVisible(true);
      }
   public static void main(String[] args) {
         Boxer app = new Boxer();
      }
   }

Kajian 3 - Flow LAyout

Flow layout merupakan manajer layout yang paling sederhana. Layout ini menyusun komponen berdasarkan ukuran default masing-masing, dengan posisi mulai dari kiri ke kanan dan dari atas kebawahdi dalam container yang digunakan.

Berikut contoh sintaknya :

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Flow extends JFrame {
  public Flow(  ) {
    createUserInterface();
  }
   private void createUserInterface(){
    // FlowLayout adalah layout manager default untuk 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();
  }
}

Kajian 3 - Card Layout

CardLayout merupakan layout manager yang mampu menciptakan efek “tumpukan” komponen. Artinya, layout ini tidak memposisikan komponen di lokasi-lokasi tertentu di dalam kontainer, melainkan nampilkannya satu demi satu.

berikut contoh sintaknya :


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);
    }
}

KAjian 3 - Border Layout

BorderLayout merupakan manajer layout default untuk setiap panel konten. Jendela isi adalah wadah utama dalam semua frame, applet, dan dialog. Sebuah BorderLayout memiliki lima area yang tersedia untuk menahan komponen: utara, selatan, timur, barat, dan pusat. Semua ruang ekstra ditempatkan di daerah pusat. Secara opsional, kita dapat juga memberikan padding diantara komponen. Border layout merupakan layout default untuk JWindows dan JFrame.

berikut contoh sintaknya :

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
    public class BorderLayoutApp2 extends JFrame {
       public BorderLayoutApp2(  ) {
         createUserInterface();
     }    
       private void createUserInterface(){
         this.setTitle("Border2");
         this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
         this.setSize(225, 150);
         this.setLocation(200, 200);
         this.setVisible(true);
         this.setLayout(new BorderLayout(  ));
        JPanel p = new JPanel(  );
         p.add(new JButton("North"));
         this.add(p, BorderLayout.NORTH);
           p = new JPanel(  );
         p.add(new JButton("South"));
         this.add(p, BorderLayout.SOUTH);
        
         p = new JPanel(  );
         p.add(new JButton("East"));
         this.add(p, BorderLayout.EAST);
        
         p = new JPanel(  );
         p.add(new JButton("West"));
         this.add(p, BorderLayout.WEST);
        
         p = new JPanel(  );
         p.add(new JButton("Center"));
         this.add(p, BorderLayout.CENTER);
      }

       public static void main(String[] args) {
         BorderLayoutApp2 app = new BorderLayoutApp2();
      }
    }

Kajian 4 - Mouse Even Handling

import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
   
    public class MouseEventHadling extends JFrame
        implements MouseListener, MouseMotionListener {
   
        private JLabel statusBar;
   
        public MouseEventHadling () {
            super ("Mencoba Beberapa Mouse Event Handling");
   
            statusBar = new JLabel();
            getContentPane().add(statusBar,BorderLayout.SOUTH);
   
            addMouseListener (this);
            addMouseMotionListener (this);
   
            setSize (300,100);
        setLocationRelativeTo(null);
            setVisible(true);
        }
        //MouseListener event handler
        public void mouseClicked (MouseEvent e) {
            statusBar.setText("Clicked at ["+ e.getX() + "," + e.getY() + "]");
        }
   
        public void mousePressed (MouseEvent e) {
            statusBar.setText("Pressed at ["+ e.getX() + "," + e.getY() + "]");
        }

        public void mouseReleased (MouseEvent e) {
            statusBar.setText("Released at ["+ e.getX() + "," + e.getY() + "]");
        }
   
        public void mouseEntered (MouseEvent e) {
            statusBar.setText("Entered at ["+ e.getX() + "," + e.getY() + "]");
            getContentPane().setBackground(Color.GREEN);
        }
   
        public void mouseExited (MouseEvent e) {
            statusBar.setText("Mouse outside window");
            getContentPane().setBackground(Color.WHITE);
        }
   
        //MouseMotionListener event handler
    public void mouseDragged (MouseEvent e) {
            statusBar.setText("Dragged at ["+ e.getX() + "," + e.getY() + "]");
        }
   
    public void mouseMoved (MouseEvent e) {
            statusBar.setText("Moved at ["+ e.getX() + "," + e.getY() + "]");
        }
   
        public static void main (String args[]) {
            MouseEventHadling test = new MouseEventHadling();
            test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
    }