90 lines
3.0 KiB
Plaintext
90 lines
3.0 KiB
Plaintext
import java.awt.BorderLayout;
|
|
import java.awt.EventQueue;
|
|
import java.awt.FlowLayout;
|
|
|
|
import javax.swing.JFrame;
|
|
import javax.swing.JPanel;
|
|
import javax.swing.border.EmptyBorder;
|
|
import javax.swing.JButton;
|
|
import javax.swing.JTextField;
|
|
import javax.swing.JLabel;
|
|
import javax.swing.JOptionPane;
|
|
import java.awt.event.ActionListener;
|
|
import java.awt.event.ActionEvent;
|
|
|
|
public class Exo extends JFrame {
|
|
|
|
private JPanel contentPane;
|
|
private JTextField textField;
|
|
|
|
/**
|
|
* Launch the application.
|
|
*/
|
|
public static void main(String[] args) {
|
|
EventQueue.invokeLater(new Runnable() {
|
|
public void run() {
|
|
try {
|
|
Exo frame = new Exo();
|
|
frame.setVisible(true);
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Create the frame.
|
|
*/
|
|
public Exo() {
|
|
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
|
setBounds(100, 100, 450, 150);
|
|
contentPane = new JPanel();
|
|
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
|
|
contentPane.setLayout(new BorderLayout(0, 0));
|
|
setContentPane(contentPane);
|
|
|
|
// Panel pour le champ de texte et le bouton
|
|
JPanel inputPanel = new JPanel();
|
|
inputPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
|
|
contentPane.add(inputPanel, BorderLayout.CENTER);
|
|
|
|
// Label pour l'instruction
|
|
JLabel instructionLabel = new JLabel("Entrez une année :");
|
|
inputPanel.add(instructionLabel);
|
|
|
|
// Champ de texte
|
|
textField = new JTextField();
|
|
inputPanel.add(textField);
|
|
textField.setColumns(10);
|
|
|
|
// Bouton "Calculer"
|
|
JButton btnNewButton = new JButton("Calculer");
|
|
btnNewButton.addActionListener(new ActionListener() {
|
|
public void actionPerformed(ActionEvent e) {
|
|
clicB();
|
|
}
|
|
});
|
|
inputPanel.add(btnNewButton);
|
|
}
|
|
|
|
public void clicB() {
|
|
try {
|
|
// Récupérer l'année saisie
|
|
int year = Integer.parseInt(textField.getText());
|
|
|
|
// Vérifier si l'année est bissextile
|
|
boolean isLeapYear = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
|
|
|
|
// Afficher le résultat dans une fenêtre pop-up
|
|
if (isLeapYear) {
|
|
JOptionPane.showMessageDialog(this, year + " est une année bissextile.", "Résultat", JOptionPane.INFORMATION_MESSAGE);
|
|
} else {
|
|
JOptionPane.showMessageDialog(this, year + " n'est pas une année bissextile.", "Résultat", JOptionPane.INFORMATION_MESSAGE);
|
|
}
|
|
} catch (NumberFormatException e) {
|
|
// Gérer les erreurs si l'entrée n'est pas un nombre valide
|
|
JOptionPane.showMessageDialog(this, "Veuillez entrer une année valide.", "Erreur", JOptionPane.ERROR_MESSAGE);
|
|
}
|
|
}
|
|
} |