import javax.swing.AbstractButton; //导入方法依赖的package包/类
private JButton createDropDownButton() {
Icon icon = ImageUtilities.loadImageIcon("org/netbeans/modules/debugger/resources/evaluator/drop_down_arrow.png", false);
final JButton button = new DropDownButton();
button.setIcon(icon);
String tooltipText = NbBundle.getMessage(CodeEvaluatorUI.class, "CTL_Expressions_Dropdown_tooltip");
button.setToolTipText(tooltipText);
button.setEnabled(false);
Dimension size = new Dimension(icon.getIconWidth() + 3, icon.getIconHeight() + 2);
button.setPreferredSize(size);
button.setMargin(new Insets(0, 0, 0, 0));
button.setFocusable(false);
AbstractAction action = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
if ("pressed".equals(e.getActionCommand())) {
JComponent jc = (JComponent) e.getSource();
Point p = new Point(0, 0);
SwingUtilities.convertPointToScreen(p, jc);
if (!ButtonPopupSwitcher.isShown()) {
SwitcherTableItem[] items = createSwitcherItems();
ButtonPopupSwitcher.selectItem(jc, items, p.x, p.y);
}
//Other portion of issue 37487, looks funny if the
//button becomes pressed
if (jc instanceof AbstractButton) {
AbstractButton jb = (AbstractButton) jc;
jb.getModel().setPressed(false);
jb.getModel().setRollover(false);
jb.getModel().setArmed(false);
jb.repaint();
}
}
} // actionPerformed
@Override
public boolean isEnabled() {
return !getEditItemsList().isEmpty();
}
};
action.putValue(Action.SMALL_ICON, icon);
action.putValue(Action.SHORT_DESCRIPTION, tooltipText);
button.setAction(action);
return button;
}