Aujourd'hui, je vais vous présenter comment utiliser Java Swing pour développer un simple petit calendrier. Regardons le code ci-dessous:
Créez d'abord une classe Calendarbean pour le calcul de la date de base:
package autre 1; import java.util.calendar; classe publique Calendarbean {String Day []; int an = 2005, mois = 0; public void seyear (int an) {this.year = an; } public int getyear () {Retour Year; } public void setMonth (int mois) {this.month = mois; } public int getMonth () {return mois; } public String [] getCalendar () {String a [] = new String [42]; Date de calendrier = calendar.getInstance (); Date.Set (année, mois-1,1); int semaine = date.get (calendar.day_of_week) -1; int day = 0; // juge le gros mois si (mois == 1 || mois == 3 || mois == 5 || mois == 7 || mois == 8 || mois == 10 || mois == 12) {day = 31; } // juge petit mois if (mois == 4 || mois == 6 || mois == 9 || mois == 11) {day = 30; } // Jugez l'année normale et l'année de saut si (mois == 2) {if (((année% 4 == 0) && (année% 100! = 0)) || (année% 400 == 0)) {day = 29; } else {day = 28; }} pour (int i = semaine, n = 1; i <semaine + jour; i ++) {a [i] = string.valueof (n); n ++; } return a; }} Créez ensuite une classe d'interface principale pour l'implémentation d'interface:
package autre 1; import java.awt. *; import java.awt.event. *; importer javax.swing. *; classe publique CalendarFrame étend JFrame implémente ActionListener {JLabel Labelday [] = new JLabel [42]; Jtexfield text = new JTextField (10); JBUTTON TitleName [] = New Jbutton [7]; JBUTTON Button = new JButton (); Nom de la chaîne [] = {"Day", "One", "Two", "Three", "Four", "Five", "Six"}; JBUTTON NEXTMONTH, PREBERMONTH; INN annuelle = 1996, mois = 1; // Date d'information affichée par le calendrier Calendarbean du programme de démarrage; JLabel ShowMessage = new JLabel ("", jlabel.center); JLABEL LBL1 = NOUVEAU JLABEL ("Veuillez entrer l'année:"); JLABEL LBL2 = NOUVEAU JLABEL (""); public CalendarFrame () {SetBackground (nouvelle couleur (0, 128, 128)); Jpanel pCenter = new JPanel (); pCenter.setbackground (nouvelle couleur (0, 139, 139)); // Définissez la disposition de pCenter sur la disposition de gridLayout avec 7 lignes et 7 colonnes. pCenter.SetLayout (new GridLayout (7,7)); // pCenter ajoute le composant titLename [i] pour (int i = 0; i <7; i ++) {titLename [i] = new JButton (name [i]); pCenter.add (titleName [i]); } // pCenter ajoute le composant Labelday [i] pour (int i = 0; i <42; i ++) {Labelday [i] = new JLabel ("", jlabel.center); pCenter.add (Labelday [i]); } text.addactionListener (this); calendar = new Calendarbean (); Calendar.Setyear (année); Calendar.Setmonth (mois); String day [] = calendar.getCalendar (); for (int i = 0; i <42; i ++) {Labelday [i] .setText (day [i]); } nextmonth = new JButton ("le mois prochain"); Précédentmonth = new JBUTTON ("le mois dernier"); Button = new Jbutton ("bien sûr"); // Enregistrer l'écouteur NextMonth.AddactionListener (this); Précédentmonth.AddactionListener (this); Button.AddactionListener (this); Jpanel pnorth = new JPanel (), psouth = new JPanel (); pnorth.add (showMessage); pnorth.add (LBL2); pnorth.add (précédent Month); pnorth.add (nextmonth); psouth.add (LBL1); psouth.add (texte); psouth.add (bouton); ShowMessage.SeTText ("Calendar:" + calendar.getyear () + "année" + calendar.getMonth () + "mois"); ScrollPane ScrollPane = new ScrollPane (); scrollPane.add (pCenter); getContentPane (). Add (scrollPane, borderLayout.Center); // ajouter ScrollPane dans la zone centrale getContentPane (). Add (pnorth, borderlayout.north); // ajouter pnorth dans la zone nord getContentPane (). } public void ActionPerformed (ActionEvent e) {if (e.getsource () == nextMonth) {mois = mois + 1; si (mois> 12) mois = 1; Calendar.Setmonth (mois); String day [] = calendar.getCalendar (); for (int i = 0; i <42; i ++) {Labelday [i] .setText (day [i]); }} else if (e.getsource () == PREBERMONTH) {mois = mois-1; si (mois <1) mois = 12; Calendar.Setmonth (mois); String day [] = calendar.getCalendar (); for (int i = 0; i <42; i ++) {Labelday [i] .setText (day [i]); }} else if (e.getsource () == bouton) {mois = mois + 1; si (mois> 12) mois = 1; calendar.setyear (Integer.ParseInt (text.getText ())); String day [] = calendar.getCalendar (); for (int i = 0; i <42; i ++) {Labelday [i] .setText (day [i]); }} showMessage.setText ("Calendar:" + calendar.getyear () + "année" + calendar.getMonth () + "mois"); }} Enfin, utilisez une classe pour l'appeler:
package autre 1; import javax.swing.jframe; import javax.swing.uimanager; classe publique CalendarmainClass {public static void main (String args []) {try {uimanager.setLookAndFeel ("com.sun.java.swing.pllaf.windows.windowslookandfeel"); // Style d'interface Windows} catch (exception e) {e.printStackTrace (); } Calendarframe frame = new CalendarFrame (); frame.setbounds (100 100,360 300); frame.setTitle ("Calendar Applet"); frame.setLocationRelaTIVETO (null); // Le formulaire est centré pour afficher frame.setVisible (true); frame.setDefaultCloseOperation (jframe.exit_on_close); }}Les résultats de l'opération sont les suivants:
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.