Menampilkan Data di Property Sheet NetBeans Platform


NetBeans Platform 6.9

NetBeans Platform 6.9

Peralatan yang diperlukan :

  1. Java Development Kit 1.6
  2. NetBeans Platform 6.9

Property Sheet merupakan windows yang berapa pada bagian kanan Form, biasanya saat Anda menggunakan NetBeans IDE, Property Sheet ini digunakan untuk menampilkan property-property komponen yang sedang diklik pada NetBeans GUI Builder. Property Sheet ini akan sangat berguna untuk menampilkan data yang lumayan panjang, contoh saja, misal kita memiliki Tabel dengan panjang kolom 20, sedangkan jika ditampilkan dalam sebuagh JTable, maka pasti tidak muat dikarenakan banyaknya kolom yang harus dibuat :D

Lantas bagaimana cara menggunakan Property Sheet untuk membantu Anda menampilkan data pada Table yang memiliki banyak kolom :D Mudah saja, pertama buatlah sebuah kelas Node yang merupakan turunan kelas AbstractNode, setelah itu override metode createSheet() nya, karena metode inilah yang akan digunakan oleh Property Sheet sebagai modelnya.

package khannedy.crud.persistence.widget.group;

import khannedy.crud.persistence.entity.Group;
import org.openide.nodes.AbstractNode;
import org.openide.nodes.Children;
import org.openide.nodes.PropertySupport;
import org.openide.nodes.Sheet;
import org.openide.util.Exceptions;

public class GroupNode extends AbstractNode {

    private final Group group;

    public GroupNode(Group group) {
        super(Children.LEAF);
        this.group = group;
    }

    @Override
    protected Sheet createSheet() {
        Sheet sheet = new Sheet();
        Sheet.Set set = Sheet.createPropertiesSet();
        set.setDisplayName("Group");

        try {
            Property id = new PropertySupport.Reflection(group, Long.class, "getId", null);
            id.setName("Id");
            id.setShortDescription("The identifier of group");
            set.put(id);

            Property name = new PropertySupport.Reflection(group, String.class, "getName", null);
            name.setName("Name");
            name.setShortDescription("The name of group");
            set.put(name);
        } catch (NoSuchMethodException ex) {
            Exceptions.printStackTrace(ex);
        }

        sheet.put(set);
        return sheet;
    }
}

Agar Sheet ini dapat ditampilkan dalam Property Sheet, maka kita perlu mempublishnya ke InstanceContenct.

public class GroupTopComponent extends TopComponent implements ListSelectionListener {

    private InstanceContent content;
    ...

    public GroupTopComponent() {

        ...

        jTableGroup.getSelectionModel().addListSelectionListener(this);

        content = new InstanceContent();
        associateLookup(new AbstractLookup(content));
    }

    ...

    @Override
    public void valueChanged(ListSelectionEvent e) {
        int index = tableGroup.getSelectedRow();
        if (index != -1) {
            Group group = tableModelGroup.get(index);
            GroupNode node = new GroupNode(group);
            content.set(Collections.<GroupNode>singleton(node), null);
        }
    }
}

Dengan begitu, maka setiap kita menseleksi sebuah baris pada JTable, maka Property Sheet akan menampilkan data baris yang kita seleksi :D

NetBeans Property Sheet

NetBeans Property Sheet

Enjoy… :D

About these ads

Berikan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Logout / Ubah )

Twitter picture

You are commenting using your Twitter account. Logout / Ubah )

Facebook photo

You are commenting using your Facebook account. Logout / Ubah )

Google+ photo

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s