D03-HAL2025/test

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);
}
}
}