468x60

martedì 7 settembre 2010

Modificare larghezza drop-down list di un JCombobox

Lavorando con applicazioni Java Swing ho avuto necessità di modificare la dimensione orizzontale della drop-down list di un JCombobox. E' possibile farlo con il seguente codice:

//Popup state to prevent feedback
boolean stateCmb = false;

//Extend JComboBox's length and reset it
public void popupMenuWillBecomeVisible(PopupMenuEvent e)
{
JComboBox cmb = (JComboBox)e.getSource();

//Extend JComboBox
cmb.setSize(NEW_LENGTH, cmb.getHeight());
//If it pops up now JPopupMenu will still be short
//Fire popupMenuCanceled...

if(!stateCmb)
cmb.firePopupMenuCanceled();

//Reset JComboBox and state
stateCmb = false;
cmb.setSize(OLD_LENGTH, cmb.getHeight());
}


//Show extended JPopupMenu
public void popupMenuCanceled(PopupMenuEvent e)
{
JComboBox cmb = (JComboBox)e.getSource();
stateCmb = true;

//JPopupMenu is long now, so repop
cmb.showPopup();
}

public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
stateCmb = false;
}

Nessun commento:

Posta un commento

468x60

Cerca su Google

Cerca nel Blog con Google