私のJavaSwingアプリには、JMenuItemsとJButtonsの両方で使用されるAbstractActionsがいくつかあります。それらのいくつかをJButton内のJToolbarに配置したいのですが、テキストではなくアイコンのみを表示したいと思います。これを行うためのベストプラクティスの方法はありますか?
質問する
4126 次
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.NAME
をnull
または空に設定できます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 に答える