Δημιουργία παραθύρου

Για τη δημιουργία ενός παραθύρου χρησιμοποιούμε την κλάση JFrame και κάνουμε import τη βιβλιοθήκη javax.swing.*
Έτσι για ένα μίνιμαλ παράθυρο ο κώδικας είναι:

import javax.swing.*;
class MyFrame
{
    public static void main(String[] args)
    {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

Η εντολή JFrame frame = new JFrame(); δημιουργεί το αντικείμενο.

Η εντολή frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); δηλώνει ότι η εφαρμογή κλείνει όταν κλείσουμε το παράθυρο.

Η εντολή frame.setVisible(true); κάνει το παράθυρο ορατό (συνήθως την καλούμε τελευταία).

Εκτός από τις παραπάνω αρχικές εντολές μπορείτε να προσθέσετε και μια σειρά από άλλες όπως οι παρακάτω για να διαμορφώσετε το παράθυρο όπως θέλετε.

class MyFrame
{
  public static void main(String[] args)
  {
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    
    frame.setResizable(false);
    frame.setLocation(300, 300);
    frame.setSize(300, 200);
    frame.setTitle("my java application");
    frame.setLocation(100, 100);
    frame.setResizable(false);
    frame.setBackground(Color.CYAN);
  }
}

Στις περισσότερες όμως περιπτώσεις που οι εφαρμογές είναι μεγαλύτερες, είναι πιο επαγγελματικό να δημιουργείτε μια ξεχωριστή κλάση για το παράθυρο που θα κάνει extend την JFrame.

import javax.swing.*;
class App
{
  public static void main(String[] args)
  {
    MyFrame frame = new MyFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
  }
}
  
class MyFrame extends JFrame
{
  public SimpleFrame()
  {
    setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
    setTitle(DEFAULT_TITLE);
  }
  
  int DEFAULT_WIDTH = 300;
  int DEFAULT_HEIGHT = 200;
  String DEFAULT_TITLE = "Application Title";
}

Μπορείτε όμως να κάνετε extend και την main κλάση. Στην περίπτωση αυτή μπορείτε να έχετε και τον κατασκευαστή ή δημιουργό στην ίδια main κλάση.

import javax.swing.*;
class App extends JFrame
{
  public static void main(String[] args)
  {
    App frame = new App();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.setVisible(true);
  }
  
  public App()
  {
    setSize(300, 200);
    setTitle("my java application");     
  }
}