Czy taki kod jest poprawny?
p to JPanel
cp też,
table JTable
i backbutton
ComponentUtils.setSize(cp, fSize); ustawia wszystkie rozmiar component'a.
DimensionUtils.mult(fSize, 0.9); mnoży Dimension przez skalar.
Wszystko ma wyglądać tak:
wszystko jest w "p",
cp jest wyśrodkowany w p, no ale coś nie działa metoda setAlignment__Y__(), bo setAlignmentX() działa dobrze,
w cp na górze jest tabela na całą szerokość cp,
na dole, w prawym rogu jest przycisk "back". // no i tutaj też jest problem z setAlignment__X__() tylko, że z X.
Jak ktoś będzie czytać kod, to radzę zwrócić uwagę na kleje (glue, jeden, między tabelą i buttonem) i jedno ridgidArea (przed tabelą).
Czyli 2 problemy mam z tymi metodami. No i czy dobrze używam layoutów?
// add background panel to JFrame
p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
f.add(p);
// add subpanel to background panel
cp.add(Box.createRigidArea(new Dimension(0,34)));
Dimension fSize = new Dimension(f.getSize());
DimensionUtils.mult(fSize, 0.9);
ComponentUtils.setSize(cp, fSize);
cp.setAlignmentX(Component.CENTER_ALIGNMENT);
cp.setAlignmentY(Component.BOTTOM_ALIGNMENT);
cp.setLayout(new BoxLayout(cp, BoxLayout.Y_AXIS));
p.add(cp);
// subpanel
// *table
cp.add(a);
cp.add(Box.createGlue());
// *back button
backButton.setAlignmentX(Component.RIGHT_ALIGNMENT);
backButton.setAlignmentY(Component.BOTTOM_ALIGNMENT);
cp.add(backButton);
Błędy na obrazku:
*panel cp jest na samej górze,
*backButton nie jest przy prawej krawędzi, tylko obok środka, nie wiem dlaczego.