TITLE:JTabbedPaneのタブをソート

JTabbedPaneのタブをソート

編集者:Terai Atsuhiro
作成日:2006-04-24
更新日:2023-04-30 (日) 12:17:36

概要

JTabbedPaneのタブをソートします。

#screenshot

サンプルコード

 class SortAction extends AbstractAction {
   public SortAction(String label, Icon icon) {
     super(label,icon);
   }
   public void actionPerformed(ActionEvent evt) {
     setSortedTab(tab, makeSortedVector(tab));
   }
   private Vector makeSortedVector(JTabbedPane t) {
     Vector l = new Vector();
     for(int i=0;i<t.getTabCount();i++) {
       l.addElement(new ComparableTab(t.getTitleAt(i), t.getComponentAt(i)));
     }
     Collections.sort(l);
     return l;
   }
   private void setSortedTab(final JTabbedPane t, final Vector l) {
     t.setVisible(false);
     t.removeAll();
     for(int i=0;i<l.size();i++) {
       ComparableTab c = (ComparableTab)l.get(i);
       t.addTab(c.title, c.comp);
     }
     t.setVisible(true);
   }
   class ComparableTab implements Comparable{
     final public String title;
     final public Component comp;
     public ComparableTab(String title, Component comp) {
       this.title = title;
       this.comp  = comp;
     }
     public int compareTo(Object o) {
       return this.title.compareTo(((ComparableTab)o).title);
     }
   }
 }
  • &jnlp;
  • &jar;
  • &zip;

解説

上記のサンプルでは、ソートしたリストを作成したあと、一旦タブをすべて削除し、リストからJTabbedPaneにタブを戻しています。

タブを追加、削除、ダブルクリックで名前変更して確認してみてください。

コメント