Memakai SwingXBuilder Di Griffon: Part 3


JXStatusBar

JXStatusBar adalah komponen yang mewakili status bar yang berada di baris paling bawah dari sebuah container. Berikut ini adalah contoh kode program yang memakai JXStatusBar:

import org.jdesktop.swingx.JXSearchField
import static org.jdesktop.swingx.JXStatusBar.*
import org.jdesktop.swingx.JXStatusBar

application(title: 'Komponen SwingX',  
  id: 'frameUtama',
  preferredSize: [320, 240],
  pack: true,
  locationByPlatform:true,    
  iconImage: imageIcon('/griffon-icon-48x48.png').image) {

  	statusBar() {
	  label("Selamat datang di aplikasi saya.", constraints: 
		  new Constraint(Constraint.ResizeBehavior.FILL))
	  widget(new JXSearchField(), constraints: new Constraint(200))
	  jxbusyLabel(busy: true)
	}
}

Tampilan program di atas dapat dilihat pada gambar berikut ini:

JXStatusBar

JXStatusBar

JXTable

JXTable adalah sebuah JTable yang dengan beberapa fitur tambahan seperti rollover, highlighting, dan pencarian. Berikut ini adalah contoh kode program yang memakai fitur pencarian dari JXTable:

application(title: 'Komponen SwingX',  
  id: 'frameUtama',
  preferredSize: [320, 240],
  pack: true,
  locationByPlatform:true,    
  iconImage: imageIcon('/griffon-icon-48x48.png').image) {

  	borderLayout()
	scrollPane(constraints: CENTER) {
		jxtable(id: "tabel") {
			tableModel(list:[[nim: "1122334455", nama: "Solid", nilai: "A"],
					 [nim: "1122334466", nama: "Snake", nilai: "B"],
					 [nim: "1122334477", nama: "Way",   nilai: "C"]]) {
				propertyColumn(header: "NIM", propertyName: "nim")
				propertyColumn(header: "Nama", propertyName: "nama")
				propertyColumn(header: "Nilai", propertyName: "nilai")
			}						
	  	}
  	}
	jxfindBar(searchable: tabel.getSearchable(), constraints: PAGE_START)
}

Tampilan kode program di atas akan terlihat seperti:

JXTable

JXTable

JXTaskPane

JXTaskPane memakai JXCollapsiblePane yang telah dilengkapi dengan title untuk menyembunyikan dan menampilkan sebuah JXCollapsiblePane. Berikut ini adalah contoh kode program yang membuat JXTaskPane:

application(title: 'Komponen SwingX',  
  id: 'frameUtama',
  preferredSize: [320, 240],
  pack: true,
  locationByPlatform:true,    
  iconImage: imageIcon('/griffon-icon-48x48.png').image) {

  	borderLayout()
  	jxtaskPaneContainer(constraints: CENTER) {
	  jxtaskPane(title: "JXTaskPane #1") {
		 label("Ini adalah JXTaskPane #1")  
	  }
	  jxtaskPane(title: "JXTaskPane #2") {
		 label("Ini adalah JXTaskPane #2")  
	  }
	  jxtaskPane(title: "JXTaskPane #3", special: true) {
		  label("Yang ini spesial!")
	  }
  	}
}

Tampilan kode program di atas akan terlihat seperti pada gambar berikut ini:

JXTaskPane

JXTaskPane

JXTitledPanel

JXTitledPanel adalah sebuah JXPanel yang telah dilengkapi judul. Berikut ini adalah contoh kode program yang membuat JXPanel:

application(title: 'Komponen SwingX',  
  id: 'frameUtama',
  preferredSize: [320, 240],
  pack: true,
  locationByPlatform:true,    
  iconImage: imageIcon('/griffon-icon-48x48.png').image) {

    borderLayout()
  	jxtitledPanel(title: "Judul", leftDecoration: button(text: "MENU"),
           rightDecoration: jxbusyLabel(busy:true)) {
       label("Isi JXTitledPanel!")
    }
}

Tampilan dari kode program di atas akan terlihat seperti pada gambar berikut ini:

JXTitledPanel

JXTitledPanel

JXTitledSeparator

JXTitledSeparator adalah sebuah JXPanel yang dapat dipakai sebagai pemisah (bisa dilengkapi judul dan icon). Berikut ini adalah contoh kode program yang memakai JXTitledSeparator:

import javax.swing.SwingConstants;

application(title: 'Komponen SwingX',  
  id: 'frameUtama',
  preferredSize: [320, 240],
  pack: true,
  locationByPlatform:true,    
  iconImage: imageIcon('/griffon-icon-48x48.png').image) {

    borderLayout()
    titledSeparator(title: "Sebuah Pemisah", 
      horizontalAlignment: SwingConstants.CENTER)

}

Tampilannya akan terlihat seperti pada gambar berikut ini:

JXTitledSeparator

JXTitledSeparator

JXTree

JXTree adalah sebuah JTree yang dilengkapi beberapa fitur tambahan seperti highlightning dan pencarian. Berikut ini adalah contoh kode program yang menampilkan isi folder dalam bentuk JXTree dan disertai dengan fitur pencarian:

import org.jdesktop.swingx.treetable.FileSystemModel

application(title: 'Komponen SwingX',  
  id: 'frameUtama',
  preferredSize: [320, 240],
  pack: true,
  locationByPlatform:true,    
  iconImage: imageIcon('/griffon-icon-48x48.png').image) {

    borderLayout()
    jxtree(id: "tree", model: new FileSystemModel(
        new File("C:\\Users\\Public\\Pictures\\Sample Pictures")), constraints: CENTER)
    jxfindBar(searchable: tree.getSearchable(), constraints: PAGE_START)

}

Tampilan kode program di atas akan terlihat seperti pada gambar berikut ini:

JXTree

JXTree

JXTreeTable

JXTreeTable adalah sebuah JXTable yang didalamnya terdapat JXTree. Untuk menampilkan JXTreeTable, saya membuat kode program seperti berikut ini:

import org.jdesktop.swingx.treetable.FileSystemModel

application(title: 'Komponen SwingX',  
  id: 'frameUtama',
  preferredSize: [320, 240],
  pack: true,
  locationByPlatform:true,    
  iconImage: imageIcon('/griffon-icon-48x48.png').image) {

    borderLayout()
    scrollPane(constraints: CENTER) {
        jxtreeTable(id: "treeTable", treeTableModel: new FileSystemModel(
           new File("C:\\Users\\Public\\Pictures\\Sample Pictures")))
    }
    jxfindBar(searchable: treeTable.getSearchable(), constraints: PAGE_START)

}

Tampilan dari kode program di atas akan terlihat seperti pada gambar berikut ini:

JXTreeTable

JXTreeTable

Perihal Solid Snake
I'm nothing...

5 Responses to Memakai SwingXBuilder Di Griffon: Part 3

  1. Tolhah Hamzah mengatakan:

    mas, saya mau tanya. kalau untuk membuat readonly numberTextField pada kode di bawah ini:

    numberTextField(id: ‘total’, columns: 20, bindTo: ‘total’, errorPath: ‘total’)

    gimana ya mas? saya ingin agar textfield tersebut tidak dapat diedit, namun nilainya tetap dapat dimasukkan ke dalam database

    terima kasih mas, tutorialnya keren!

  2. Tolhah Hamzah mengatakan:

    permisi mas, mau tanya, kalau mau memberikan nilai default pada jxtaskPane supaya collapsed (tidak terbuka) saat pertama kali load gimana ya mas?

    saya coba didokumentasi http://download.java.net/javadesktop/swinglabs/releases/0.8/docs/api/org/jdesktop/swingx/JXTaskPane.html

    sehingga kode saya menjadi:
    taskPane(id: “form”, layout: new MigLayout(‘hidemode 2’, ‘[right][left][left,grow]’,”), constraints: PAGE_END, focusCycleRoot: true, setExpanded:false) {
    ……………………
    }

    saya menggunakan method setExpanded sama isExpanded dengan nilai false tapi tetap ngga bisa, kenapa itu ya mas?

Apa komentar Anda?

Please log in using one of these methods to post your comment:

Logo WordPress.com

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

Gambar Twitter

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

Foto Facebook

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

Foto Google+

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

Connecting to %s

%d blogger menyukai ini: