07. Penggunaan Composite : TabFolder

posted Nov 5, 2011, 9:31 PM by Editor KursusInternet   [ updated Nov 6, 2011, 12:21 AM ]

Pendahuluan

Composite
adalah class pada SWT yang digunakan sebagai container untuk widget / control dan bahkan composite lainnya. Beberapa contoh subclass dari Composite class adalah Browser, Tree, Toolbar, TabFolder, dan lain-lain.

Karena banyaknya objek yang dapat terlibat maka untuk artikel kali ini langsung menggunakan contoh dalam kode Java dan hasil eksekusinya. Diharapkan dengan pendekatan demikian, pengunjung bisa mendapatkan gambaran lengkap cara penggunaannya secara langsung.

Contoh yang digunakan adalah composite class TabFolder yang akan melibatkan juga class-class widget lain seperti  TabItem, Group, Button, Text dan Label.

Contoh Penggunaan 

Berikut adalah contoh penggunaan class-class Composite yang melibatkan tiga file :
  • CompositeTab1.java : merupakan class turunan Composite yang melibatkan group dari widget Text dan Label.
  • CompositeTab2.java : merupakan class turunan Composite yang melibatkan group dari widget Button.
  • PenggunaanComposite.java : merupakan class utama yang dipanggil untuk melakukan rendering window SWT dan menggabungkan class CompositeTab1 dan CompositeTab2 pada tiap item dari TabFolder.

CompositeTab1.java

package com.kursusinternet.swt;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;

public class CompositeTab1 extends Composite {
  public CompositeTab1(Composite parent) {
    super(parent, SWT.None);
    Group group = new Group(this, SWT.SHADOW_ETCHED_IN);
    group.setText("Profil");    
    
    Label label1 = new Label(group, SWT.None);
    label1.setText("Nama : ");
    label1.setBounds(5,18,40,20);
    
    Text text = new Text(group, SWT.BORDER);
    text.setBounds(45,16,100,20);
    
    group.setSize(180,100);
  }
}

CompositeTab2.java

package com.kursusinternet.swt;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;

public class CompositeTab2 extends Composite {
  public CompositeTab2(Composite parent) {
    super(parent, SWT.None);
    Group group = new Group(this, SWT.SHADOW_ETCHED_IN);
    group.setText("Jenis Kelamin");    
    
    Button tombol1 = new Button(group, SWT.RADIO);
    tombol1.setText("Laki-laki");
    tombol1.setBounds(20,15,90,30);
    
    Button tombol2 = new Button(group, SWT.RADIO);
    tombol2.setText("Perempuan");
    tombol2.setBounds(20,40,90,30);

    group.setSize(180,100);
  }
}

PenggunaanComposite.java

package com.kursusinternet.swt;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;

public class PenggunaanComposite {
    Display display;
    Shell shell;
    
    public void tampil()
    {
      display = new Display();
      shell = new Shell(display);
      
      TabFolder objTabFolder = new TabFolder(shell, SWT.NONE);

      TabItem objTab1 = new TabItem(objTabFolder,SWT.NONE);
      objTab1.setText("Entri Utama");
      TabItem objTab2 = new TabItem(objTabFolder,SWT.NONE);
      objTab2.setText("Entri Tambahan");
      
      CompositeTab1 objComposite1 = new CompositeTab1(objTabFolder);
      objComposite1.pack();
      CompositeTab2 objComposite2 = new CompositeTab2(objTabFolder);
      objComposite2.pack();

      objTab1.setControl(objComposite1);
      objTab2.setControl(objComposite2);
      objTabFolder.pack();

      
      shell.setText("Contoh Composite !");
      shell.setSize(300,200);
      
      objTabFolder.setLocation(
            (shell.getSize().x - objTabFolder.getSize().x)/2
            30
          );
      
      shell.open();
      
      while (!shell.isDisposed()) {
        if (!display.readAndDispatch()) {
          display.sleep();
        }
      }
      display.dispose();     
    }
    
    public static void main(String[] args) {
      new PenggunaanComposite().tampil();
    }
}

Hasil Eksekusi


Gambar 1. Tab Item Pertama pada TabFolder


Gambar 2. Tab Item Kedua pada TabFolder


~~ Selesai ~~
Comments