Swing/TextOverflowFadeTabbedPane のバックアップ(No.8)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/TextOverflowFadeTabbedPane へ行く。
- category: swing
folder: TextOverflowFadeTabbedPane
title: JTabbedPaneのタブ文字列のあふれをフェードアウト効果に変更する
tags: [JTabbedPane, JLabel]
author: aterai
pubdate: 2018-12-24T18:32:17+09:00
description: JTabbedPaneのタブ文字列があふれる場合、…記号で省略するのではなく、端付近の文字をフェードアウト効果で透明化します。
image: https://drive.google.com/uc?id=1HfDHTs2CpOVyU6avrOnjFGJrLoyN6veqSg
hreflang:
href: https://java-swing-tips.blogspot.com/2018/12/fade-out-jtabbedpane-tab-title-on.html lang: en
概要
JTabbedPane
のタブ文字列があふれる場合、…
記号で省略するのではなく、端付近の文字をフェードアウト効果で透明化します。
Screenshot
Advertisement
サンプルコード
class TextOverflowFadeTabbedPane extends ClippedTitleTabbedPane {
@Override public void insertTab(
String title, Icon icon, Component component, String tip, int index) {
super.insertTab(title, icon, component, Objects.toString(tip, title), index);
JPanel p = new JPanel(new BorderLayout(2, 0));
p.setOpaque(false);
p.add(new JLabel(icon), BorderLayout.WEST);
p.add(new TextOverflowFadeLabel(title));
setTabComponentAt(index, p);
}
}
View in GitHub: Java, Kotlin解説
- 上: デフォルトの
JLabel
を使用してタブタイトル文字列を表示- JTabbedPaneのタブを等幅にしてタイトルをクリップを使用してタブ幅を等幅にし、あふれは
JLabel
デフォルトの省略記号…
で置換される
- JTabbedPaneのタブを等幅にしてタイトルをクリップを使用してタブ幅を等幅にし、あふれは
- 下:
JTabbedPane
のタブタイトル文字列を表示するJLabel
をフェードアウト効果であふれを表現するTextOverflowFadeLabel
に変更TextOverflowFadeLabel
はJLabelで文字列のあふれをフェードアウト効果に変更するを参照TextOverflowFadeLabel
はIcon
表示などに未対応のためJTabbedPane#setTabComponentAt(...)
で設定するタブタイトル用のコンポーネントにはIcon
のみ表示するJLabel
と文字列のみ表示するTextOverflowFadeLabel
の2
種類のコンポーネントをJPanel
に配置して代用