Frage

Der andere Tag dieser Code funktioniert. Ich änderte einige Dinge und wieder lief es und jetzt ist es nicht wie vorgesehen. Offensichtlich etwas, was ich verändert verändert das Verhalten, aber ich habe zurück gegangen und kehrte alle diese Änderungen und es funktioniert immer noch nicht. Ohne Berücksichtigung dieses Bit von Informationen (starten), warum dieser Code nicht platzieren Sie ein 15x15 Raster von JLabels innerhalb eines JPanel?

gameBoard.setLayout(new FlowLayout());

for (int i = 0; i < 15; i++)
{
    for (int j = 0; j < 15; j++)
    {
        JLabel tile = new JLabel("");                       
     tile.setHorizontalAlignment(SwingConstants.CENTER);
        tile.setPreferredSize(new Dimension(27, 27));
        tile.setBorder(new EtchedBorder());
        tile.setEnabled(false);

        gameBoard.add(tile);
    }
}

Spielbretts ist ein JPanel durch NetBeans definiert GUI Builder. Es hat eine bevorzugte Größe, eine maximale Größe (das gleiche wie bevorzugt). Die horizontale / vertikale Größe veränderbare Optionen sind deaktiviert, aber wenn dieser Code jede Taste erstreckt sich horizontal in einer Reihe läuft, ohne jemals zu brechen.

Wenn ich richtig verstehe, ist Flow soll Elemente wickeln, wenn sie das Ende ihres enthaltenden Elements erreichen. Dies geschieht vor dem heutigen Tag, ich weiß wirklich nicht, warum dieses Verhalten gestoppt?

War es hilfreich?

Lösung 4

ich es herausgefunden. Offenbar hatte ich selbst die preferredSize innerhalb des Codes einzustellen. Gerade in dem Netbeans Eigenschaftenfenster Einstellung ist nicht genug. Seltsam.

Andere Tipps

Es wäre viel besser, ein verwenden Gridlayout .

GridLayout gridLayout = new GridLayout(15, 15);

Der Fluss Layout einen neuen Look zu verwenden, und, verschiedene Schriftarten oder ein Java-VM-Upgrade aufgrund geändert haben kann. ein Fluss Layout für diese Anwendung definiert, wird nicht empfohlen, da Sie auf die zugrunde liegenden Größen angewiesen sind, die über virtuelle Maschinen oder schauen und fühlt sich variieren kann.

Im Interesse eines Menschen lehren, wie man Fisch:

Revisionskontrollsysteme sind groß. Auch Ihr System in regelmäßigen Abständen aus Ihrer Quelle einen zurück machen.

Eine nützliche Debugging-Technik ist, die Dinge zu nehmen, bis es funktioniert. Hat Einstellung eine Grenze führen, dass Sie den Code zu brechen. in die andere Richtung, können Sie ein triviales Programm schreiben, das das Problem veranschaulicht.

Ich habe großen Erfolg und Kontrolle mittels Tablelayout und ich würde es jedem empfehlen. Sie können die Spalten und Zeilen mit bestimmten Anzahl von Pixeln definieren, oder Sie können nur TableLayout.PREFERRED für jede Spalte und / oder Zeile verwenden. Sehr schön und flexible Layout aus. Wir verwenden es überall.

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