Swing JPopupMenu: Größe

Status
Nicht offen für weitere Antworten.

hdi

Top Contributor
Hi, das folgende KSKB zeigt mein Problem, dass das PopupMenu irgendwie viel zu breit ist. Eig. müsste nach pack() seine Größe genau so klein sein, dass gerade so alle Komponenten rein passen (laut API-Doc zur pack()-Methode).

Aber es ist wesentlich breiter. Bei JMenus, die denke ich den gleichen Layout-Manager nutzen (bitte die sysouts beachten), ist das nicht der Fall..

Woran liegt's, weshalb ist das so breit? Danke

Java:
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;

public class JPopupDemo extends JFrame {

	public static void main(String[] args) {
		new JPopupDemo().setVisible(true);
	}

	public JPopupDemo() {
		setDefaultCloseOperation(EXIT_ON_CLOSE);

		JCheckBox box = new JCheckBox("je länger diese texte sind...");
		JMenuItem menuitem = new JMenuItem("...desto mehr Freiplatz erzeugt er");

		System.out.println("pref box width: " + box.getPreferredSize().width);
		System.out.println("pref menuitem width: "
				+ menuitem.getPreferredSize().width);

		final JPopupMenu popup = new JPopupMenu();
		popup.add(box);
		popup.add(menuitem);
		popup.pack();
		System.out.println("popup layout: " + popup.getLayout());

		JButton b = new JButton("show popup");
		b.addMouseListener(new MouseAdapter() {
			public void mousePressed(MouseEvent e) {
				popup.show(e.getComponent(), e.getX(), e.getY());
				System.out.println("popup width: " + popup.getWidth());
			}
		});

		add(b);
		pack();
	}
}
 

javimka

Top Contributor
^^ Ein fieser "Fehler".
Du verwendest eine JCheckBox. Ersetze das mit einer JCheckBoxMenuItem und es sieht perfekt aus :D
 

MarcB

Bekanntes Mitglied
Oder folgendes machen (kann ja sein das es wirklich eine Checkbox sein soll):

Java:
box.setAlignmentX(0.0f);
menuitem.setAlignmentX(0.0f);

Der "Fehler" kommt vom BoxLayout (von dem ist das DefaultMenuLayout abgeleitet).
Alternativ kann man natürlich auch jeden anderen LayoutManager verwenden.
 

hdi

Top Contributor
Ach, ich wusste gar nicht dass es die Klasse gibt. Also der Layout-Manager kann wohl nur "richtig" mit den entsprechenden MenuItem-Klassen umgehen..

Vielen Dank!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Wie adde ich ein JPopUpMenu AWT, Swing, JavaFX & SWT 3
Nabbit Über JList kein JPopupMenu AWT, Swing, JavaFX & SWT 2
P Event Handling Listener beim öffnen von einem JPopupMenu AWT, Swing, JavaFX & SWT 3
M Accelerator zu JMenuItem des JPopupMenu einer JList AWT, Swing, JavaFX & SWT 2
M JPopupMenu per Klick schließen und gleichzeitig ActionEvent auf JButton? AWT, Swing, JavaFX & SWT 15
S Swing JPopupMenu visible AWT, Swing, JavaFX & SWT 4
S JPopupMenu schließen in SystemTray AWT, Swing, JavaFX & SWT 2
xehpuk Swing Listener für JPopupMenu AWT, Swing, JavaFX & SWT 3
hdi Workaround: TrayIcon & JPopupMenu AWT, Swing, JavaFX & SWT 3
K Swing Listener bei JPopupMenu AWT, Swing, JavaFX & SWT 9
S JPopupMenu oder JCombobox die JList oeffnet..? AWT, Swing, JavaFX & SWT 7
A Swing in JPopupMenu die JRadioButtonMenuItems durchlaufen AWT, Swing, JavaFX & SWT 3
T JmenuItems in JPopupMenu kontextabhängig deaktivieren AWT, Swing, JavaFX & SWT 2
S Swing JPopupMenu nicht schließen AWT, Swing, JavaFX & SWT 2
pinerski Probleme mit JPopupMenu und JMenuItem AWT, Swing, JavaFX & SWT 7
B JPopupMenu, getParent Problem... AWT, Swing, JavaFX & SWT 2
Dragonfire width of JPopupMenu StyleBug AWT, Swing, JavaFX & SWT 3
M JPopupMenu - Ein vorhandenes Kontextmenü erweitern AWT, Swing, JavaFX & SWT 6
Iron Monkey JPopupMenu/JMenuItem Index für getSubElements()[] ermitteln AWT, Swing, JavaFX & SWT 8
X JPopupMenu Items aktualisieren sich nicht AWT, Swing, JavaFX & SWT 3
T JPopupMenu "schließen" AWT, Swing, JavaFX & SWT 7
M jPopupMenu AWT, Swing, JavaFX & SWT 2
M jPopupMenu - Problem bei der Positionierung AWT, Swing, JavaFX & SWT 3
N JPopupMenu - ausgewähltes Element zurückgeben AWT, Swing, JavaFX & SWT 2
P JPopupMenu scrollen AWT, Swing, JavaFX & SWT 2
A JPopupMenu: Nach oben aufpoppen AWT, Swing, JavaFX & SWT 9
S Problem mit JPopupMenu AWT, Swing, JavaFX & SWT 3
T JPopupMenu wird bei Rechtsklick angezeigt! AWT, Swing, JavaFX & SWT 3
Firefork JPopupMenu unter einem Schalter darstellen AWT, Swing, JavaFX & SWT 2
K Netbeans GUI Builder (Matisse) und erstellen von JPopupMenu AWT, Swing, JavaFX & SWT 1
I In JPopupMenu scrollen AWT, Swing, JavaFX & SWT 4
M JPopupMenu per linker Maustaste öffnen AWT, Swing, JavaFX & SWT 9
V Beliebige Komponenten in einem JPopupMenu? AWT, Swing, JavaFX & SWT 3
F Problem mit JPopupMenu AWT, Swing, JavaFX & SWT 3
C JPopUpMenu in einem JTree ist lahm AWT, Swing, JavaFX & SWT 14
V JPopupMenu Problem und Tipp zu mouse/key AWT, Swing, JavaFX & SWT 3
F JPopupMenu und AbstractAction AWT, Swing, JavaFX & SWT 2
N Problem mit JPopupMenu und alwaysOnTop AWT, Swing, JavaFX & SWT 4
G Schließen von JPopupMenu AWT, Swing, JavaFX & SWT 14
G Problem mit JPopupMenu AWT, Swing, JavaFX & SWT 30
R Hässlicher Punkt bei JPopupMenu AWT, Swing, JavaFX & SWT 12
S JPopupMenu - Kontrolliert beenden AWT, Swing, JavaFX & SWT 3
C Problem mit JPopupMenu AWT, Swing, JavaFX & SWT 6
T java.awt.IllegalComponentStateException bei JPopupMenu AWT, Swing, JavaFX & SWT 6
G Problem mit JPopupMenu und Menüauswahl AWT, Swing, JavaFX & SWT 4
R JPopupMenu,JScrollPane + repaint AWT, Swing, JavaFX & SWT 8
D Probleme bei der Positionierung von JPopupMenu AWT, Swing, JavaFX & SWT 2
J "Problem" mit JPopupMenu AWT, Swing, JavaFX & SWT 7
G JPopupMenu in JTable AWT, Swing, JavaFX & SWT 4
O Swing GridBagLayout in Größe anpassen AWT, Swing, JavaFX & SWT 6
P JTextField wird nur sehr klein angezeigt und verändert die Größe nicht AWT, Swing, JavaFX & SWT 3
H JDialog in Größe ändern - Resize-Cursor bleibt betreten der Komponente AWT, Swing, JavaFX & SWT 1
H AWT Dialog Größe ändern - Schwarzer Inhalt beim groß ziehen AWT, Swing, JavaFX & SWT 1
Yonnig JavaFX Größe von WebView an Content anpassen AWT, Swing, JavaFX & SWT 3
J Swing Komponente wird unpassend angepasst in der Größe AWT, Swing, JavaFX & SWT 35
FrittenFritze Ein Problem mit der CSSBox, die Größe wird nicht angepasst AWT, Swing, JavaFX & SWT 5
D JavaFX Größe des Bild an ImageView anpassen AWT, Swing, JavaFX & SWT 3
B Dynamische ListView-Größe, die bei Fenstergrößenänderung sich anpasst AWT, Swing, JavaFX & SWT 19
R Swing JTextField - Schriftgröße je nach Länge und Größe ändern AWT, Swing, JavaFX & SWT 0
B veränderte Größe eines Panels im Vorhinein wissen? AWT, Swing, JavaFX & SWT 1
B Größe der Parent-Component dynamisch an children anpassen AWT, Swing, JavaFX & SWT 30
L JavaFX AnchorPane an die Größe der Scene oder Window binden? AWT, Swing, JavaFX & SWT 3
K JavaFX Component Größe an Inhalt anpassen AWT, Swing, JavaFX & SWT 11
S Java GUI durch variable Größe einer Map anpassen AWT, Swing, JavaFX & SWT 3
R Größe von Scene und stage an grid anpassen AWT, Swing, JavaFX & SWT 4
M Java FX größe der shapes anpassen AWT, Swing, JavaFX & SWT 0
L Swing JPanel Größe anpassen AWT, Swing, JavaFX & SWT 6
E Wie kann ich ein JLabel auf größe der schriftlänge setzten? AWT, Swing, JavaFX & SWT 2
C Swing JFrame ändert Größe AWT, Swing, JavaFX & SWT 0
G Swing JButton ändert (unerwünscht) Größe bei Ausführung AWT, Swing, JavaFX & SWT 4
L Swing Größe automatisch anpassen AWT, Swing, JavaFX & SWT 14
B AWT Panel größe im BorderLayout einstellen AWT, Swing, JavaFX & SWT 1
J Swing Pane im SplitPane automatische Größe aktivieren AWT, Swing, JavaFX & SWT 0
DaCrazyJavaExpert Swing Größe des JPanel ändern/wird nicht geändert. AWT, Swing, JavaFX & SWT 3
M Swing Mehrere Textfelder mit ScrollBars - Größe der Felder AWT, Swing, JavaFX & SWT 0
L JavaFX ListView Größe anpassen AWT, Swing, JavaFX & SWT 1
Neumi5694 Größe von Komboboxen neu berechnen AWT, Swing, JavaFX & SWT 3
L JavaFX List oder TableView Größe dynamisch anpassen? AWT, Swing, JavaFX & SWT 4
P Größe und Ausrichtung von Komponenten festlegen AWT, Swing, JavaFX & SWT 13
I CSS - backgroundImage - Größe automatisch an den Container anpassen AWT, Swing, JavaFX & SWT 1
C Größe des Mauszeigers ermitteln AWT, Swing, JavaFX & SWT 5
MaxG. JFrame Größe ändern AWT, Swing, JavaFX & SWT 16
P Jframe Bild einfügen, Hintergrund Farbe ändern, und Button schrift Größe ändern AWT, Swing, JavaFX & SWT 2
K GridBagLayout verändert die größe? AWT, Swing, JavaFX & SWT 1
D Swing Größe einer JComboBox im GridBagLayout aufgrund der maximalen Länge der enthaltenen Daten AWT, Swing, JavaFX & SWT 7
D JavaFX Alle Knöpfe auf die gleiche Größe AWT, Swing, JavaFX & SWT 14
G JFrame - manuell Größe verändern AWT, Swing, JavaFX & SWT 6
M LayoutManager GridBagLayout passt seine größe nicht an AWT, Swing, JavaFX & SWT 3
F Gui weicht von Designpreview ab (kein fensterrahmen, andere größe) AWT, Swing, JavaFX & SWT 13
A JPanel größe verändern AWT, Swing, JavaFX & SWT 4
M SWT ScrollPane Größe zu klein AWT, Swing, JavaFX & SWT 6
T Swing Größe einer Komponente in einem BoxLayout / FlowLayout festlegen AWT, Swing, JavaFX & SWT 7
H JTree in JScrollPane passt sich nicht an Größe von JPanel an AWT, Swing, JavaFX & SWT 2
L JButton - Größe anders als erwartet AWT, Swing, JavaFX & SWT 2
L JDialog - Event wenn Parent größe ändert AWT, Swing, JavaFX & SWT 2
W GridBagLayout Größe geben AWT, Swing, JavaFX & SWT 1
S Swing JFrame hat nicht die Größe, die ich eingegeben habe AWT, Swing, JavaFX & SWT 3
S Größe der Komponenten, beim ändern der größe des Frames, mit ändern! AWT, Swing, JavaFX & SWT 2
S Größe und Farbe vom JButton festlegen AWT, Swing, JavaFX & SWT 2
D Swing Jlist Größe während der Laufzeit verändern. AWT, Swing, JavaFX & SWT 11

Ähnliche Java Themen


Oben