Meine Java Swing App hat einige AbstractActions, die in JMenuItems und JButtons verwendet werden. Ich möchte einige von ihnen in eine JToolbar in einem JButton einfügen, aber Ich möchte nur das Symbol anzeigen, nicht den Text. Gibt es einen Best Practice Weg dies zu tun?AbstractAction in JButton in JToolbar ohne Text
Antwort
am einfachsten ist es, die gemeinsame Aktion in die Symbolleiste hinzufügen, wird dies den Text automatisch ausgeblendet:
Action sharedAction = new AbstractAction("some text") {
....
}
sharedAction.putValue(Action.SMALL_ICON, someIcon);
myToolBar.add(sharedAction);
myNormalButton.setAction(sharedAction);
aus irgendeinem Grund Wenn Sie auf die Schaltfläche in der Symbolleiste manuell erstellen möchten, müssen Sie seine hideActionText konfigurieren Eigenschaft auf true, bevor die Schaltfläche in der Symbolleiste
JButton manual = new JButton(sharedAction);
manual.setHideActionText(true);
myToolBar.add(manual);
aktualisieren
Zugabe fo r die inverse requirement, solved in another answer, tun das inverse, dh die Eigenschaft auf false gesetzt:
AbstractButton button = myToolBar.add(sharedAction);
button.setHideActionText(false);
Der Vorteil gegenüber Erstellen und Hinzufügen einer JButton ist die Schaltfläche als geeignet für eine JToolBar mit allen internen Hörern anstelle konfiguriert haben.
+1 für 'hideActionText()', was der [empfohlene] (http://docs.oracle.com/javase/6/docs/api/javax/swing/Action.html) Ansatz ist. – trashgod
Sie können den Wert für den Schlüssel Action.NAME
auf null
oder einen leeren Wert String
festlegen.
putValue(Action.NAME, null);
Nachtrag: Als Erleichterung für die Benutzer, setzt die vorherige Zeichenfolge in Action.SHORT_DESCRIPTION
, wo es die Schaltfläche werden wird toolTipText
.
ehhh ... nein (zumindest so, wie ich die Frage verstehe: eine Aktion mit Text und Icon, geteilt durch eine einfache Schaltfläche und eine Symbolleistenschaltfläche, die sowohl Text als auch Symbol auf der vorherigen und nur das Symbol auf letzterer zeigt) – kleopatra
Ich habe eine "Aktion" mit dem gleichen Symbol in beiden und Text in keiner. – trashgod
In meinem Fall beobachtete ich, dass, wenn ich nur die Aktion der JToolBar hinzufügen der Text nicht erscheint, so stellen Sie sicher, dass Sie die Aktion in einem JButton setzen.
JToolBar tb = new JToolBar();
tb.add(new JButton(sharedAction));
hmm .. so ist Ihr Ziel das Gegenteil von den OP's, das ist _want_ der Text in der Symbolleiste erscheinen? – kleopatra
Genau, hmm, vielleicht hätte ich das hier nicht posten sollen, da es vielleicht verwirrend ist. Ich habe nirgends gefunden, wie man Text und Icon zu AbstractAction hinzufügen kann. Danach habe ich gemerkt, dass wenn Sie die AbstractAction zu einem JButton hinzufügen, Sie beide sehen, ansonsten erscheint nur das Icon. – dalvarezmartinez1
- 1. Tastenkombination für jButton ohne Alt-Taste
- 2. Swing JButton: Icon über Text
- 3. JButton Text und Bildsymbol sind mit Elipsis abgeschnitten
- 4. hinzufügen JProgressBar und JLabel vertikal in JToolBar
- 5. Swing - JButton Text nicht auf setText reagiert()
- 6. Auswahl beibehalten nach dem Klicken auf ein JButton, um Text zu formatieren
- 7. Java: Wie verweist man auf GUI-Komponenten von einem AbstractAction-Objekt?
- 8. JButton Frage
- 9. Put JButton in unten rechts
- 10. Zunehmende Schriftgröße in einem JButton
- 11. Sync JMenu ButtonGroups mit JToolbar ButtonGroups
- 12. JButton Text ändert sich, wenn eine Aktion eingestellt ist
- 13. JButton Hintergrundbild
- 14. JButton floating
- 15. Ausrichten JButton
- 16. Erstellen eines benutzerdefinierten JButton in Java
- 17. Probleme beim Skalieren von JButton in Java
- 18. Passt Text in GTK # TextView ohne Bildlaufleiste
- 19. Einfügen ohne Rich-Text-Formatierung in EditText
- 20. Change Text in IFrame ohne JQuery
- 21. Rounded Swing JButton mit Java
- 22. JButton sendet keine Aktion Befehl
- 23. Wie JLabel und JButton in BoxLayout zum Zentrum
- 24. JButton Positionierung, erscheint nicht
- 25. Wie ändert man JButton Text in einer Klasse basierend auf Daten aus einer anderen Klasse?
- 26. Zugriff auf JButton []
- 27. Wie wird automatisch die Größe von JButton-Text basierend auf der Größe von JButton erhöht oder verringert?
- 28. GridbagLayout mit JTextField und JButton, formatiert, wenn JButton sichtbar
- 29. JButton Unterklasse nicht ändern Transparenz
- 30. Rechtsklick auf JButton
hmm .. ist das Standardverhalten einer Aktion nicht zu einer Symbolleiste hinzugefügt? – kleopatra