Frage

Hier ist der Code:

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class TestGrid {

    public static void main(String[] args) {
        JFrame frame = new JFrame("Colored Trails");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JPanel mainPanel = new JPanel();
        mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));

        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(4, 9));
        panel.setMaximumSize(new Dimension(9*30-20,4*30));

        JButton btn;
        for (int i=1; i<=4; i++) {
            for (int j=1; j<=4; j++) {
                btn = new JButton();
                btn.setPreferredSize(new Dimension(30, 30));
                panel.add(btn);
            }

            btn = new JButton();
            btn.setPreferredSize(new Dimension(30, 10));
            panel.add(btn);

            for (int j=1; j<=4; j++) {
                btn = new JButton();
                btn.setPreferredSize(new Dimension(30, 30));
                panel.add(btn);
            }

        }
        mainPanel.add(panel);
        frame.add(mainPanel);

        frame.setSize(450,950);
        frame.setVisible(true);
    }
}

Ich nehme an, eine Tabelle mit Schaltflächen mit 4 Zeilen und 9 Spalten zu haben. Und die mittlere Spalte sollte enger sein, wenn andere Spalten. Ich habe es versucht Dimension(30, 10) und Dimension(30, 10) Beide haben keinen Einfluss auf die Breite der mittleren Säule. Wieso den?

War es hilfreich?

Lösung

Layout -Manager können die bevorzugte Größe ignorieren. Speziell, GridLayout Machen Sie immer jede Zelle im Gitter genau die gleiche Größe (aus diesem Grund ist es ein ziemlich nutzloser Layout -Manager).

Sie müssen einen anderen Layout -Manager wie verschachtelt verwenden BoxLayout oder ein GroupLayout.

Andere Tipps

Um die Farben des Host-Web-Farben zu verwenden, müssen Sie das Host-Web-Stilblatt dynamisch mit einiger JavaScript laden.Wenn Sie JQuery auf der Seite verwenden, können Sie den folgenden Block von JavaScript verwenden, um das Stilblatt des Host-Webs auf Ihrer Seite zu injizieren. generasacodicetagpre.

Wenn das nicht funktioniert, können Sie auch den Artikel von Microsoft Wie man: Verwenden Sie ein SharePoint-Website-Stilblatt in Apps für SharePoint für ein Beispiel, das nicht überhaupt ist.

setPreferredSize Ändern Sie die Größe der Taste erst, bis die Dimension unter Verwendung der Dimension eingestellt ist.

Beispiel:-

Dimension dim = new Dimension(20,20), then use setPerferredSize(dim).

Ich fand diese Methodenversion, die perfekt zu Ihrer Lösung passt:

.addComponent(<<a jButton instance>>, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, <<put here an integer to set you max width button size>>)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top