下面列出了怎么用javax.swing.SingleSelectionModel的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public void mousePressed(MouseEvent e) {
Point p = e.getPoint();
int i = getLayoutModel().indexOfPoint(p.x, p.y);
tabState.setPressed(i);
SingleSelectionModel sel = getSelectionModel();
selectionChanged = i != sel.getSelectedIndex();
// invoke possible selection change
if ((i != -1) || !selectionChanged) {
boolean change = shouldPerformAction(TabDisplayer.COMMAND_SELECT,
i, e);
if (change) {
getSelectionModel().setSelectedIndex(i);
tabState.setSelected(i);
Component tc = i >= 0 ? getDataModel().getTab(i).getComponent() : null;
if( null != tc && tc instanceof TopComponent
&& !((TopComponent)tc).isAncestorOf( KeyboardFocusManager.getCurrentKeyboardFocusManager().getPermanentFocusOwner() ) ) {
((TopComponent)tc).requestActive();
}
}
}
if (e.isPopupTrigger()) {
//Post a popup menu show request
shouldPerformAction(TabDisplayer.COMMAND_POPUP_REQUEST, i, e);
}
}
@Override
public void mousePressed( MouseEvent e ) {
Point p = e.getPoint();
p = SwingUtilities.convertPoint( e.getComponent(), p, container );
int tabIndex = container.indexAtLocation( p.x, p.y );
SingleSelectionModel sel = container.getModel();
//invoke possible selection change
if( tabIndex >= 0 && e.getComponent() != container ) {
CloseableTabComponent tab = ( CloseableTabComponent ) container.getTabComponentAt( tabIndex );
if( tab.isInCloseButton( e ) ) {
return;
}
tabIndex = container.indexOf( container.getComponentAt( tabIndex ) );
boolean change = shouldPerformAction( TabDisplayer.COMMAND_SELECT,
tabIndex, e );
if( change ) {
sel.setSelectedIndex( tabIndex );
Component tc = container.getDataModel().getTab( tabIndex ).getComponent();
if( null != tc && tc instanceof TopComponent && !(( TopComponent ) tc).isAncestorOf( KeyboardFocusManager.getCurrentKeyboardFocusManager().getPermanentFocusOwner() ) ) {
(( TopComponent ) tc).requestActive();
}
}
}
if( e.isPopupTrigger() ) {
//Post a popup menu show request
shouldPerformAction( TabDisplayer.COMMAND_POPUP_REQUEST, tabIndex, e );
}
}
/**
* Maps {@code JTabbedPane.getModel()} through queue
*/
public SingleSelectionModel getModel() {
return (runMapping(new MapAction<SingleSelectionModel>("getModel") {
@Override
public SingleSelectionModel map() {
return ((JTabbedPane) getSource()).getModel();
}
}));
}
/**
* Maps {@code JTabbedPane.setModel(SingleSelectionModel)} through queue
*/
public void setModel(final SingleSelectionModel singleSelectionModel) {
runMapping(new MapVoidAction("setModel") {
@Override
public void map() {
((JTabbedPane) getSource()).setModel(singleSelectionModel);
}
});
}
/**
* Maps {@code JMenuBar.getSelectionModel()} through queue
*/
public SingleSelectionModel getSelectionModel() {
return (runMapping(new MapAction<SingleSelectionModel>("getSelectionModel") {
@Override
public SingleSelectionModel map() {
return ((JMenuBar) getSource()).getSelectionModel();
}
}));
}
/**
* Maps {@code JMenuBar.setSelectionModel(SingleSelectionModel)}
* through queue
*/
public void setSelectionModel(final SingleSelectionModel singleSelectionModel) {
runMapping(new MapVoidAction("setSelectionModel") {
@Override
public void map() {
((JMenuBar) getSource()).setSelectionModel(singleSelectionModel);
}
});
}
/**
* Maps {@code JPopupMenu.getSelectionModel()} through queue
*/
public SingleSelectionModel getSelectionModel() {
return (runMapping(new MapAction<SingleSelectionModel>("getSelectionModel") {
@Override
public SingleSelectionModel map() {
return ((JPopupMenu) getSource()).getSelectionModel();
}
}));
}
/**
* Maps {@code JPopupMenu.setSelectionModel(SingleSelectionModel)}
* through queue
*/
public void setSelectionModel(final SingleSelectionModel singleSelectionModel) {
runMapping(new MapVoidAction("setSelectionModel") {
@Override
public void map() {
((JPopupMenu) getSource()).setSelectionModel(singleSelectionModel);
}
});
}
public void stateChanged(ChangeEvent e) {
SingleSelectionModel model = (SingleSelectionModel) e.getSource();
if(model.getSelectedIndex() == 0) {
currentControls = buttons;
} else if(model.getSelectedIndex() == 1) {
currentControls = radiobuttons;
} else if(model.getSelectedIndex() == 2) {
currentControls = checkboxes;
} else {
currentControls = togglebuttons;
}
}
public void stateChanged(ChangeEvent e) {
SingleSelectionModel model = (SingleSelectionModel) e.getSource();
boolean srcSelected = model.getSelectedIndex() == 1;
if(currentTabDemo != currentDemo && demoSrcPane != null && srcSelected) {
demoSrcPane.setText(getString("SourceCode.loading"));
repaint();
}
if(currentTabDemo != currentDemo && srcSelected) {
currentTabDemo = currentDemo;
setSourceCode(currentDemo);
}
}
protected SharedTabPane()
{
final SingleSelectionModel selectionModel = getModel();
selectionModel.addChangeListener(e -> {
int index = selectionModel.getSelectedIndex();
if (index != -1)
{
setSharedComponentParent(index);
}
});
}
protected SharedTabPane()
{
final SingleSelectionModel selectionModel = getModel();
selectionModel.addChangeListener(e -> {
int index = selectionModel.getSelectedIndex();
if (index != -1)
{
setSharedComponentParent(index);
}
});
}
public SingleSelectionModel getSelectionModel() {
return tabDisplayer.getSelectionModel();
}
protected final SingleSelectionModel getSelectionModel() {
return selectionModel;
}
@Override
protected final SingleSelectionModel createSelectionModel() {
return new DefaultTabSelectionModel (displayer.getModel());
}
@Override
protected SingleSelectionModel getSelectionModel() {
return JTabbedPaneAdapter.this.getModel();
}
SingleSelectionModel getSelectionModel() {
return selectionModel;
}
@Override
protected final SingleSelectionModel getSelectionModel() {
return controller.getSelectionModel();
}
/**
* Create the selection model which will handle selection for the
* TabDisplayer. SPI method located here because TabDisplayer.setSelectionModel
* is package private.
*/
protected abstract SingleSelectionModel createSelectionModel();