JAVA学习DAY1——进入JAVA世界

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Java中提供了一个日历类——`java.util.Calendar`,可以通过它来创建一个日历窗体。 下面给出一个简单的示例代码: ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.Calendar; public class CalendarFrame extends JFrame implements ActionListener { private JButton btnPrev, btnNext; private JLabel lblMonth; private JTable tblCalendar; private DefaultTableModel tblModel; public CalendarFrame() { super("Calendar Application"); setSize(300, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); // 创建控件 btnPrev = new JButton("<<"); btnNext = new JButton(">>"); lblMonth = new JLabel(); tblModel = new DefaultTableModel() { public boolean isCellEditable(int rowIndex, int mColIndex) { return false; } }; tblCalendar = new JTable(tblModel); JScrollPane scrollPane = new JScrollPane(tblCalendar); // 添加控件 JPanel pnlControl = new JPanel(new FlowLayout()); pnlControl.add(btnPrev); pnlControl.add(lblMonth); pnlControl.add(btnNext); add(pnlControl, BorderLayout.NORTH); add(scrollPane, BorderLayout.CENTER); // 注册事件监听器 btnPrev.addActionListener(this); btnNext.addActionListener(this); // 初始化日历 Calendar cal = Calendar.getInstance(); updateCalendar(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH)); } public void actionPerformed(ActionEvent e) { if (e.getSource() == btnPrev) { Calendar cal = Calendar.getInstance(); cal.set(tblModel.getYear(), tblModel.getMonth() - 1, 1); updateCalendar(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH)); } else if (e.getSource() == btnNext) { Calendar cal = Calendar.getInstance(); cal.set(tblModel.getYear(), tblModel.getMonth() + 1, 1); updateCalendar(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH)); } } private void updateCalendar(int year, int month) { lblMonth.setText(year + "年" + (month + 1) + "月"); tblModel.setRowCount(0); Calendar cal = Calendar.getInstance(); cal.set(year, month, 1); int maxDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); int startDay = cal.get(Calendar.DAY_OF_WEEK) - 1; int row = 0; for (int i = 1; i <= maxDay; i++) { int col = (startDay + i - 1) % 7; if (col == 0) { tblModel.addRow(new Object[7]); row++; } tblModel.setValueAt(i, row, col); } } public static void main(String[] args) { new CalendarFrame().setVisible(true); } } ``` 在这个示例代码中,我们首先创建了一个继承自`JFrame`的类`CalendarFrame`,并添加了一些控件,包括上一页和下一页按钮、用于显示年份和月份的标签、和一个用于显示日历的表格。 接着,我们重写了`DefaultTableModel`的`isCellEditable`方法,使其不可编辑。然后,我们注册了上一页和下一页按钮的事件监听器,并重写了`actionPerformed`方法,以便在用户点击这些按钮时更新日历。 最后,在`updateCalendar`方法中,我们使用`Calendar`类来计算每个月的天数和每个月的第一天是星期几,并将这些信息填充到表格中。 运行程序,我们就可以看到一个简单的日历窗体了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值