Mam zyskać komponenty i rozkład jak na rysunku: http://i60.tinypic.com/fuw6qg.jpg
I zadanie:
- przyciski A1-A3 są wyrównane w lewo i nie zmieniają swoich rozmiarów, zrobione +
- przyciski B1-B3 są wyrównane w prawo i nie zmieniają swoich rozmiarów, zrobione +
__- przyciski numeryczne nie zmieniają swoich rozmiarów, - pola tekstowe (JTextField) mogą zmieniać swoje rozmiary i położenie.__
Po próbowaniu wielu sposobów wyszło mi coś takiego:
import java.awt.*;
import javax.swing.*;
public class Rozklady {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setPreferredSize(new Dimension(400, 350));
frame.setLocationRelativeTo(null);
frame.setLayout(new GridLayout(3, 1));
JPanel panelTopLeft = new JPanel();
panelTopLeft.setLayout(new FlowLayout(FlowLayout.LEFT));
panelTopLeft.add(new JButton("A1"));
panelTopLeft.add(new JButton("A2"));
panelTopLeft.add(new JButton("A3"));
JPanel panelTopRight = new JPanel();
panelTopRight.setLayout(new FlowLayout(FlowLayout.RIGHT));
panelTopRight.add(new JButton("B1"));
panelTopRight.add(new JButton("B2"));
panelTopRight.add(new JButton("B3"));
JPanel panelTopContainer = new JPanel();
panelTopContainer.setLayout(new GridLayout(1, 2));
panelTopContainer.add(panelTopLeft);
panelTopContainer.add(panelTopRight);
frame.add(panelTopContainer);
frame.add(new JTextArea());
JPanel panelBottomLeft = new JPanel();
panelBottomLeft.setLayout(new GridLayout(3, 3));
for (int x = 1; x < 10; x++) {
panelBottomLeft.add(new JButton("" + x));
}
JPanel panelBottomRight = new JPanel();
panelBottomRight.setLayout(new GridLayout(3, 1));
for (int x = 0; x < 3; x++) {
panelBottomRight.add(new JTextField());
}
JPanel panelBottomContainter = new JPanel();
panelBottomContainter.setLayout(new GridLayout(1, 2));
panelBottomContainter.add(panelBottomLeft);
panelBottomContainter.add(panelBottomRight);
frame.add(panelBottomContainter);
frame.pack();
frame.setVisible(true);
}
}
Z tym, że jak podane wyżej tylko 2 założenia zadania się zgadzają.
Co prawda przycisków na dole jest 9 ale zmieniają swoją wielkość. Nie wiem jak sprawić by jej nie zmieniał.
Chcę by okno było na środku ekranu, dałem:
frame.setLocationRelativeTo(null);
ale okno pojawia mi się gdzieś na dole ekranu.
Nie wiem też jak wytworzyć ten środek okna, z napisem i suwakami.
Mógłby ktoś mi pomóc z tym?
Próbuję przerabiać jakieś kody z tutoriali ale czym więcej kombinuje tym jeszcze gorzej mi się to okno rozwala, albo znika to co już jest dobrze.
Byłbym bardzo wdzięczny, gdyby ktoś zechciał pomóc, powiedział co pozmieniać lub jak pozmieniać.
Dopiero zaczynam przygodę z GUI i już mam problem, a nie chcę potem przechodzić do innych rzeczy bez wyjaśnienia tego, bo tylko nazbiera mi się braków.