Próbuję ustawić dwa zestawy przycisków dla GUI kalkulatora. Każdy używa GroupLayout do ich tworzenia. Jeden zestaw to liczby (i "."), Drugi to przyciski operacyjne. To zasadniczo działa, ale jeśli jeden z przycisków ma podwójną długość (na przykład przycisk równości na moim zestawie operacji), wyrzuca pozostałe przyciski poza linię. Użyję operacji przedstawionych jako przykład. Są dwie kolumny i cztery rzędy przycisków. Ostatni rząd ma tylko jeden przycisk - równy. Chcę, aby ta podwójna długość rozciągała się na obydwu kolumnach. W tej chwili po prostu popycha drugą kolumnę wzdłuż jej końca, kiedy chcę, aby druga kolumna usiadła na niej.Java - Mieszanie komponentów w GroupLayout
Oto kod układu - operLayout to nazwa układu operacji, lewy i prawy nawias w pierwszym rzędzie, + i - na drugim, * i/na trzecim i równy w ostatnim rzędzie . Każdy przycisk ma ustawiony minimalny rozmiar w innym miejscu (wszystkie są takie same, z wyjątkiem równego dwa razy dłuższego).
operLayout.setAutoCreateGaps(true);
operLayout.setAutoCreateContainerGaps(true);
operLayout.setVerticalGroup(operLayout
.createSequentialGroup()
.addGroup(
operLayout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(leftBracket)
.addComponent(rightBracket))
.addGroup(operLayout.createParallelGroup().addComponent(add).addComponent(subtract))
.addGroup(operLayout.createParallelGroup().addComponent(multiply).addComponent(divide))
.addGroup(operLayout.createParallelGroup().addComponent(equals)));
operLayout.setHorizontalGroup(operLayout
.createSequentialGroup()
.addGroup(
operLayout.createParallelGroup().addComponent(leftBracket).addComponent(add)
.addComponent(multiply).addComponent(equals))
.addGroup(
operLayout.createParallelGroup().addComponent(rightBracket).addComponent(subtract)
.addComponent(divide)));
Rozumiem, dlaczego tak się dzieje, ale nie jestem pewien, jak to rozwiązać. Czy istnieje prosty sposób? Czy powinienem zmienić sposób, w jaki to robię? Dzięki
Pochwalam za wybór "GroupLayout" dla tego zadania. Uważam, że ten układ jest najpotężniejszy do układania standardowych formularzy. Łatwo go przeoczyć, ponieważ jest skomplikowany w użyciu. Po nauczeniu się, jak to działa, używam go prawie wyłącznie. –
można ponownie sformatować swój kod? Aktualne, y jest raczej nieczytelne. – ArtB
tak, proszę, chociaż ktoś mógł cię do tego pobić. Dziękujemy @ErickRobertson, wiem, co masz na myśli, wydaje się to skomplikowane, ale kiedy już to zrozumiesz, to naprawdę przydatne! – PatrickJBC