Frage

Ich hatte Probleme mit einem sehr einfachen Rahmen mit zwei JPanel. Das Problem liegt in der Layout des Center Jpanel, das vier Jbutton enthält. Wie kann ich eine bessere Größe für Schaltflächen oder direkt für JPanel festlegen, das den GridLayout verwendet? Auf dem Bild das Problem:

ALT http://img42.imageshack.us/img42/4601/horrible.jpg !

Hier der Code: `Jframe Window = new JFrame (" Horrible! LOL ");

    JTextField textField = new JTextField("");
    textField.setPreferredSize(new Dimension(200,20));
    JPanel textPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
    textPanel.add(textField);
    window.add(textPanel, BorderLayout.NORTH);

    JButton plus = new JButton("+");
    //plus.setPreferredSize(new Dimension(50,50)); nothing would change
    JButton minus = new JButton("-");
    JButton per = new JButton("x");
    JButton divide = new JButton("/");
    JPanel prova = new JPanel(new GridLayout(2,2,10,10));
    Dimension d = new Dimension(20,20);
    prova.setMaximumSize(d); // nothing changed!

    prova.add(plus);
    prova.add(minus);
    prova.add(per);
    prova.add(divide);
    window.add(prova, BorderLayout.CENTER);

    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    window.setSize(250,300);
    window.setResizable(false);
    window.setVisible(true);`

Welches ist eine gute Lösung?

Mit freundlichen Grüßen

War es hilfreich?

Lösung

Leider ist GridLayout -Respekt bevorzugte Größen. Aber wenn Sie sich an das Gitterlayout halten möchten, können Sie so etwas ausprobieren:

    public static JComponent wrap(JComponent comp)
    {
        JPanel panel = new JPanel();
        panel.add(comp);
        return panel;
    }

Und dann fügen Sie anstelle von Direclty hinzu, dass sie zu Prova hinzufügen: wie folgt:

            prova.add(wrap(plus)); 
            prova.add(wrap(minus)); 
            prova.add(wrap(per)); 
            prova.add(wrap(divide));

Getestet, funktioniert perfekt !! Es gibt jedoch andere bessere Wege

Andere Tipps

Das ist mir passiert: Es ist definitiv an der Oberkante des Netzes befestigt.

ALT Text http://img96.imageshack.us/img96/9431/stillnot.jpg

Selbst wenn ich in diesem Fall in der Wrap -Methode die Vorzugsgröße von Schaltflächen/Comps einstellen kann, befindet sich alle Tasten an seiner eigenen Kante. Was ist mit anderen Lösungen? Wie würden Sie Tasten für einen Taschenrechner positionieren? Mit freundlichen Grüßen und Thanx Angain!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top