自已写的一个Java Swing日历控件

代码很小,只有30多K,界面是我精心设计的,相当的狗吊。

 

输入年份月份日数,点击确定可以跳转到这一天,本意是为了做完一天,可以代替Windows上的那个日期控件。

 

有什么Bug欢迎在博客上和我交流。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是一个简单的Java Swing日历实现: ``` import javax.swing.*; import java.awt.*; import java.util.Calendar; import java.util.GregorianCalendar; public class CalendarApp extends JFrame { private JLabel monthLabel; private JPanel monthPanel; private JPanel dayPanel; private JLabel[] dayLabels; public CalendarApp() { setTitle("Calendar"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(new BorderLayout()); // 创建月份标签 monthLabel = new JLabel(); monthLabel.setHorizontalAlignment(SwingConstants.CENTER); add(monthLabel, BorderLayout.NORTH); // 创建月份面板 monthPanel = new JPanel(new GridLayout(0, 7)); add(monthPanel, BorderLayout.CENTER); // 创建日期面板 dayPanel = new JPanel(new GridLayout(0, 7)); add(dayPanel, BorderLayout.SOUTH); // 创建日期标签 dayLabels = new JLabel[42]; for (int i = 0; i < dayLabels.length; i++) { dayLabels[i] = new JLabel(); dayLabels[i].setHorizontalAlignment(SwingConstants.CENTER); dayPanel.add(dayLabels[i]); } // 设置窗口大小并显示 setSize(400, 300); setVisible(true); // 更新日历 updateCalendar(); } private void updateCalendar() { // 获取当前月份和年份 Calendar calendar = new GregorianCalendar(); int month = calendar.get(Calendar.MONTH); int year = calendar.get(Calendar.YEAR); // 设置月份标签 monthLabel.setText((month + 1) + "/" + year); // 清除日历 for (int i = 0; i < dayLabels.length; i++) { dayLabels[i].setText(""); } // 获取当前月份的第一天 calendar.set(Calendar.DAY_OF_MONTH, 1); int firstDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); // 设置月份面板 String[] daysOfWeek = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; for (int i = 0; i < daysOfWeek.length; i++) { JLabel label = new JLabel(daysOfWeek[i]); label.setHorizontalAlignment(SwingConstants.CENTER); monthPanel.add(label); } for (int i = 1; i < firstDayOfWeek; i++) { monthPanel.add(new JLabel()); } for (int i = 1; i <= calendar.getActualMaximum(Calendar.DAY_OF_MONTH); i++) { JLabel label = new JLabel(Integer.toString(i)); label.setHorizontalAlignment(SwingConstants.CENTER); monthPanel.add(label); } } public static void main(String[] args) { new CalendarApp(); } } ``` 这个日历应用程序使用了JavaSwing组件和Calendar类来生成日历。它包括一个月份标签、一个月份面板和一个日期面板。在月份面板,我们将星期几的名称添加到第一行,并在第二行添加第一个日期。在日期面板,我们添加了每个日期的标签,并将它们按照星期几的顺序排列。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值