Hoje vou apresentar a você como usar o Java Swing para desenvolver um pequeno calendário simples. Vejamos o código abaixo:
Primeiro, crie uma aula de calendário para o cálculo da data básica:
pacote outro1; importar java.util.calendar; classe pública Calendarbean {String Day []; int ano = 2005, mês = 0; public void Setyear (int ano) {this.year = ano; } public int getYear () {retorno ano; } public void setMonth (int mês) {this.month = mês; } public int getMonth () {retorno mês; } public string [] getCalendar () {string a [] = new string [42]; Data do calendário = calendário.getInstance (); date.set (ano, mês 1.1); int week = date.get (calendar.day_of_week) -1; int dia = 0; // JUDE O Mês Grande Se (mês == 1 || Mês == 3 || Mês == 5 || Mês == 7 || Mês == 8 || Mês == 10 || Mês == 12) {dia = 31; } // JUDE O Mês Pequeno se (mês == 4 || Mês == 6 || Mês == 9 || Mês == 11) {dia = 30; } // Junte o ano normal e o ano salgado if (mês == 2) {if (((ano%4 == 0) && (ano%100! = 0)) || (ano%400 == 0)) {dia = 29; } else {dia = 28; }} para (int i = semana, n = 1; i <semana+dia; i ++) {a [i] = string.valueof (n); n ++; } retornar um; }} Em seguida, crie uma classe de interface principal para a implementação da interface:
pacote outro1; importar java.awt.*; importar java.awt.event.*; importar javax.swing.*; classe pública calendarframe estende o jframe implementa o ActionListener {Jlabel Labelday [] = new Jlabel [42]; JTEXTFIELD TEXT = NEW JTEXTFIELD (10); JButton titlename [] = novo JButton [7]; Botão jbutton = new jbutton (); Nome da string [] = {"dia", "um", "dois", "três", "quatro", "cinco", "seis"}; JButton NextMonth, Anterior Month; int ano = 1996, mês = 1; // informações de data exibidas pelo calendário do programa de inicialização; Jlabel showMessage = new jlabel ("", jlabel.center); Jlabel lbl1 = new jlabel ("Por favor, digite o ano:"); Jlabel lbl2 = new jlabel (""); public calendarframe () {Sontringground (nova cor (0, 128, 128)); Jpanel pCenter = new jpanel (); pCenter.Setbackground (nova cor (0, 139, 139)); // Defina o layout do PCENTER para o layout do GridLayout com 7 linhas e 7 colunas. pCenter.setLayout (New GridLayout (7,7)); // pCenter adiciona titlename de componente [i] para (int i = 0; i <7; i ++) {titleName [i] = new jbutton (nome [i]); pCenter.add (titlename [i]); } // pCenter adiciona componente Labelday [i] para (int i = 0; i <42; i ++) {Labelday [i] = new jlabel ("", jlabel.center); pCenter.add (Labelday [i]); } text.addactionListener (this); calendário = new calendarbean (); calendário.setYear (ano); calendário.setmonth (mês); String Day [] = calendar.getCalendar (); para (int i = 0; i <42; i ++) {Labelday [i] .Settext (dia [i]); } nextmonth = new jbutton ("próximo mês"); anteriormonth = new jbutton ("no mês passado"); botão = novo jbutton ("é claro"); // Registre o ouvinte nextmonth.addactionListener (this); anteriorMONTH.AddactionListener (isto); Button.AddactionListener (isto); Jpanel pnorth = new jpanel (), psouth = new jpanel (); pnorth.add (ShowMessage); pnorth.add (lbl2); pnorth.add (anterior eMONTH); pnorth.add (Nextmonth); psouth.add (lbl1); psouth.add (texto); psouth.add (botão); showmessage.settext ("calendário:"+calendar.getyear ()+"ano"+calendar.getmonth ()+"mês"); Scrollpane scrollPane = new scrollPane (); scrollpane.add (pCenter); getContentPane (). Add (scrollPane, borderlayout.center); // Adicione rollpane na área central getContentPane (). Add (pnorth, borderlayout.north); // adicione pnorth na área norte getcontentPane () add (psouth, borderlayout.South); } public void ActionPerformed (ActionEvent e) {if (e.getSource () == nextmonth) {mês = mês+1; if (mês> 12) mês = 1; calendário.setmonth (mês); String Day [] = calendar.getCalendar (); para (int i = 0; i <42; i ++) {Labelday [i] .Settext (dia [i]); }} else if (e.getSource () == anteriormonth) {mês = mês-1; if (mês <1) mês = 12; calendário.setmonth (mês); String Day [] = calendar.getCalendar (); para (int i = 0; i <42; i ++) {Labelday [i] .Settext (dia [i]); }} else if (e.getSource () == Button) {mês = mês+1; if (mês> 12) mês = 1; calendar.setYear (Integer.parseint (text.getText ())); String Day [] = calendar.getCalendar (); para (int i = 0; i <42; i ++) {Labelday [i] .Settext (dia [i]); }} showMessage.Settext ("Calendar:"+calendar.getYear ()+"ano"+calendar.getMonth ()+"mês"); }} Por fim, use uma aula para chamá -la:
pacote outro1; importar javax.swing.jframe; importar javax.swing.uimanager; classe pública calendaMainClass {public static void main (string args []) {try {uimanager.setLookAndFeel ("com.sun.java.swing.plaf.windows.windowslookandfeel"); // Windows Interface Style} Catch (Exceção e) {E.PrintStackTrace (); } Calendarframe quadro = new calendarframe (); frame.setbounds (100.100.360.300); frame.setTitle ("Applet de calendário"); quadro.setLocationRelativeTo (null); // O formulário é centrado para exibir o quadro.setVisible (true); frame.setDefaultCloseoperation (jframe.exit_on_close); }}Os resultados da operação são os seguintes:
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.