Abstand JMenuItem
-
Hallo...
ich suche nach einer Methode, mit der sich der Textabstand im JMenuItem ändern läßt. Irgendwie nichts gefunden (AbstractButton, JMenuItem etc.)...Also normalerweise schauts so aus:
----------------------------- | Der Abstand ist zu groß| -----------------------------
lg
kati
-
Der Abstand von was zu was?
-
CengizS schrieb:
von was zu was?
Vom Text zum JMenuItem-Border. Der Text "pickt" nicht links an der Kante des JMenuItem, sondern es ist da ein freier Platz - offensichtlich reserviert für eine Icon. Wenn ich aber eine JMenuItem mit Icon definiere, wird dieser Platz nicht durch diese Icon aufgefüllt, sondert der Text wird noch weiter nach rechts verschoben. Schau dir ganz einfach die Menüleiste (KONKRET die einzelnen Einträge wie z.B. Bearbeiten/Einfügen) von IE/Mozilla an. Falls es da jedoch eine Icon gibt (wie z.B. Favoriten/BCBARENA), dann wird der freie Raum durch diese Icon (idR IE Icon) aufgefüllt. Kann man generell dieser Abstand nicht ändern (wenn nur Text vorhanden ist) ? Wenn ja, wie soll ich es anstellen - falls ich einen Menüeintrag mit einer Icon haben will, dass sie dort platziert wird, wo sie eigentlich hingehört (auf diesen 20-30 px Abstand) und nicht dort plaziert wird, wo eigentlich der Text beginnt ?
Ich hoffe mich klar ausgedrückt zu haben
lg kati
-
Nee also irgendwie nicht. Es sieht doch nach nix aus, wenn einige MenuItems Icons haben und dadurch der Text etwas weiter rechts ist als die MenuItems die nur Text haben und dann ganz am linken Rand kleben.
Zur Veranschaulichung:
+------------+ + [#] Open + + [#} Save + + Save As... + + [#] Exit + +------------+
Dei [#] sollen dabei Icons darstellen ... ich find so eine Darstellung einfach grausig. Ich persönlich finde diese Darstellung besser:
+----------------+ + [#] Open + + [#} Save + + Save As... + + [#] Exit + +----------------+
Aber nur um deine Frage zu beantworten: Du müsstest dir ein MenuItemUI programmieren und dies dann via setUI setzen.
-
Hmmm, ... das habe ich gar nicht gewußt
.. und habe die Einträge so erzeugt:class MyAction extends AbstractAction { public MyAction(String name, Icon icon) { super(name, icon); } //.... } public class MyFrame extends JFrame { //.... public MyFrame() { //name und icon werden definiert... MyAction action = MyAction(name, icon); //MenuBar etc. erzeugen... JMenuItem jmi = new JMenuItem(action); //add()-Methode von MenuBar aufrufen etc. } //main etc. }
Ok... also muss ich eigene UI machen.
Alles klar.
PS: ich dachte es geht einfacher und das ganze läßt sich irgendwie einstellen (z.B. durch Parameter wie bei Layouts)...
thx, Kati