3

私のJavaSwingアプリには、JMenuItemsとJButtonsの両方で使用されるAbstractActionsがいくつかあります。それらのいくつかをJButton内のJToolbarに配置したいのですが、テキストではなくアイコンのみを表示したいと思います。これを行うためのベストプラクティスの方法はありますか?

4

3 に答える 3

11

最も簡単なのは、共有アクションをツールバーに追加することです。これにより、テキストが自動的に非表示になります。

Action sharedAction = new AbstractAction("some text") {
    ....
} 
sharedAction.putValue(Action.SMALL_ICON, someIcon);
myToolBar.add(sharedAction);
myNormalButton.setAction(sharedAction);

何らかの理由でtoolBarにボタンを手動で作成する場合は、ボタンをツールバーに追加する前に、hideActionTextプロパティをtrueに構成する必要があります。

JButton manual = new JButton(sharedAction);
manual.setHideActionText(true);
myToolBar.add(manual);

アップデート

別の答えで解決された逆の要件については、逆を実行します。つまり、プロパティをfalseに設定します。

AbstractButton button = myToolBar.add(sharedAction);
button.setHideActionText(false);

JButtonを作成および追加することに対する利点は、すべての内部リスナーが配置されたJToolBarに適切にボタンを構成できることです。

于 2012-04-15T14:39:03.900 に答える
1

キーの値Action.NAMEnullまたは空に設定できますString

putValue(Action.NAME, null);

補遺:ユーザーの便宜のために、前の文字列をに入れてください。Action.SHORT_DESCRIPTIONこれがボタンのになりますtoolTipText

于 2012-04-15T02:15:36.310 に答える
1

私の場合、アクションをJToolBarに追加しただけではテキストが表示されないので、アクションをJButtonに配置していることを確認してください。

JToolBar tb = new JToolBar();
tb.add(new JButton(sharedAction));
于 2013-07-30T10:42:31.310 に答える