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
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();
}
}