使用Java设计一个最简单的日历界面

请使用JFrame、JPanel、JButton、JLabel和不同的布局管理器,实现如下日历视图。

在这里插入图片描述


import java.awt.*;
import javax.swing.*;

public class Main {
	public static void main(String[] args) {
		JFrame frame = new JFrame("calendar");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		
		//第一部分
		FlowLayout flow = new FlowLayout(FlowLayout.CENTER);
		flow.setHgap(20);         //设置横向间距
		//flow.setVgap(10);        //设置纵向间距
		JPanel paneln = new JPanel(flow);
		JLabel l1 = new JLabel("2021年 7月");
		JButton left1 = new JButton("<<");
		JButton left2 = new JButton("<");
		JButton right1 = new JButton(">");
		JButton right2 = new JButton(">>");
		paneln.add(left1);
		paneln.add(left2);
		paneln.add(l1);
		paneln.add(right1);
		paneln.add(right2);
		frame.add(paneln, BorderLayout.NORTH);
		//第一部分
		
		
		//第二部分
		JPanel week = new JPanel(new GridLayout(1,7));    //设置1行7列的格式
		JLabel weeknum[] = new JLabel[7];
		weeknum[0] = new JLabel("一",JLabel.CENTER);
		weeknum[1] = new JLabel("二",JLabel.CENTER);
		weeknum[2] = new JLabel("三",JLabel.CENTER);
		weeknum[3] = new JLabel("四",JLabel.CENTER);
		weeknum[4] = new JLabel("五",JLabel.CENTER);
		weeknum[5] = new JLabel("六",JLabel.CENTER);
		weeknum[6] = new JLabel("日",JLabel.CENTER);
		weeknum[6].setPreferredSize(new Dimension(75,75));     //设置单元格大小
		weeknum[6].setBorder(BorderFactory.createLineBorder(Color.gray));      //设置显示边框并设计为灰色
		week.add(weeknum[6]);
		for(int i=0;i<6;i++)
		{
			weeknum[i].setPreferredSize(new Dimension(75,75));      //设置单元格大小
			weeknum[i].setBorder(BorderFactory.createLineBorder(Color.gray));     //设置显示边框并设计为灰色
			week.add(weeknum[i]);
		}
		frame.add(week,BorderLayout.CENTER);
		//第二部分
		
		
		//第三部分
		JPanel date = new JPanel(new GridLayout(5,7));
		JButton datenum[] = new JButton[35];
		int i;
		Font font = new Font("宋体", Font.ITALIC,12);     //设置个别数字字体
		for(i=0;i<4;i++) {
			String arr = ""+(i+27);
			datenum[i] = new JButton(arr);
			datenum[i].setFont(font);      //实现字体设置
			date.add(datenum[i]);
			datenum[i].setPreferredSize(new Dimension(75,75));    //设置单元格大小
		}    //添加个别数字日期
		for(i=0;i<31;i++) {
			String arr = ""+(i+1);
			datenum[i] = new JButton(arr);
			date.add(datenum[i]);
			datenum[i].setPreferredSize(new Dimension(75,75));    //设置单元格大小
		}    //添加正常数字日期
		frame.add(date,BorderLayout.SOUTH);
		//第三部分
		
		
		frame.pack();
		frame.setVisible(true);
	}

}

运行结果
在这里插入图片描述

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值