📄 cal.java
字号:
package jMaint;import java.awt.*;import java.io.*;import javax.swing.*;import javax.swing.table.*;import javax.swing.text.*;import java.util.*;import java.util.Calendar.*;public class Cal extends javax.swing.JFrame { GregorianCalendar CurCal = new GregorianCalendar(); String Months[] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; String CalDate = null; public Cal() { initComponents(); } private void initComponents() {//GEN-BEGIN:initComponents PanelCal = new javax.swing.JPanel(); CalRow0 = new javax.swing.JPanel(); CalLeft = new javax.swing.JButton(); CalMonth = new javax.swing.JLabel(); CalRight = new javax.swing.JButton(); CalRow1 = new javax.swing.JPanel(); Cal1A = new javax.swing.JLabel(); Cal1B = new javax.swing.JLabel(); Cal1C = new javax.swing.JLabel(); Cal1D = new javax.swing.JLabel(); Cal1E = new javax.swing.JLabel(); Cal1F = new javax.swing.JLabel(); Cal1G = new javax.swing.JLabel(); TableCal = new javax.swing.JTable(); CalButtons = new javax.swing.JPanel(); ButtonSave = new javax.swing.JButton(); ButtonToday = new javax.swing.JButton(); ButtonCancel = new javax.swing.JButton(); getContentPane().setLayout(new javax.swing.BoxLayout(getContentPane(), javax.swing.BoxLayout.X_AXIS)); setTitle("Calendar"); setName("Calendar"); setResizable(false); PanelCal.setLayout(new javax.swing.BoxLayout(PanelCal, javax.swing.BoxLayout.Y_AXIS)); PanelCal.setAlignmentX(0.0F); PanelCal.setAlignmentY(0.0F); PanelCal.setMaximumSize(new java.awt.Dimension(210, 280)); PanelCal.setMinimumSize(new java.awt.Dimension(210, 280)); PanelCal.setPreferredSize(new java.awt.Dimension(210, 280)); CalRow0.setLayout(new javax.swing.BoxLayout(CalRow0, javax.swing.BoxLayout.X_AXIS)); CalLeft.setText("\u25c4"); CalLeft.setMargin(new java.awt.Insets(2, 2, 2, 2)); CalLeft.setMaximumSize(new java.awt.Dimension(30, 30)); CalLeft.setMinimumSize(new java.awt.Dimension(30, 30)); CalLeft.setPreferredSize(new java.awt.Dimension(30, 30)); CalLeft.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { CalLeftActionPerformed(evt); } }); CalRow0.add(CalLeft); CalMonth.setFont(new java.awt.Font("Dialog", 1, 14)); CalMonth.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); CalMonth.setMaximumSize(new java.awt.Dimension(150, 30)); CalMonth.setMinimumSize(new java.awt.Dimension(150, 30)); CalMonth.setPreferredSize(new java.awt.Dimension(150, 30)); CalRow0.add(CalMonth); CalRight.setText("\u25ba"); CalRight.setMargin(new java.awt.Insets(2, 2, 2, 2)); CalRight.setMaximumSize(new java.awt.Dimension(30, 30)); CalRight.setMinimumSize(new java.awt.Dimension(30, 30)); CalRight.setPreferredSize(new java.awt.Dimension(30, 30)); CalRight.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { CalRightActionPerformed(evt); } }); CalRow0.add(CalRight); PanelCal.add(CalRow0); CalRow1.setLayout(new javax.swing.BoxLayout(CalRow1, javax.swing.BoxLayout.X_AXIS)); Cal1A.setFont(new java.awt.Font("Dialog", 1, 10)); Cal1A.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); Cal1A.setText("Sun"); Cal1A.setMaximumSize(new java.awt.Dimension(30, 30)); Cal1A.setMinimumSize(new java.awt.Dimension(30, 30)); Cal1A.setPreferredSize(new java.awt.Dimension(30, 30)); CalRow1.add(Cal1A); Cal1B.setFont(new java.awt.Font("Dialog", 1, 10)); Cal1B.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); Cal1B.setText("Mon"); Cal1B.setMaximumSize(new java.awt.Dimension(30, 30)); Cal1B.setMinimumSize(new java.awt.Dimension(30, 30)); Cal1B.setPreferredSize(new java.awt.Dimension(30, 30)); CalRow1.add(Cal1B); Cal1C.setFont(new java.awt.Font("Dialog", 1, 10)); Cal1C.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); Cal1C.setText("Tue"); Cal1C.setMaximumSize(new java.awt.Dimension(30, 30)); Cal1C.setMinimumSize(new java.awt.Dimension(30, 30)); Cal1C.setPreferredSize(new java.awt.Dimension(30, 30)); CalRow1.add(Cal1C); Cal1D.setFont(new java.awt.Font("Dialog", 1, 10)); Cal1D.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); Cal1D.setText("Wed"); Cal1D.setMaximumSize(new java.awt.Dimension(30, 30)); Cal1D.setMinimumSize(new java.awt.Dimension(30, 30)); Cal1D.setPreferredSize(new java.awt.Dimension(30, 30)); CalRow1.add(Cal1D); Cal1E.setFont(new java.awt.Font("Dialog", 1, 10)); Cal1E.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); Cal1E.setText("Thu"); Cal1E.setMaximumSize(new java.awt.Dimension(30, 30)); Cal1E.setMinimumSize(new java.awt.Dimension(30, 30)); Cal1E.setPreferredSize(new java.awt.Dimension(30, 30)); CalRow1.add(Cal1E); Cal1F.setFont(new java.awt.Font("Dialog", 1, 10)); Cal1F.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); Cal1F.setText("Fri"); Cal1F.setMaximumSize(new java.awt.Dimension(30, 30)); Cal1F.setMinimumSize(new java.awt.Dimension(30, 30)); Cal1F.setPreferredSize(new java.awt.Dimension(30, 30)); CalRow1.add(Cal1F); Cal1G.setFont(new java.awt.Font("Dialog", 1, 10)); Cal1G.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); Cal1G.setText("Sat"); Cal1G.setMaximumSize(new java.awt.Dimension(30, 30)); Cal1G.setMinimumSize(new java.awt.Dimension(30, 30)); Cal1G.setPreferredSize(new java.awt.Dimension(30, 30)); CalRow1.add(Cal1G); PanelCal.add(CalRow1); TableCal.setBackground(new java.awt.Color(204, 204, 204)); TableCal.setFont(new java.awt.Font("Dialog", 1, 14)); TableCal.setPreferredScrollableViewportSize(new java.awt.Dimension(210, 210)); TableCal.setRowSelectionAllowed(false); TableCal.setSelectionBackground(java.awt.Color.red); TableCal.setTableHeader(null); TableCalModel(); TableCal.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseReleased(java.awt.event.MouseEvent evt) { TableCalMouseReleased(evt); } }); PanelCal.add(TableCal); CalButtons.setLayout(null); CalButtons.setMaximumSize(new java.awt.Dimension(210, 40)); ButtonSave.setText("Save"); ButtonSave.setMargin(new java.awt.Insets(2, 2, 2, 2)); ButtonSave.setMaximumSize(new java.awt.Dimension(55, 25)); ButtonSave.setMinimumSize(new java.awt.Dimension(55, 25)); ButtonSave.setPreferredSize(new java.awt.Dimension(55, 25)); ButtonSave.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ButtonSaveActionPerformed(evt); } }); CalButtons.add(ButtonSave); ButtonSave.setBounds(10, 10, 55, 25); ButtonToday.setForeground(new java.awt.Color(255, 0, 0)); ButtonToday.setText("Today"); ButtonToday.setMargin(new java.awt.Insets(2, 2, 2, 2)); ButtonToday.setMaximumSize(new java.awt.Dimension(55, 25)); ButtonToday.setMinimumSize(new java.awt.Dimension(55, 25)); ButtonToday.setPreferredSize(new java.awt.Dimension(55, 25)); ButtonToday.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ButtonTodayActionPerformed(evt); } }); CalButtons.add(ButtonToday); ButtonToday.setBounds(80, 10, 55, 25); ButtonCancel.setText("Cancel"); ButtonCancel.setMargin(new java.awt.Insets(2, 2, 2, 2)); ButtonCancel.setMaximumSize(new java.awt.Dimension(55, 25)); ButtonCancel.setMinimumSize(new java.awt.Dimension(55, 25)); ButtonCancel.setPreferredSize(new java.awt.Dimension(55, 25)); ButtonCancel.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ButtonCancelActionPerformed(evt); } }); CalButtons.add(ButtonCancel); ButtonCancel.setBounds(150, 10, 55, 25); PanelCal.add(CalButtons); getContentPane().add(PanelCal); pack(); }//GEN-END:initComponents private void ButtonSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ButtonSaveActionPerformed int m = CurCal.get(CurCal.MONTH)+1; int d = CurCal.get(CurCal.DATE); String m1 = null; String d1 = null; if (m<10) m1 = "0"+Integer.toString(m); else m1=Integer.toString(m); if (d<10) d1 = "0"+Integer.toString(d); else d1=Integer.toString(d); CalDate = m1+"/"+d1+"/"+Integer.toString(CurCal.get(CurCal.YEAR)); this.dispose(); }//GEN-LAST:event_ButtonSaveActionPerformed private void ButtonTodayActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ButtonTodayActionPerformed CurCal = new GregorianCalendar(); TableCalModel(); }//GEN-LAST:event_ButtonTodayActionPerformed private void ButtonCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ButtonCancelActionPerformed this.dispose(); }//GEN-LAST:event_ButtonCancelActionPerformed private void TableCalMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_TableCalMouseReleased ChangeDate(Integer.parseInt(TableCal.getValueAt(TableCal.getSelectedRow(),TableCal.getSelectedColumn()).toString()),TableCal.getSelectedRow()); }//GEN-LAST:event_TableCalMouseReleased private void CalLeftActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_CalLeftActionPerformed CurCal.add(CurCal.MONTH, -1); TableCalModel(); }//GEN-LAST:event_CalLeftActionPerformed private void CalRightActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_CalRightActionPerformed CurCal.add(CurCal.MONTH, 1); TableCalModel(); }//GEN-LAST:event_CalRightActionPerformed public static void main(String args[]) { new Cal().show(); } public void activate(String date) { this.show(); String[] d = date.split("/"); CurCal.set(Integer.parseInt(d[2]),Integer.parseInt(d[0])-1,Integer.parseInt(d[1])); TableCalModel(); } public void TableCalModel() { DefaultTableModel model = new DefaultTableModel(); TableCellRenderer renderer = new CalTableCellRenderer(); Integer[][] data = new Integer[6][7]; CalMonth.setText(Months[CurCal.get(CurCal.MONTH)] + " " + Integer.toString(CurCal.get(CurCal.YEAR))); GregorianCalendar CalX = new GregorianCalendar(); CalX.set(CurCal.get(CurCal.YEAR),CurCal.get(CurCal.MONTH),1); CalX.add(CalX.MONTH, 1); CalX.add(CalX.DATE, -1); if (CalX.get(CalX.DAY_OF_WEEK)==7) CalX.add(CalX.DATE, 7); CalX.add(CalX.DATE, 7-CalX.get(CalX.DAY_OF_WEEK)); for (int i=5; i>-1; i--) for (int j=6; j>-1; j--) { data[i][j]= new Integer(CalX.get(CalX.DATE)); CalX.add(CalX.DATE, -1); } model.setRowCount(6); model.setColumnCount(7); String[] s = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"}; model.setColumnIdentifiers(s); model.setDataVector(data,s); TableCal.setModel(model); TableCal.setDefaultRenderer(Object.class, renderer); TableCal.setShowGrid(false); TableCal.setRowSelectionAllowed(false); TableCal.setColumnSelectionAllowed(false); TableCal.setCellSelectionEnabled(true); TableCal.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF); TableCal.setPreferredSize(new java.awt.Dimension(210,210)); TableCal.changeSelection(0,0, false,false); for (int i=0; i<7; i++) TableCal.getColumnModel().getColumn(i).setPreferredWidth(30); for (int i=0; i<6; i++) TableCal.setRowHeight(i,30); } public class CalTableCellRenderer extends DefaultTableCellRenderer { public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column) { this.setForeground(Color.black); this.setVisible(true); this.setFocusable(true); this.setBackground(new java.awt.Color(204, 204, 204)); this.setText(value !=null ? value.toString() : ""); this.setHorizontalAlignment(CENTER); this.setVerticalAlignment(CENTER); this.setFont(new java.awt.Font("Dialog", 1, 14)); if (((Integer.parseInt(value.toString()) < 15) && (row == 5)) || ((Integer.parseInt(value.toString()) > 15) && (row < 2))) { this.setForeground(Color.gray); } else { if (Integer.parseInt(value.toString()) == CurCal.get(CurCal.DATE)) this.setBackground(Color.red); } return this; } } public void ChangeDate(int n, int r) { if ((r<2) && (n>15)) CurCal.add(CurCal.MONTH, -1); if ((r==5) && (n<15)) CurCal.add(CurCal.MONTH, 1); CurCal.set(CurCal.DATE, n); TableCalModel(); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton ButtonCancel; private javax.swing.JButton ButtonSave; private javax.swing.JButton ButtonToday; private javax.swing.JLabel Cal1A; private javax.swing.JLabel Cal1B; private javax.swing.JLabel Cal1C; private javax.swing.JLabel Cal1D; private javax.swing.JLabel Cal1E; private javax.swing.JLabel Cal1F; private javax.swing.JLabel Cal1G; private javax.swing.JPanel CalButtons; private javax.swing.JButton CalLeft; private javax.swing.JLabel CalMonth; private javax.swing.JButton CalRight; private javax.swing.JPanel CalRow0; private javax.swing.JPanel CalRow1; private javax.swing.JPanel PanelCal; private javax.swing.JTable TableCal; // End of variables declaration//GEN-END:variables}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -