Ouvrir un formulaire quand en clique sur un bouton en java

Fermé
Lolipop - Modifié le 7 avril 2017 à 18:37
MicaLyl Messages postés 44 Date d'inscription mardi 14 février 2017 Statut Membre Dernière intervention 17 juillet 2019 - 10 avril 2017 à 16:46
Bonjour,
je veux lors qu'on clique sur un bouton , une nouvelle fenetre s'ouvre et contient un formulaire qu'on doit remplir et l'enregistrer
je sais pas si ce formulaire doit etre une base donnée ou word ou juste des cases dans cette fenetre
voila mon code


import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

import java.util.ArrayList;
import java.util.List;

public class Avion extends JFrame {
  JLabel[] places = new JLabel[56];
  JPanel container_places = new JPanel();
  JPanel container = new JPanel();
  JTextField input = new JTextField();
  

  JButton buttonBook = new JButton("reserver");
  JLabel label = new JLabel("numero place :");
  JLabel msg = new JLabel();
  String number;
  List<String> reserved = new ArrayList<>();
 
 
  public Avion() {
    this.setSize(800, 650);
    this.setTitle("Reservation Avion");
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setLocationRelativeTo(null);
    this.setResizable(false);
    // On initialise le conteneur avec tous les composants
    initComposant();
    // On ajoute le conteneur
    this.setContentPane(container);
    this.setVisible(true);
    
  }


  private void initComposant() {
    JPanel panel_places = new JPanel();
    panel_places.setPreferredSize(new Dimension(700, 500));

    JPanel panel_form = new JPanel();
    panel_places.setPreferredSize(new Dimension(700, 500));

    for (int i = 0; i < 28; i++) {
      places[i] = new JLabel("place " + (i + 1));
      places[i].setOpaque(true);
      places[i].setPreferredSize(new Dimension(50, 40));
      this.places[i].setBackground(Color.gray);
      places[i].setBorder(BorderFactory.createLineBorder(Color.black));
      panel_places.add(places[i]);
    }
    for (int i = 28; i <40; i++) {
        places[i] = new JLabel("place " + (i + 1));
        places[i].setOpaque(true);
        places[i].setPreferredSize(new Dimension(50, 40));
        this.places[i].setBackground(Color.green);
        places[i].setBorder(BorderFactory.createLineBorder(Color.black));
        panel_places.add(places[i]);
      }
    for (int i = 40; i <56; i++) {
        places[i] = new JLabel("place " + (i + 1));
        places[i].setOpaque(true);
        places[i].setPreferredSize(new Dimension(50, 40));
        this.places[i].setBackground(Color.blue);
        places[i].setBorder(BorderFactory.createLineBorder(Color.black));
        panel_places.add(places[i]);
      }
    
    // On définit la police d'écriture à utiliser
    Font police = new Font("Arial", Font.BOLD, 20);
    input.setFont(police);
    input.setPreferredSize(new Dimension(100, 20));

    buttonBook.setPreferredSize(new Dimension(100, 20));
    buttonBook.addActionListener(new BookListener());

    panel_form.add(label);
    panel_form.add(input);
    panel_form.add(buttonBook);

    msg.setPreferredSize(new Dimension(240, 20));

    container.add(panel_form, BorderLayout.NORTH);
    container.add(panel_places, BorderLayout.CENTER);
    container.add(msg, BorderLayout.SOUTH);
  }

  public boolean book() {
    // validation of the number , empty exsist reserved number
    try {
      if (reserved.contains(number) || (Integer.parseInt(number) > 56 || (Integer.parseInt(number) < 1))) {

        // System.out.println(1);

        return false;
      }
      // System.out.println(2);
      return true;
    } catch (Exception e) {
      return false;
    }
  }
  
  

  class BookListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
      number = input.getText();
      if (book()) {
        // System.out.println(Integer.parseInt(number) - 1);
        places[Integer.parseInt(number) - 1].setBackground(Color.red);
        reserved.add(number);
        msg.setText("** resérvation effectué .");
        msg.setForeground(Color.green);
      } else {
        // show a text says that the place is reserved
        if (reserved.contains(number)) {
          msg.setText("** place déja reservé ");
          msg.setForeground(Color.red);
        } else {
          msg.setText("** erreur saisi ");
          msg.setForeground(Color.orange);
        }

      }

    }
    
  }

  public static void main(String[] args) {
    Avion av = new Avion();
  }
}
A voir également:

1 réponse

MicaLyl Messages postés 44 Date d'inscription mardi 14 février 2017 Statut Membre Dernière intervention 17 juillet 2019 1
10 avril 2017 à 16:46
Je dois avouer que je n'ai pas lu ton code! :p
Mais si j'ai bien compris, tu voudrais afficher un formulaire en cliquant sur un bouton!
On supposera que tu as une classe qui crée une fenêtre contenant ton formulaire (Je l'appellerai dans ce code MonFormulaire)
//Tu crée ton boutton
JButton button = new JButton("Appel au Formulaire");

//On ajoute un événement au bouton
button.addActionListener( new ActionActionListener()
{
    public void actionPerformed(ActionEvent e)
    {
        // Tu crée un objet fenêtre par exemple: 
         MonFormulaire f = new MonFormulaire();
        // Afficher la fenêtre
         f.setVisible(true);
    }
});
0