⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datechooser.java

📁 Java 日期选择控件(主体类),包含日历表格面板、控制条类、限定选择控件、月份表算法类、调色板
💻 JAVA
字号:
/**
 *  [DateChooser.java]
 *
 *  Java 日期选择控件(主体界面)
 *
 *
 * 创建日期:(2003-10-25)
 * @author:ONE_Fox
 * @author:ONE_Fox@163.com
 */
 
 
package datechooser;
 
import java.awt.*;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;
 
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Date;
 
 
 
 
public class DateChooser extends JDialog {
    
    //状态配置-----------------------//
    
    private static boolean isShow = false;  //是否正在显示
    
    
    //数据配置-----------------------//
    private static Calendar showMonth = new GregorianCalendar(); //默认首显今天
    
    private int startYear = 1950; //默认【最小】显示年份
    private int lastYear = 2050;  //默认【最大】显示年份
    
 
    //界面配置-----------------------//
    
    //放TablePanel与 ConfigLine 中间层
    JPanel rootPanel = new JPanel(new BorderLayout(), true);
    
    //TablePanel 日历显示表格
    private TablePanel tablePanel = null;
 
    //ConfigLine 控制条
    private ConfigLine configLine = null;
    
    //界面 大小/位置
    /**
     * 公开的界面大小属性
     */
    public static final int width = 190;  //界面宽度
    public static final int height = 170; //界面高度
    
    private int local_X = 0;  //显示位置 X 坐标
    private int local_Y = 0;  //显示位置 Y 坐标
    
 
 
 
 
//------构造方法--------------------------------------------------//

/**
 * 构造方法1
 */
    public DateChooser() {
        
        makeFace(); //界面制作
    }
    
    
    
    
/**
 * 构造方法2
 *
 * @param owner java.awt.Frame
 */
    public DateChooser(Frame owner) {
        
        super(owner, "DateChooser", true); //设置父窗口
        makeFace(); //界面制作
    }
    
 
 
 
/**
 * 构造方法3
 *
 * @param owner java.awt.Frame
 * @param showMonth java.util.Calendar
 * @param startYear int
 * @param lastYear int
 */
    public DateChooser(Frame owner, Calendar showMonth, int startYear, 
                                                         int lastYear) {
        super(owner, "DateChooser", true);
        
        this.showMonth = showMonth;
        this.startYear = startYear;
        this.lastYear = lastYear;
        
        makeFace(); //界面制作
    }
 
 
 
/**
 * 构造方法4
 *
 * @param showMonth java.util.Calendar
 * @param startYear int
 * @param lastYear int
 */
    public DateChooser(Calendar showMonth, int startYear, int lastYear) {
        
        super((Frame)null, "DateChooser", true);
        
        this.showMonth = showMonth;
        this.startYear = startYear;
        this.lastYear = lastYear;
        
        makeFace(); //界面制作
    }
    
    
    
    
//------方法函数---------------------------------------------------//
 
/**
 * 方法:界面制作
 */
    private void makeFace() {
        
        setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
        
        setResizable(false);  //界面大小无法改变
        
        //界面构建---------------------------//
        tablePanel = new TablePanel(this, showMonth);
        configLine = new ConfigLine(tablePanel, showMonth, 
                                    startYear, lastYear); 
        
        
        //界面属性设置-----------------------//
        setSize(width, height);
        
        rootPanel.setBorder(new LineBorder(Pallet.backGroundColor, 2));
        rootPanel.setBackground(Pallet.backGroundColor);
        
        
        
        //总体布局---------------------------//
        rootPanel.add(tablePanel, BorderLayout.CENTER);
        rootPanel.add(configLine, BorderLayout.SOUTH);
        
        getContentPane().add(rootPanel, BorderLayout.CENTER);
    }
 
 
 
/**
 * 方法:显示界面
 *
 * @param invoker javax.swing.Component
 * @param x int
 * @param y int
 *
 * @return Date
 */
    public Date showChooser(JComponent invoker, int x, int y) {
        
        Point invokerOrigin;
        
        if (invoker != null) {
            
            if(isShow == true)
                setVisible(false);
                
            invokerOrigin = invoker.getLocationOnScreen();
                
            setLocation(invokerOrigin.x + x, invokerOrigin.y + y);
            
        } else {
            
            if(isShow == true)
                setVisible(false);
                
            setLocation(x, y);
        }
        
        setVisible(true);
        isShow = true;
        
        
        return tablePanel.getDate();
    }
    
    
    
/**
 * 方法:界面隐藏
 */
    public void hideChooser() {
        setVisible(false);
    }
    
    
    
/**
 * 方法:取得选择日期
 */
    public Date getDate() {
        return tablePanel.getDate();
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -