下面列出了javax.swing.JTabbedPane#getUI ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public void actionPerformed(ActionEvent e) {
JTabbedPane pane = (JTabbedPane) e.getSource();
if (pane != null && (pane.getUI() instanceof CloseTabPaneUI)) {
CloseTabPaneUI ui = (CloseTabPaneUI) pane.getUI();
String command = e.getActionCommand();
if (command != null && command.length() > 0) {
int mnemonic = e.getActionCommand().charAt(0);
if (mnemonic >= 'a' && mnemonic <= 'z') {
mnemonic -= ('a' - 'A');
}
Integer index = ui.mnemonicToIndexMap.get(new Integer(mnemonic));
if (index != null && pane.isEnabledAt(index.intValue())) {
pane.setSelectedIndex(index.intValue());
}
}
}
}
@Override
public void actionPerformed(ActionEvent e) {
JTabbedPane pane = (JTabbedPane) e.getSource();
CloseTabPaneUI ui = (CloseTabPaneUI) pane.getUI();
int tabPlacement = pane.getTabPlacement();
if (tabPlacement == TOP || tabPlacement == BOTTOM) {
ui.navigateSelectedTab(WEST);
}
else {
ui.navigateSelectedTab(NORTH);
}
}
@Override
public void actionPerformed(ActionEvent e) {
JTabbedPane pane = (JTabbedPane) e.getSource();
CloseTabPaneUI ui = (CloseTabPaneUI) pane.getUI();
int tabPlacement = pane.getTabPlacement();
if (tabPlacement == TOP || tabPlacement == BOTTOM) {
ui.navigateSelectedTab(EAST);
}
else {
ui.navigateSelectedTab(SOUTH);
}
}
/**
* Create the left side panel of the client.
*
* @return A component containing the components left of the game screen
*/
private JComponent createLeftPanel(StendhalClient client) {
minimap = new MapPanelController(client);
final StatsPanelController stats = StatsPanelController.get();
final BuddyPanelController buddies = BuddyPanelController.get();
ScrolledViewport buddyScroll = new ScrolledViewport((JComponent) buddies.getComponent());
buddyScroll.setScrollingSpeed(SCROLLING_SPEED);
final JComponent buddyPane = buddyScroll.getComponent();
buddyPane.setBorder(null);
final JComponent leftColumn = SBoxLayout.createContainer(SBoxLayout.VERTICAL);
leftColumn.add(minimap.getComponent(), SLayout.EXPAND_X);
leftColumn.add(stats.getComponent(), SLayout.EXPAND_X);
// Add a background for the tabs. The column itself has none.
JPanel tabBackground = new JPanel();
tabBackground.setBorder(null);
tabBackground.setLayout(new SBoxLayout(SBoxLayout.VERTICAL));
JTabbedPane tabs = new JTabbedPane(SwingConstants.BOTTOM);
// Adjust the Tab Width, if we can. The default is pretty if there's
// space, but in the column there are no pixels to waste.
TabbedPaneUI ui = tabs.getUI();
if (ui instanceof StyledTabbedPaneUI) {
((StyledTabbedPaneUI) ui).setTabLabelMargins(1);
}
tabs.setFocusable(false);
tabs.add("Friends", buddyPane);
tabs.add("Group", GroupPanelController.get().getComponent());
tabBackground.add(tabs, SBoxLayout.constraint(SLayout.EXPAND_X, SLayout.EXPAND_Y));
leftColumn.add(tabBackground, SBoxLayout.constraint(SLayout.EXPAND_X, SLayout.EXPAND_Y));
return leftColumn;
}
private boolean makeTabVisible(JTabbedPane tp, int selectedTab) {
validateTab();
if (!(tp.getUI() instanceof BasicTabbedPaneUI)) {
try {
EventQueueWait.call(tp, "setSelectedIndex", selectedTab);
} catch (NoSuchMethodException e) {
throw new InvalidElementStateException(
"Unable to call setSelectedIndex on JTabbedPane. selectedTab = " + selectedTab, e);
}
return true;
}
boolean isVisible = false;
int n = tp.getTabCount();
int loopCount = n;
Action backward = tp.getActionMap().get("scrollTabsBackwardAction");
Action forward = tp.getActionMap().get("scrollTabsForwardAction");
while (!isVisible && loopCount-- > 0) {
int firstVisibleTab = -1, lastVisibleTab = -1;
for (int i = 0; i < n; i++) {
Rectangle tabBounds = tp.getBoundsAt(i);
int tabForCoordinate = tp.getUI().tabForCoordinate(tp, tabBounds.x + tabBounds.width / 2,
tabBounds.y + tabBounds.height / 2);
if (tabForCoordinate != -1) {
if (firstVisibleTab == -1) {
firstVisibleTab = tabForCoordinate;
}
lastVisibleTab = tabForCoordinate;
}
}
isVisible = firstVisibleTab <= selectedTab && selectedTab <= lastVisibleTab;
if (isVisible) {
continue;
}
if (selectedTab < firstVisibleTab) {
backward.actionPerformed(new ActionEvent(tp, ActionEvent.ACTION_PERFORMED, ""));
} else {
forward.actionPerformed(new ActionEvent(tp, ActionEvent.ACTION_PERFORMED, ""));
}
}
return isVisible;
}
@Override
public void actionPerformed(ActionEvent e) {
JTabbedPane pane = (JTabbedPane) e.getSource();
CloseTabPaneUI ui = (CloseTabPaneUI) pane.getUI();
ui.navigateSelectedTab(EAST);
}
@Override
public void actionPerformed(ActionEvent e) {
JTabbedPane pane = (JTabbedPane) e.getSource();
CloseTabPaneUI ui = (CloseTabPaneUI) pane.getUI();
ui.navigateSelectedTab(WEST);
}
@Override
public void actionPerformed(ActionEvent e) {
JTabbedPane pane = (JTabbedPane) e.getSource();
CloseTabPaneUI ui = (CloseTabPaneUI) pane.getUI();
ui.navigateSelectedTab(NORTH);
}
@Override
public void actionPerformed(ActionEvent e) {
JTabbedPane pane = (JTabbedPane) e.getSource();
CloseTabPaneUI ui = (CloseTabPaneUI) pane.getUI();
ui.navigateSelectedTab(SOUTH);
}
@Override
public void actionPerformed(ActionEvent e) {
JTabbedPane pane = (JTabbedPane) e.getSource();
CloseTabPaneUI ui = (CloseTabPaneUI) pane.getUI();
ui.navigateSelectedTab(NEXT);
}
@Override
public void actionPerformed(ActionEvent e) {
JTabbedPane pane = (JTabbedPane) e.getSource();
CloseTabPaneUI ui = (CloseTabPaneUI) pane.getUI();
ui.navigateSelectedTab(PREVIOUS);
}
@Override
public void actionPerformed(ActionEvent e) {
JTabbedPane pane = (JTabbedPane) e.getSource();
CloseTabPaneUI ui = (CloseTabPaneUI) pane.getUI();
ui.requestMyFocusForVisibleComponent();
}