swing日历小程序

来源:互联网 发布:网游加速器mac 版 编辑:程序博客网 时间:2024/05/16 01:23

 

/*
 * RILI.java
 *
 * Created on 2007年12月25日, 上午1:25
 */

package rili;

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.swing.JTable;
import javax.swing.JTextField;

/**
 *
 * @author  Anthony'Wanted
 */
public class RILI extends javax.swing.JFrame {
   
    Calendar calendar;
    private String[] head = {"日", "一", "二", "三", "四", "五", "六"};
    /** Creates new form RILI */
    public RILI() {
        initComponents();
        calendar = new GregorianCalendar();
       
        setTable(0);
       
    }
   
    public void setTable(int month)
    {
        calendar.add(Calendar.MONTH, month);
        this.jLabel1.setText(Integer.toString(calendar.get(calendar.YEAR))
                    + "年" + Integer.toString(calendar.get(calendar.MONTH) + 1)
                    + "月");
        calendar.add(Calendar.DAY_OF_MONTH, -1 * calendar.get(calendar.DAY_OF_MONTH) + 1);       
        int dow = calendar.get(calendar.DAY_OF_WEEK);
        int dom = calendar.get(calendar.DAY_OF_MONTH);
       
        int days = daysOfMonth(calendar.get(calendar.MONTH) + 1, calendar.get(calendar.YEAR));
       
        int tds = days + dow - 1;
        int nulback =  7 - ((days - (7 - dow + 1)) % 7);
       
        
        String[] date = new String[tds + nulback];
       
        for (int i = 0; i < dow - 1; i++)
        {
            date[i] = null;
        }
        int temp = 1;
        for (int i = dow - 1; i < tds; i++)
        {
            date[i] = Integer.toString(temp);
            temp++;
        }
        for (int i = tds + nulback - dow + 1; i < nulback; i++)
        {
            date[i] = null;
        }
       
        int rows = date.length / 7;
        String[][] dateMatrix = new String [rows][7];
        temp = 0;
        for (int i = 0; i < rows; i++)
        {
            for (int j = 0; j < 7; j++)
            {
                dateMatrix[i][j] = date[temp];
                temp++;
            }
        }
       
        jTable1.setModel(new javax.swing.table.DefaultTableModel(dateMatrix, head));
    }
   
    public boolean isLeapYear(int year)
    {
        if ((year % 400) == 0)
            return true;
        else if ((year % 4) == 0)
        {
            if ((year % 100) == 0)
                return false;
            else
                return true;
        }
        else
            return false;
    }
    public int daysOfMonth(int mon, int year)
    {
        int ld;
        if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12)
        {
            ld = 31;
        }
        else if (mon == 4 || mon == 6 || mon == 9 || mon == 11)
        {
            ld = 30;
        }
        else
        {
            if (isLeapYear(year))
            {
                ld = 29;
            }
            else
            {
                ld = 28;
            }
        }
        return ld;
    }
   
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" 生成的代码 ">//GEN-BEGIN:initComponents
    private void initComponents() {
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("/u65e5/u5386");
        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null}
            },
            new String [] {
                "日", "一", "二", "三", "四", "五", "六"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
            };
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false, false, false
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jScrollPane1.setViewportView(jTable1);

        jButton1.setText("PreviousMonth");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jButton2.setText("NextMonth");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jLabel1.setText("lable");
        jLabel1.getAccessibleContext().setAccessibleName("label");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(62, 62, 62)
                .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 77, Short.MAX_VALUE)
                .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 118, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(64, 64, 64))
            .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 441, Short.MAX_VALUE)
            .addGroup(layout.createSequentialGroup()
                .addGap(184, 184, 184)
                .addComponent(jLabel1)
                .addContainerGap(227, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE, 31, Short.MAX_VALUE))
                .addGap(21, 21, 21)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 15, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(12, 12, 12))
        );
        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
        setTable(1);
    }//GEN-LAST:event_jButton2ActionPerformed

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
        setTable(-1);
    }//GEN-LAST:event_jButton1ActionPerformed
   
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new RILI().setVisible(true);
            }
        });
    }
   
    // 变量声明 - 不进行修改//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    // 变量声明结束//GEN-END:variables
   
}
 

原创粉丝点击