2017-08-25 5 views
0

Gibt es eine einfache Möglichkeit, eine Schaltfläche in einer Zeile mit einer Ladeanzeige auf der linken Seite der Schaltfläche zu zentrieren, ohne die Schaltfläche selbst zu verschieben?Zentrieren einer Komponente in einer Zeile, die eine andere Komponente mit MigLayout enthält

Ich möchte die Taste immer zentriert sein und die Ladeanzeige (JLabel) sollte direkt auf der Seite der Taste sein.

This solution seems way too complicated and doesn't actually work for what I want to do.

Was ich bisher habe, ist dies:

setLayout(new MigLayout("align center center")); 

add(_loadingIndicator, "center, split 2"); 
add(_applyButton, "center"); 

aber das Zentrum der 2 Komponenten zusammen, so dass die Taste zentriert nie wirklich ist.

Antwort

0

Eine Möglichkeit, Ihre Schaltfläche genau in der Mitte zu haben, besteht darin, dass Ihr Layout drei Spalten hat. Sie werden die Taste in der Mitte und die Ladeanzeige in der rechten platzieren. Angenommen, die Ladeanzeige ist 32x32 Pixel.

setLayout(new MigLayout("debug", "[grow]32px[]0[grow]")); // The [][][]s are columns, meaning 3 columns. The numbers between them are the insets. 

add(_applyButton, "cell 1 0"); // Place the button in 2nd column, 1st row. 
add(_loadingIndicator, "cell 2 0"); // Place the indicator in 3rd column, 1st row. 

Hinweis: Wenn Sie die Einschübe nicht angeben, wird die Schaltfläche ca. zentriert, aber nicht genau in der Mitte. Der Debug-Parameter hilft Ihnen, die Größe der Zellen zu sehen. Sie können es einfach weglassen.

Verwandte Themen