JList relatif paling mudah dimengerti dari pada JTable dan JTree.
Nggak percaya? Aduh.. aduh… kapan kamu akan percaya Aku? Wis, langsung aja kuperkenalkan… Ladies and gentlemen, please welcome:
Jeeeeeeee Liiiiiiist!!!!!!
Kamu bisa membangun JList melalui empat konstruktornya:
- JList() akan membentuk sebuah JList yang kosong ( buat apa? ).
- JList ( Object[] data ) akan membentuk sebuah JList yang berisi data pada array Object[ ] data.
- JList ( Vector data ) akan membentuk JList dengan data yang ada pada Vector. Vector adalah array dinamis pada Java yang terdapat dalam package java.util.
- JList ( ListModel listModel ) akan membentuk JList dengan sebuah ListModel. ListModel adalah implementasi dari MVC sebenar-benarnya. Kita akan bahas ini lebih mendetail nanti
JList tidak mendukung scrolling secara langsung. Untuk mendapatkannya, kamu harus memasukkannya ke dalam JScrollPane. JList mendukung tiga macam cara seleksi yaitu: seleksi tunggal ( single selection ), single-interval selection, dan multiple-interval selection.
Seleksi tunggal, kita hanya boleh memilih satu dari sekian banyak daftar di List. Single-Interval Selection, kita boleh memilih lebih dari satu, tetapi harus berurutan. Multiple-Interval Selection, kita boleh memilih memilih lebih dari satu dan boleh tidak berurutan
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.*;
public class ListDemo extends JFrame {
private JList list1;
private JList list2;
private JComboBox combo1;
private JComboBox combo2;
private JLabel statusBar = new JLabel ( "Status Bar" );
public ListDemo()
{
super ( "List Demo" );
createGUI ();
setEventHandler ();
}
private void createGUI()
{
//list dengan data array
String[] listData1 = {"Apel", "Jambu", "Mangga", "Manggis","Pisang", "Jeruk","Semangka","Pepaya","Kelapa", "Meloon" };
list1 = new JList ( listData1 );
list1.setSelectionMode (ListSelectionModel.SINGLE_SELECTION );
//list dengan data vector
Vector listData2 = new Vector ();
listData2.add ( "Michael Schumacher" );
listData2.add ( "Kimi Raikonnen" );
listData2.add ( "Rubens Barichello" );
listData2.add ( "Juan Pablo Montoya" );
listData2.add ( "Ralf Schumacher" );
listData2.add ( "David Coulthard" );
listData2.add ( "Jacques Villeneuve" );
listData2.add ( "Ayrton Senna" );
listData2.add ( "Alain Prost" );
listData2.add ( "Mika Hakkinen" );
list2 = JList ( listData2 );
list2.setnewSelectionMode (
ListSelectionModel.SINGLE_SELECTION );
//combo box data
String[] selection = {"SINGLE_SELECTION","SINGLE_INTERVAL_SELECTION","MULTIPLE_INTERVAL_SELECTION"};
combo1 = new JComboBox ( selection );
combo2 = new JComboBox ( selection );
//pasang ke kanvas
JScrollPane scrPane1 = new JScrollPane ( list1 );
scrPane1.setPreferredSize ( new Dimension (220, 160 ) );
JPanel panelKiri = new JPanel ();
panelKiri.add ( combo1, BorderLayout.NORTH );
panelKiri.add ( scrPane1, BorderLayout.CENTER );
JScrollPane scrPane2 = new JScrollPane ( list2 );
scrPane2.setPreferredSize ( new Dimension (220, 160 ) );
JPanel panelKanan = new JPanel ();
panelKanan.add ( combo2, BorderLayout.NORTH );
panelKanan.add ( scrPane2, BorderLayout.CENTER );
JPanel listPanel = new JPanel (new GridLayout ( 1, 2 ) );
listPanel.add ( panelKiri );
listPanel.add ( panelKanan );
Container contPane = getContentPane ();
contPane.add ( listPanel, BorderLayout.CENTER );
contPane.add ( statusBar, BorderLayout.SOUTH );
setDefaultCloseOperation ( EXIT_ON_CLOSE );
setSize ( 450, 250 );
setVisible ( true );
}
private void setEventHandler()
{
//combo box kiri
combo1.addActionListener ( new ActionListener ()
{
public void actionPerformed( ActionEvent e ) {
String text = ( String )
combo1.getSelectedItem ();
if ( text.equals ( "SINGLE_SELECTION" ) ) {
list1.setSelectionMode (ListSelectionModel.SINGLE_SELECTION );
}
else if ( text.equals ("SINGLE_INTERVAL_SELECTION" ) ) {
list1.setSelectionMode (ListSelectionModel.SINGLE_INTERVAL_SELECTION );
}
else {
list1.setSelectionMode (ListSelectionModel.MULTIPLE_INTERVAL_SELECTION );
}
}
} );
//combo box kanan
combo2.addActionListener ( new ActionListener () {
public void actionPerformed( ActionEvent e ) {
String text = ( String )
combo2.getSelectedItem ();
if ( text.equals ( "SINGLE_SELECTION" ) ) {
list2.setSelectionMode (ListSelectionModel.SINGLE_SELECTION );
}
else if ( text.equals ("SINGLE_INTERVAL_SELECTION" ) ) {
list2.setSelectionMode (ListSelectionModel.SINGLE_INTERVAL_SELECTION );
}
else {
list2.setSelectionMode (ListSelectionModel.MULTIPLE_INTERVAL_SELECTION );
}
}
} );
//list listener
list1.addListSelectionListener (new ListSelectionListener () {
public void valueChanged( ListSelectionEvent e )
{
int[] indices = list1.getSelectedIndices ();
Object[] selectedItems = list1.getSelectedValues ();
String display = "";
for ( int i = 0; i < indices.length; i++ ) {
display += ( String ) selectedItems[i] +" ";
}
statusBar.setText ( display );
}
} );
list2.addListSelectionListener (new ListSelectionListener () {
public void valueChanged( ListSelectionEvent e )
{
int[] indices = list2.getSelectedIndices ();
Object[] selectedItems = list2.getSelectedValues ();
String display = "";
for ( int i = 0; i < indices.length; i++ ) {
display += ( String ) selectedItems[i] +" ";
}
statusBar.setText ( display );
}
} );
}
//launcher
public static void main( String[] args ) {
new ListDemo ();
}
}
dan hasilnya adalah... engg ingg enggg
sekian tentang membuat komponen JList, tunggu post selanjutnya
Tidak ada komentar:
Posting Komentar