Wpis z mikrobloga

Mirki - programiści, potrzebuję pomocy z #java, a konkretnie #swing. Mianowicie, tworzę apkę pod ekran 800x480 i potrzebuję ręcznie zdefiniować część wymiarów elementów. Mam jednak problem z obsługą JScrollPane, bo jeśli dodam kilkanaście elementów, to owszem scroll jest tworzony, ale wszystkie elementy są widoczne dopiero po rozciągnięciu całego okna. #programowanie

Link do stacka
  • 6
@vantar: niestety nie. Okno skaluje się do pojedynczych pikseli i nic nie widać, a po rozciągnięciu dalej jest ten sam problem. W żadnym miejscu ustawianie max/preferred/size na sztywne wartości nic nie daje, czy to w rodzicach, czy dzieciach
@kozunio12: Używaj Layout menagerów. U ciebie BorderLayout będzie idealny. Zrobiłem coś takiego na szybko. Zobacz czy u ciebie zadziała:

JFrame ramka = new JFrame("Example");
ramka.setSize(new Dimension(800, 480));

ramka.setLayout(new BorderLayout());

JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension(800, 50));
panel.setBackground(Color.red);
ramka.add(panel,BorderLayout.PAGE_START);

JPanel panel2 = new JPanel();
panel2.setBackground(Color.blue);
panel2.setPreferredSize(new Dimension(200, 430));

ramka.add(panel2,BorderLayout.LINE_START);

JPanel panel3 = new JPanel();
panel3.setBackground(Color.yellow);
ramka.add(panel3,BorderLayout.CENTER);

ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ramka.pack();
ramka.setVisible(true);