2012-03-14 2 views
1

Я работаю над пользовательским интерфейсом на Java с Swing, я хочу изменить кнопку прокрутки JTabbedPane, поэтому я использую новый пользовательский интерфейс (MyTabbedPaneUI), который я создаю из расширений MetalTabbedPaneUI.Изменить кнопку прокрутки JTabbedPan

Но когда я создаю свой JTabbedPanel, появляются 2 вкладки, и я их не хочу. Если я удалю их, моя полоса прокрутки исчезнет.

Код:

public class MyTabbedPaneUI extends MetalTabbedPaneUI{ 

     private Icon southIcon = new ImageIcon(MyTabbedPaneUI.class.getResource("south.png")); 
     private Icon northIcon = new ImageIcon(MyTabbedPaneUI.class.getResource("north.png")); 
     private Icon eastIcon = new ImageIcon(MyTabbedPaneUI.class.getResource("flecheVerte-gauche-20px.png")); 
     private Icon westIcon = new ImageIcon(MyTabbedPaneUI.class.getResource("flecheVerte-droite-20px.png")); 


     public static ComponentUI createUI(JComponent x) { 
      return new MyTabbedPaneUI(); 
     } 


     @Override 
     protected JButton createScrollButton(int direction) { 

      if ((direction != SOUTH) && (direction != NORTH) && (direction != EAST) && (direction != WEST)) { 
       throw new IllegalArgumentException("Direction must be one of: " + "SOUTH, NORTH, EAST or WEST"); 
      } 


      JButton b = new JButton(); 

      //b.setText(""); 
      b.setPreferredSize(new Dimension(eastIcon.getIconWidth(), eastIcon.getIconHeight())); 

      if (direction == SOUTH) { 
       b.setIcon(southIcon); 
      } else if (direction == NORTH) { 
       b.setIcon(northIcon); 
      } else if (direction == WEST) { 
       b.setIcon(westIcon); 
      } else { 
       b.setIcon(eastIcon); 
      } 

      return b; 
     } 

    } 

ответ

1

см мой пост для уточнения

enter image description here

based on code, требуется уведомление добавить tb.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);

+0

Да я хочу изменить эти две кнопки с изображением, которое я create – Fred37b

+0

В 'BasicTabbedPaneUI', см.' private class ScrollableTabButton расширяет BasicArrow Button' для простой реализации. – trashgod

+0

@Fred B извините, мне не повезло с заменой этих четырех абстрактных кнопок его значком, вы ищете (я потерял ссылку) полностью настроенный BasicTabbedPaneUI, эти AbstractButtons должны принимать предпочтительныйSize, реальный успех - использование Custom Look и Feel, некоторые из они полностью переопределяют BasicTabbedPaneUI – mKorbel

Смежные вопросы