Minggu, 04 Desember 2011

KAJIAN 3

LAYOUT MANAGER

Layout manager bertugas menyusun komponen - komponen  (button, label, checkbox, dll) di dalam suatu container (panel, frame, dll). Layout manager juga menentukan posisi dan ukuran setiap komponen di dalam container. Proses ini akan berbeda untuk setiap class layout yang digunakan. AWT dan Swing memiliki beberapa layout manager standar yang penggunaannya seringkali dikombinasikansesuai situasi dan kebutuhan kita. 
  • FlowLayout merupakan layout manager yang simpel. FlowLayout juga 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 : 
                JPanel panel1 = new JPanel();
                panel1.setLayout(new FlowLayout());

  • GridLayout menempatkan komponen dengan urutan 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 :
                 frame.add(panel1);
                 frame.add(panel2);
                 frame.setLayout(newGridLayout(2, 1));

  • BorderLayout menyusun komponen berdasarkan lokasi geografis: NORTH, SOUTH, EAST, WEST, and CENTER. Secara optional, kita dapat juga memberikan paddingdi 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 :
                  JPanel p = new JPanel( );
                  p.add(new JButton("North"));
                  this.add(p, BorderLayout.NORTH);

         dan seterusnya cukup copy paste kemudian rubah "north" sesuai dengan mata angin
  • 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 sizedan constraintyang dimilikinya. contoh :
                  constraints = newGridBagConstraints( );
      this.setLayout(new GridBagLayout( ));
      intx, y; 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(newJButton("East"), x = 2, y = 1);
      this.addGB(new JButton("South"), x = 1, y = 2);
  • Box Layout Javax.swingmemiliki beberapa tambahan layout manager lagi, salah satunya adalah: BoxLayout. Layout manager ini sangat berguna untuk membuat toolbarssederhana atau vertical button bars. Cara kerjanya sangat sederhana yaitu menempatkan komponen dalam satu baris atau satu kolom. Untuk mempermudah penggunaan BoxLayout, Swing menyediakan sebuah kelas yang bernama Boxyaitu sebuah container yang secara otomatismemiliki BoxLayout manager. contoh :
     Container box = Box.createHorizontalBox( );
     box.add(Box.createHorizontalGlue( ));
     box.add(new JButton("In the"));
  • 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. contoh :
               CardLayout cards = new CardLayout( );
    public Card( ) {
   setLayout(cards);
   ActionListener listener = newActionListener( ) {
   public void actionPerformed(ActionEvent e) {
   cards.next(Card.this);
   }
   };
  JButton button;
  button = new JButton("one");
  button.addActionListener(listener);
  add(button, "one");
  button = newJButton("two"); .





Tidak ada komentar:

Posting Komentar