Jak zmienić rozmiar JSplitPane
na false
? Nie chciałem zmienić rozmiaru JSplitPane
, użyłem go do obramowania tego panelu. Czy istnieje inny sposób tworzenia tej samej struktury granicznej, aby podzielić panel pionowo na dwie części.JSplitPane set resizable false
Odpowiedz
można zastąpić JSplitPane méthodes getDividerLocation()
i getLastDividerLocation
i zwraca wartość stałą.
JSplitPane split = new JSplitPane(JSplitPane.VERTICAL_SPLIT){
private final int location = 100;
{
setDividerLocation(location);
}
@Override
public int getDividerLocation() {
return location ;
}
@Override
public int getLastDividerLocation() {
return location ;
}
};
@Tapas Bose, nie ma potrzeby rozszerzania klasy podziału. – camickr
@camickr Ale to właśnie robi to rozwiązanie, rozszerza JSpiltPane o anonimową klasę. –
Rozważmy za korzystanie Compound Borders z EtchedBorder
splitPane.setEnabled(false);
final double pos = split.getDividers().get(0).getPosition();
split.getDividers().get(0).positionProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> arg0,
Number arg1, Number arg2) {
split.getDividers().get(0).setPosition(pos);
}
});
Dla zapobiegania użytkownikom zmianę rozmiaru okienka można również ustawić rozmiar dzielnik zera.
splitPane.setDividerSize(0);
Wyłączanie podzielonego panelu. Zobacz poniżej. – camickr