steppedcomboboxui.java

来自「一个用于排队系统仿真的开源软件,有非常形象的图象仿真过程!」· Java 代码 · 共 44 行

JAVA
44
字号
package jmt.engine.jwat.workloadAnalysis.utils;

import java.awt.Dimension;
import java.awt.Rectangle;
import java.util.Vector;

import javax.swing.ComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.plaf.basic.BasicComboPopup;
import javax.swing.plaf.basic.ComboPopup;
import javax.swing.plaf.metal.MetalComboBoxUI;

import com.jgoodies.looks.plastic.PlasticComboBoxUI;

public class SteppedComboBoxUI extends PlasticComboBoxUI {
	  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;
	  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?