23 Şubat 2018 Cuma

Swing JComboBox Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.swing.JComboBox;
Tek seçimliktir.

constructor
Örnek
Şöyle yaparız
JComboBox combo = new JComboBox();
Örnek
Tip verebiliriz. Şöyle yaparız.
JComboBox<Integer> comboStartDay = new JComboBox<Integer>();
addItem metodu
Şöyle yaparız
combo.addItem("...");
addItemListener metodu
Şöyle yaparız.
comboEndMonth.addItemListener(new ItemListener() {
  ...
});
addPopupListener metod
PopupMenuListener nesnesi alır. Şöyle yaparız.
comboBox.addPopupMenuListener(new PopupMenuListener() {
  @Override
  public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
    ...
  }
  @Override
  public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
    ...
  }
  @Override
  public void popupMenuCanceled(PopupMenuEvent e) {
    ...
  }
});

getSelectedItem metodu
Şöyle yaparız. Item addItem(), insertItemAt() veya constructor içinde verilmiş olabilir.
Integer[] numbers = {1,2,3};
JComboBox numberCombo = new JComboBox(numbers);
...
Integer chosenNumber = (Integer)numberCombo.getSelectedItem();
setModel metodu
Şöyle yaparız.
comboEndMonth = new JComboBox<String>();
comboEndMonth.setModel(new DefaultComboBoxModel<String>(...));
setRenderer metodu
ListCellRenderer arayüzünü gerçekleştirir. Genellikle DefaultListCellRenderer'dan kalıtan bir sınıf kullanılır.

Örnek
Bold metin için şöyle yaparız. Aslında bu örnek çok iyi değil. Direkt DefaultListCellRenderer sınıfı new'leyerek anonim bir sınıf kullanmak çok daha iyi.
new ListCellRenderer <T> {
  private final DefaultListCellRenderer renderer = new DefaultListCellRenderer();

  public final JLabel getListCellRendererComponent(JList<? extends T> list,
    Object value, int index, boolean isSelected, boolean cellHasFocus) {
    
    JLabel label = (JLabel) renderer.getListCellRendererComponent(list, value, index,alo
      isSelected,cellHasFocus);
    label.setText ("<html><font color="black"><b>Foo</b></font>");

     return label;
  }
}

Hiç yorum yok:

Yorum Gönder