Java实现简单日历小程序 Java图形界面小日历开发

网友投稿 332 2023-02-17


Java实现简单日历小程序 Java图形界面小日历开发

今天给大家介绍一下如何用java swing开发一款简单的小日历,下面我们来看代码:

首先创建一个CalendarBean类,用于基本的日期计算:

package other1;

import java.util.Calendar;

public class CalendarBean

{

String day[];

int year=2005,month=0;

public void setYear(int year)

{

this.year=year;

}

public int getYear()

{

return year;

}

public void setMonth(int month)

{

this.month=month;

}

public int getMonth()

{

return month;

}

public String[] getCalendar()

{

String a[]=new String[42];

Calendar date=Calendar.getInstance();

date.set(year,month-1,1);

int week=date.get(Calendar.DAY_OF_WEEK)-1;

int day=0;

//判断大月份

if(month==1||month==3||month==5||month==7

||month==8||month==10||month==12)

{

day=31;

}

//判断小月

if(month==4||month==6||month==9||month==11)

{

day=30;

}

//判断平年与闰年

if(month==2)

{

if(((year%4==0)&&(year%100!=0))||(year%400==0))

{

day=29;

}

else

{

day=28;

}

}

for(int i=week,n=1;i

{

a[i]=String.valueOf(n) ;

n++;

}

return a;

}

}

然后再创建一个主界面类,用于界面的实现:

package other1;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class CalendarFrame extends JFrame implements ActionListener

{

JLabel labelDay[]=new JLabel[42];

JTextField text=new JTextField(10);

JButton titleName[]=new JButton[7];

JButton button = new JButton();

String name[]={"日","一","二","三", "四","五","六"};

JButton nextMonth,previousMonth;

int year=1996,month=1; //启动程序显示的日期信息

CalendarBean calendar;

JLabel showMessage=new JLabel("",JLabel.CENTER);

JLabel lbl1 = new JLabel("请输入年份:");

JLabel lbl2=new JLabel(" ");

public CalendarFrame()

{

setBackground(new Color(0, 128, 128));

JPanel pCenter=new JPanel();

pCenter.setBackground(new Color(0, 139, 139));

//将pCenter的布局设置为7行7列的GridLayout 布局。

pCenter.setLayout(new GridLayout(7,7));

//pCenter添加组件titleName[i]

for(int i=0;i<7;i++)

{

titleName[i]=new JButton(name[i]);

pCenter.add(titleName[i]);

}

//pCenter添加组件labelDay[i]

for(int i=0;i<42;i++)

{

labelDay[i]=new JLabel("",JLabel.CENTER);

pCenter.add(labelDay[i]);

}

text.addActionListener(this);

calendar=new CalendarBean();

calendar.setYear(year);

calendar.setMonth(month);

String day[]=calendar.getCalendar();

for(int i=0;i<42;i++)

{

labelDay[i].setText(day[i]);

}

nextMonth=new JButton("下月");

previousMonth=new JButton("上月");

button=new JButton("确定");

//注册监听器

nextMonth.addActionListener(this);

previousMonth.addActionListener(this);

button.addActionListener(this);

JPanel pNorth=new JPanel(),

pSouth=new JPanel();

pNorth.add(showMessage);

pNorth.add(lbl2);

pNorth.add(previousMonth);

pNorth.add(nextMonth);

pSouth.add(lbl1);

pSouth.add(text);

pSouth.add(button);

showMessage.setText("日历:"+calendar.getYear()+"年"+ calendar.getMonth()+"月" );

ScrollPane scrollPane=new ScrollPane();

scrollPane.add(pCenter);

getContentPane().add(scrollPane,BorderLayout.CENTER);// 窗口添加scrollPane在中心区域

getContentPane().add(pNorth,BorderLayout.NORTH);// 窗口添加pNorth 在北面区域

getContentPane().add(pSouth,BorderLayout.SOUTH);// 窗口添加pSouth 在南区域。

}

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==nextMonth)

{

month=month+1;

if(month>12)

month=1;

calendar.setMonth(month);

String day[]=calendar.getCalendar();

for(int i=0;i<42;i++)

{

labelDay[i].setText(day[i]);

}

}

else if(e.getSource()==previousMonth)

{

month=month-1;

if(month<1)

month=12;

calendar.setMonth(month);

String day[]=calendar.getCalendar();

for(int i=0;i<42;i++)

{

labelDay[i].setText(day[i]);

}

}

else if(e.getSource()==button)

{

month=month+1;

if(month>12)

month=1;

calendar.setYear(Integer.parseInt(text.getText()));

String day[]=calendar.getCalendar();

for(int i=0;i<42;i++)

{

labelDay[i].setText(day[i]);

}

}

showMessage.setText("日历:"+calendar.getYear()+"年"+calendar.getMonth()+"月" );

}

}

最后用一个类调用即可:

package other1;

import javax.swing.JFrame;

import javax.swing.UIManager;

public class CalendarMainClass

{

public static void main(String args[])

{

try {

UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); //windows界面风格

}catch (Exception e) {

e.printStackTrace();

}

CalendarFrame frame=new CalendarFrame();

frame.setBounds(100,100,360,300);

frame.setTitle("日历小程序");

frame.setLocationRelativeTo(null);//窗体居中显示

frame.setVisible(true);

http:// frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

运行结果如下:

{

a[i]=String.valueOf(n) ;

n++;

}

return a;

}

}

然后再创建一个主界面类,用于界面的实现:

package other1;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class CalendarFrame extends JFrame implements ActionListener

{

JLabel labelDay[]=new JLabel[42];

JTextField text=new JTextField(10);

JButton titleName[]=new JButton[7];

JButton button = new JButton();

String name[]={"日","一","二","三", "四","五","六"};

JButton nextMonth,previousMonth;

int year=1996,month=1; //启动程序显示的日期信息

CalendarBean calendar;

JLabel showMessage=new JLabel("",JLabel.CENTER);

JLabel lbl1 = new JLabel("请输入年份:");

JLabel lbl2=new JLabel(" ");

public CalendarFrame()

{

setBackground(new Color(0, 128, 128));

JPanel pCenter=new JPanel();

pCenter.setBackground(new Color(0, 139, 139));

//将pCenter的布局设置为7行7列的GridLayout 布局。

pCenter.setLayout(new GridLayout(7,7));

//pCenter添加组件titleName[i]

for(int i=0;i<7;i++)

{

titleName[i]=new JButton(name[i]);

pCenter.add(titleName[i]);

}

//pCenter添加组件labelDay[i]

for(int i=0;i<42;i++)

{

labelDay[i]=new JLabel("",JLabel.CENTER);

pCenter.add(labelDay[i]);

}

text.addActionListener(this);

calendar=new CalendarBean();

calendar.setYear(year);

calendar.setMonth(month);

String day[]=calendar.getCalendar();

for(int i=0;i<42;i++)

{

labelDay[i].setText(day[i]);

}

nextMonth=new JButton("下月");

previousMonth=new JButton("上月");

button=new JButton("确定");

//注册监听器

nextMonth.addActionListener(this);

previousMonth.addActionListener(this);

button.addActionListener(this);

JPanel pNorth=new JPanel(),

pSouth=new JPanel();

pNorth.add(showMessage);

pNorth.add(lbl2);

pNorth.add(previousMonth);

pNorth.add(nextMonth);

pSouth.add(lbl1);

pSouth.add(text);

pSouth.add(button);

showMessage.setText("日历:"+calendar.getYear()+"年"+ calendar.getMonth()+"月" );

ScrollPane scrollPane=new ScrollPane();

scrollPane.add(pCenter);

getContentPane().add(scrollPane,BorderLayout.CENTER);// 窗口添加scrollPane在中心区域

getContentPane().add(pNorth,BorderLayout.NORTH);// 窗口添加pNorth 在北面区域

getContentPane().add(pSouth,BorderLayout.SOUTH);// 窗口添加pSouth 在南区域。

}

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==nextMonth)

{

month=month+1;

if(month>12)

month=1;

calendar.setMonth(month);

String day[]=calendar.getCalendar();

for(int i=0;i<42;i++)

{

labelDay[i].setText(day[i]);

}

}

else if(e.getSource()==previousMonth)

{

month=month-1;

if(month<1)

month=12;

calendar.setMonth(month);

String day[]=calendar.getCalendar();

for(int i=0;i<42;i++)

{

labelDay[i].setText(day[i]);

}

}

else if(e.getSource()==button)

{

month=month+1;

if(month>12)

month=1;

calendar.setYear(Integer.parseInt(text.getText()));

String day[]=calendar.getCalendar();

for(int i=0;i<42;i++)

{

labelDay[i].setText(day[i]);

}

}

showMessage.setText("日历:"+calendar.getYear()+"年"+calendar.getMonth()+"月" );

}

}

最后用一个类调用即可:

package other1;

import javax.swing.JFrame;

import javax.swing.UIManager;

public class CalendarMainClass

{

public static void main(String args[])

{

try {

UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); //windows界面风格

}catch (Exception e) {

e.printStackTrace();

}

CalendarFrame frame=new CalendarFrame();

frame.setBounds(100,100,360,300);

frame.setTitle("日历小程序");

frame.setLocationRelativeTo(null);//窗体居中显示

frame.setVisible(true);

http:// frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

运行结果如下:


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:浅谈用Webpack路径压缩图片上传尺寸获取的问题
下一篇:关于接口测试工具postman的信息
相关文章

 发表评论

暂时没有评论,来抢沙发吧~