import java.awt.*; import javax.swing.*; /** * Demonstreaza extinderea JFrame pentru a crea o fereastra pe ecran. *
Clasa extinde JFrame din biblioteca javax.swing pentru a crea o fereastra. * Componentele adaugate (butoane) nu reactioneaza, nefiind definit un mod de * reactie (tratarea evenimentelor asociate). Inchiderea ferestrei nu conduce * la terminarea programului (evenimentul nu e tratat). Modul de asezare a * componentelor este relativ la margini (de fapt modul implicit!). *
* Se compileaza din linia de comanda cu: *
* javac ExtensieJFrame.java ** Se executa din linia de comanda cu: *
* java ExtensieJFrame ** */ public class ExtensieJFrame extends JFrame { /** * Constructorul implicit. Initializarile cuprind stabilirea layout-ului * ferestrei (modului de dispunere a componentelor in fereastra) si * adaugarea componentelor in cadru (fereastra). * */ public ExtensieJFrame() { // Obtinerea panoului de continut (content pane) intern cadrului // (containerul in care vor fi plasate componentele ferestrei) Container container = getContentPane(); // Stabilirea layout-ului panoului, BorderLayout (asezarea componentelor // relativ la marginea panoului) cu spatiu 10 pixeli intre componente container.setLayout(new BorderLayout(10, 10)); // Adaugarea a 5 butoane la panoul cadrului (ferestrei) container.add(new JButton("Est (Dreapta)"), BorderLayout.EAST); container.add(new JButton("Sud (Jos)"), BorderLayout.SOUTH); container.add(new JButton("Vest (Stanga)"), BorderLayout.WEST); container.add(new JButton("Nord (Sus)"), BorderLayout.NORTH); container.add(new JButton("Centru"), BorderLayout.CENTER); } /** * Punctul de intrare in program. Metoda e executata prima, atunci cand * e lansata in executie clasa din care face parte. * */ public static void main(String[] args) { // Crearea obiectului cadru ExtensieJFrame cadru = new ExtensieJFrame(); // Adaugarea titlului ferestrei cadru.setTitle("Demo extindere JFrame si asezare BorderLayout"); // Din jdk1.3, pentru terminarea programului la inchiderea ferestrei // cadru.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Stabilirea dimensiunii ferestrei // - impunerea dimensiunilor ferestrei (de evitat pentru BorderLayout) // cadru.setSize(100, 100); // - compactarea componentelor adaugate cadru.pack(); // Stabilirea vizibilitatii ferestrei (Atentie: implicit e false!) cadru.setVisible(true); } }