Source Code : Small Cell Combobox Example

Java Is Open Source Programming Language You Can Download From Java and Java Libraries From http://www.oracle.com. Click Here to download
We provide this code related to title for you to solve your developing problem easily. Libraries which is import in this program you can download from http://www.oracle.com. Click Here or search from google with Libraries Name you get jar file related it

Small Cell Combobox Example

Small Cell Combobox Example
  
// Example from http://www.crionics.com/products/opensource/faq/swing_ex/SwingExamples.html
/* (swing1.1) */


import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Vector;

import javax.swing.ComboBoxModel;
import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.UIManager;
import javax.swing.event.ListDataEvent;
import javax.swing.plaf.basic.BasicComboPopup;
import javax.swing.plaf.basic.ComboPopup;
import javax.swing.plaf.metal.MetalComboBoxUI;
import javax.swing.table.DefaultTableModel;

/**
 * @version 1.0 3/06/99
 */
public class SmallCellComboExample extends JFrame {

  public SmallCellComboExample() {
    super("SmallCell Combo Example");

    DefaultTableModel dm = new DefaultTableModel(4, 10) {
      public void setValueAt(Object obj, int row, int col) {
        if (obj != null) {
          String str;
          if (obj instanceof String) {
            str = ((String) obj).substring(0, 2);
          } else {
            str = obj.toString();
          }
          super.setValueAt(str, row, col);
        }
      }
    };
    JTable table = new JTable(dm);

    String[] str = { "010 - To Time", "020 - Vacation", "030 - Feel Bad" };

    SteppedComboBox combo = new SteppedComboBox(str) {
      public void contentsChanged(ListDataEvent e) {
        selectedItemReminder = null;
        super.contentsChanged(e);
      }
    };

    Dimension d = combo.getPreferredSize();
    combo.setPopupWidth(d.width);

    DefaultCellEditor editor = new DefaultCellEditor(combo);
    table.setDefaultEditor(Object.class, editor);

    JScrollPane scroll = new JScrollPane(table);
    getContentPane().add(scroll, BorderLayout.CENTER);
  }

  public static void main(String[] args) {
    SmallCellComboExample frame = new SmallCellComboExample();
    frame.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        System.exit(0);
      }
    });
    frame.setSize(300, 120);
    frame.setVisible(true);
  }
}

/**
 * @version 1.0 12/12/98
 */

class SteppedComboBoxUI extends MetalComboBoxUI {
  protected ComboPopup createPopup() {
    BasicComboPopup popup = new BasicComboPopup(comboBox) {

      public void show() {
        Dimension popupSize = ((SteppedComboBox) comboBox)
            .getPopupSize();
        popupSize
            .setSize(popupSize.width,
                getPopupHeightForRowCount(comboBox
                    .getMaximumRowCount()));
        Rectangle popupBounds = computePopupBounds(0, comboBox
            .getBounds().height, popupSize.width, popupSize.height);
        scroller.setMaximumSize(popupBounds.getSize());
        scroller.setPreferredSize(popupBounds.getSize());
        scroller.setMinimumSize(popupBounds.getSize());
        list.invalidate();
        int selectedIndex = comboBox.getSelectedIndex();
        if (selectedIndex == -1) {
          list.clearSelection();
        } else {
          list.setSelectedIndex(selectedIndex);
        }
        list.ensureIndexIsVisible(list.getSelectedIndex());
        setLightWeightPopupEnabled(comboBox.isLightWeightPopupEnabled());

        show(comboBox, popupBounds.x, popupBounds.y);
      }
    };
    popup.getAccessibleContext().setAccessibleParent(comboBox);
    return popup;
  }
}

class SteppedComboBox extends JComboBox {
  protected int popupWidth;

  public SteppedComboBox(ComboBoxModel aModel) {
    super(aModel);
    setUI(new SteppedComboBoxUI());
    popupWidth = 0;
  }

  public SteppedComboBox(final Object[] items) {
    super(items);
    setUI(new SteppedComboBoxUI());
    popupWidth = 0;
  }

  public SteppedComboBox(Vector items) {
    super(items);
    setUI(new SteppedComboBoxUI());
    popupWidth = 0;
  }

  public void setPopupWidth(int width) {
    popupWidth = width;
  }

  public Dimension getPopupSize() {
    Dimension size = getSize();
    if (popupWidth < 1)
      popupWidth = size.width;
    return new Dimension(popupWidth, size.height);
  }
}




           
         
    
  

Thank with us