下面列出了怎么用javax.swing.plaf.ScrollPaneUI的API类实例代码及写法,或者点击链接到github查看源代码。
private void updateListeners() {
ScrollPaneUI ui = scrollPane.getUI();
if (ui != lastUI) {
// Update "ui" property listener
if (ui != null) {
// Check mouse wheel listeners on scroll pane.
// Pair first non-MWDelegator listener with
// Remove any other delegators than this one.
MouseWheelListener[] mwls = scrollPane.getListeners(MouseWheelListener.class);
if (LOG.isLoggable(Level.FINE)) {
LOG.log(Level.FINE, "MouseWheelDelegator.updateListeners(): scrollPane change scrollPane={0}, MouseWheelListeners:{1}\n",
new Object[]{obj2String(scrollPane), Arrays.asList(mwls)});
}
delegateListener = null;
for (MouseWheelListener listener : mwls) {
if (listener instanceof MouseWheelDelegator) {
scrollPane.removeMouseWheelListener(listener);
if (delegateListener == null) {
delegateListener = ((MouseWheelDelegator) listener).delegateListener;
scrollPane.addMouseWheelListener(this);
}
} else { // Regular listener
// Current patch only assumes one MW listener attached by the UI impl.
if (delegateListener == null) {
delegateListener = listener;
scrollPane.removeMouseWheelListener(listener);
scrollPane.addMouseWheelListener(this);
}
}
}
}
lastUI = ui;
}
}
/**
* Maps {@code JScrollPane.getUI()} through queue
*/
public ScrollPaneUI getUI() {
return (runMapping(new MapAction<ScrollPaneUI>("getUI") {
@Override
public ScrollPaneUI map() {
return ((JScrollPane) getSource()).getUI();
}
}));
}
/**
* Maps {@code JScrollPane.setUI(ScrollPaneUI)} through queue
*/
public void setUI(final ScrollPaneUI scrollPaneUI) {
runMapping(new MapVoidAction("setUI") {
@Override
public void map() {
((JScrollPane) getSource()).setUI(scrollPaneUI);
}
});
}
@Override
public void setUI(ScrollPaneUI ui) {
super.setUI(ui);
updateViewportBorder();
}
@Override
public void setUI(ScrollPaneUI ui) {
super.setUI(ui);
// disable standard Swing keybindings
setInputMap(WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, null);
}