コード例 #1
0
ファイル: Baseline.java プロジェクト: benbac20/jrdesktop
 private static int getTabbedPaneBaseline(JTabbedPane tp, int height) {
   if (tp.getTabCount() > 0) {
     if (isAqua()) {
       return getAquaTabbedPaneBaseline(tp, height);
     }
     Insets insets = tp.getInsets();
     Insets contentBorderInsets = UIManager.getInsets("TabbedPane.contentBorderInsets");
     Insets tabAreaInsets =
         rotateInsets(UIManager.getInsets("TabbedPane.tabAreaInsets"), tp.getTabPlacement());
     FontMetrics metrics = tp.getFontMetrics(tp.getFont());
     int maxHeight = getMaxTabHeight(tp);
     iconRect.setBounds(0, 0, 0, 0);
     textRect.setBounds(0, 0, 0, 0);
     viewRect.setBounds(0, 0, Short.MAX_VALUE, maxHeight);
     SwingUtilities.layoutCompoundLabel(
         tp,
         metrics,
         "A",
         null,
         SwingUtilities.CENTER,
         SwingUtilities.CENTER,
         SwingUtilities.CENTER,
         SwingUtilities.TRAILING,
         viewRect,
         iconRect,
         textRect,
         0);
     int baseline = textRect.y + metrics.getAscent();
     switch (tp.getTabPlacement()) {
       case JTabbedPane.TOP:
         baseline += insets.top + tabAreaInsets.top;
         if (isWindows()) {
           if (tp.getTabCount() > 1) {
             baseline += 1;
           } else {
             baseline -= 1;
           }
         }
         return baseline;
       case JTabbedPane.BOTTOM:
         baseline = tp.getHeight() - insets.bottom - tabAreaInsets.bottom - maxHeight + baseline;
         if (isWindows()) {
           if (tp.getTabCount() > 1) {
             baseline += -1;
           } else {
             baseline += 1;
           }
         }
         return baseline;
       case JTabbedPane.LEFT:
       case JTabbedPane.RIGHT:
         if (isAqua()) {
           // Aqua rotates left/right text, so that there isn't a good
           // baseline.
           return -1;
         }
         baseline += insets.top + tabAreaInsets.top;
         if (isWindows()) {
           baseline += (maxHeight % 2);
         }
         return baseline;
     }
   }
   return -1;
 }