Minggu, 04 Desember 2011

Kajian 3: layout manager

  •     BorderLayout
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.

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

  •   FlowLayout
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.

                        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();
  }
}
 
  •  GridLayout
GridLayout adalah jenis layout yang bekerja berdasar baris dan kolom. Dengan layout ini kita dapat memberikan argumen banyaknya baris dan kolom sesuai dengan kebutuhan. Berikut ini adalah program sebelumnya menggunakan pengaturan GridLayout.

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

class AplikasiGridLayout extends JFrame
{
JLabel nama=new JLabel("Nama");
JLabel nim=new JLabel("NIM");
JTextField txnama=new JTextField(20);
JTextField txnim=new JTextField(7);
JButton tombolSimpan=new JButton("Simpan");

AplikasiGridLayout()
{
setLocation(200,100);
setSize(450,120);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

void KomponenVisual()
{
getContentPane().setLayout(new GridLayout(4,2));
getContentPane().add(nama);
getContentPane().add(txnama);
getContentPane().add(nim);
getContentPane().add(txnim);
getContentPane().add(tombolSimpan);
setVisible(true);
}

public static void main(String args[])
{
AplikasiGridLayout fl=new AplikasiGridLayout();
fl.KomponenVisual();
}
}

  •  BoxLayout

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.

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

  • CardLayout

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.

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

Tidak ada komentar:

Posting Komentar