Сегодня я представлю вам, как использовать Java Swing для разработки простого небольшого календаря. Давайте посмотрим на код ниже:
Сначала создайте класс календаря для базового расчета даты:
упаковать другие 1; импортировать java.util.calendar; Открытый класс календарный {String Day []; int Год = 2005, месяц = 0; public void setyear (int Год) {this.year = Год; } public int getyear () {everate Год; } public void setMonth (int month) {this.Month = месяц; } public int getMonth () {return Month; } public String [] getCalendar () {string a [] = new String [42]; Календарь дата = календарь.getinstance (); date.set (год, месяц-1,1); int week = date.get (calendar.day_of_week) -1; int day = 0; // Судья большой месяц, если (месяц == 1 || месяц == 3 || месяц == 5 || месяц == 7 || месяц == 8 || месяц == 10 || месяц == 12) {день = 31; } // Судья маленький месяц, если (месяц == 4 || месяц == 6 || месяц == 9 || месяц == 11) {день = 30; } // Судья нормальный год и легальный год, если (месяц == 2) {if (((год%4 == 0) && (год%100! = 0)) || (Год%400 == 0)) {день = 29; } else {day = 28; }} для (int i = неделя, n = 1; i <неделя+day; i ++) {a [i] = string.valueof (n); n ++; } вернуть a; }} Затем создайте основной класс интерфейса для реализации интерфейса:
упаковать другие 1; Импорт java.awt.*; импортировать java.awt.event.*; импортировать javax.swing.*; Public Class CalendarFrame Extens JFrame реализует ActionListener {jlabel labelday [] = new jlabel [42]; Jtextfield text = new Jtextfield (10); Jbutton titlename [] = new jbutton [7]; Jbutton button = new jbutton (); String name [] = {"day", "один", "два", "три", "четыре", "пять", "шесть"}; Jbutton NextMonth, предыдущий проход; int Год = 1996, месяц = 1; // информация даты, отображаемая в календарном календаре программы запуска; Jlabel showmessage = new jlabel ("", jlabel.center); Jlabel lbl1 = new jlabel («Пожалуйста, введите год:»); Jlabel lbl2 = new jlabel (""); Public CalendarFrame () {Betbackground (новый цвет (0, 128, 128)); Jpanel pcenter = new jpanel (); pcenter.setbackground (новый цвет (0, 139, 139)); // Установите макет пентера на макет сетки с 7 рядами и 7 столбцами. pcenter.setlayout (new Gridlayout (7,7)); // pcenter добавляет компонент Titlename [i] для (int i = 0; i <7; i ++) {titlename [i] = new jbutton (имя [i]); pcenter.add (titlename [i]); } // pcenter добавляет метку компонента [i] для (int i = 0; i <42; i ++) {labelday [i] = new jlabel ("", jlabel.center); pcenter.add (labelday [i]); } text.addactionListener (this); Календарь = новый календарный (); Календарь. Calendar.setmonth (месяц); String Day [] = Calendar.getCalendar (); for (int i = 0; i <42; i ++) {labelday [i] .settext (day [i]); } nextMonth = new Jbutton ("в следующем месяце"); предыдущий монт = new jbutton ("в прошлом месяце"); Button = new Jbutton ("Конечно"); // зарегистрировать слушатель nextmonth.addactionListener (это); Предыдущий монт.addactionListener (это); Button.AddactionListener (это); Jpanel pnorth = new jpanel (), psouth = new jpanel (); pnorth.add (showmessage); pnorth.add (lbl2); pnorth.add (предыдущий монф); pnorth.add (nextmonth); psouth.add (lbl1); psouth.add (текст); psouth.add (кнопка); showmessage.settext ("Calendar:"+calendar.getyear ()+"Год"+calendar.getmonth ()+"месяц"); ScrollPane ScrollPane = New ScrollPane (); scrollpane.add (pcenter); getContentPane (). Add (ScrollPane, Borderlayout.center); // Добавить ScrollPane в центральной области getContentPane (). Добавить (Pnorth, borderlayout.north); // Добавить Pnorth в северную область GetContentPane (). Добавить (psouth, borderlayout.south);/// // добавить в районе South. } public void actionPerformed (actionEvent e) {if (e.getSource () == NextMonth) {месяц = месяц+1; if (месяц> 12) месяц = 1; Calendar.setmonth (месяц); String Day [] = Calendar.getCalendar (); for (int i = 0; i <42; i ++) {labelday [i] .settext (day [i]); }} else if (e.getSource () == предыдущий монт) {месяц = месяц-1; if (месяц <1) месяц = 12; Calendar.setmonth (месяц); String Day [] = Calendar.getCalendar (); for (int i = 0; i <42; i ++) {labelday [i] .settext (day [i]); }} else if (e.getSource () == кнопка) {месяц = месяц+1; if (месяц> 12) месяц = 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 ()+"Год"+calendar.getmonth ()+"месяц"); }} Наконец, используйте класс, чтобы назвать его:
упаковать другие 1; импортировать javax.swing.jframe; Импорт javax.swing.uimanager; public class calendarmainclass {public static void main (string args []) {try {uimanager.setlookandfeel ("com.sun.java.swing.plaf.windows.windowslookandfeel"); // windows interface style} catch (Exception e) {e.printstacktrace (); } CalendarFrame Frame = new CalendarFrame (); Frame.SetBounds (100,100 360 300); frame.settitle ("календарный апплет"); Frame.SetLocationRelativeTo (null); // Форма центрируется для отображения Frame.SetVisible (true); frame.setDefaultCloseoPeration (jframe.exit_on_close); }}Результаты работы следующие:
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.