「java日历图形界面」java设计日历窗口源代码

博主:adminadmin 2023-03-21 13:51:13 526

本篇文章给大家谈谈java日历图形界面,以及java设计日历窗口源代码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

我要设计一个日历控件 用 java开发的我的软件是eclipse我该怎么操作呢 求大神指导

这是我以前制作的日历控件,根据网友的代码改写的,自己用着感觉还行。现在没有时间根据你的条件再改写了,如果你觉得合用,就自己再改吧。

用java图形用户界面实现: 编写一个日历程序,能实现显示日历等简单功能。

import javax.swing.JOptionPane;

public class NewClass{

public static void main(String[] args){

int year,month;

Calender cal=new Calender(2008,10);

cal.showCalender();

year=Integer.parseInt(JOptionPane.showInputDialog("Year:"));

month=Integer.parseInt(JOptionPane.showInputDialog("Month:"));

cal.setYear(year);

cal.setMonth(month);

cal.showCalender();

}

}

class Calender{

private int year,month;

public Calender(){

year=0;

month=1;

}

public Calender(int year){

this.year=year;

month=1;

}

public Calender(int year,int month){

this.year=year;

if(month12)

this.month=month%12;

else

this.month=month;

}

public void setYear(int year){

this.year=year;

}

public void setMonth(int month){

if(month12)

this.month=month%12;

else

this.month=month;

}

private int dayOfMonth(){

int days=0;

switch(month){

case 1:days=31;break;

case 2:{

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

days=29;

else

days=28;

break;

}

case 3:days=31;break;

case 4:days=30;break;

case 5:days=31;break;

case 6:days=30;break;

case 7:days=31;break;

case 8:days=31;break;

case 9:days=30;break;

case 10:days=31;break;

case 11:days=30;break;

case 12:days=31;break;

default:

days=0;

}

return days;

}

private int dayOfWeek(){

int Y=year;

int M=month;

int D=1;

int A;

A = Y0?(5+(Y+1)+(Y-1)/4-(Y-1)/100+(Y-1)/400)%7:(5+Y+Y/4-Y/100+Y/400)%7;

A = M2?(A+2*(M+1)+3*(M+1)/5)%7:(A+2*(M+2)+3*(M+2)/5)%7;

if (((Y%4 == 0 Y%100 != 0)|| Y%400 == 0) M2) A =(A+1)%7;

A=(A+D)%7;

return A;

}

public void showCalender(){

String str=new String();

str=" ";

str+=year+"年"+month+"月";

str+="\n\n";

str+="日 一 二 三 四 五 六\n";

int week=this.dayOfWeek();

for(int i=0,j=1;i7;i++){

if(iweek)

str+=" ";

else{

str+=" "+j+" ";

j++;

}

}

str+="\n";

end:

for(int i=7-week+1;i=this.dayOfMonth();){

for(int j=0;j7;j++){

if(i10)

str+=" "+i+" ";

else

str+=i+" ";

i++;

if(ithis.dayOfMonth())

break end;

}

str+="\n";

}

JOptionPane.showMessageDialog(null,str);

}

}

java如何在窗口中显示日历

MainFrame.java是显示日历程序,Clock.java是日历计算程序(可以不要)。

编译后运行MainFrame这个类即可。

 

swing窗口显示万年历,jdk1.4以上环境编译运行。

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133    package org.test;import java.awt.BorderLayout;import java.awt.Color;import java.awt.GridLayout;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Date;import java.util.Calendar;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class MainFrame extends JFrame { private static final long serialVersionUID = -306484324260972141L; JPanel panel = new JPanel(new BorderLayout()); JPanel panel1 = new JPanel(); JPanel panel2 = new JPanel(new GridLayout(7, 7)); JPanel panel3 = new JPanel(); JLabel[] label = new JLabel[49]; JLabel y_label = new JLabel("年份"); JLabel m_label = new JLabel("月份"); JComboBox com1 = new JComboBox(); JComboBox com2 = new JComboBox(); int re_year, re_month, x_size, y_size; String year_num; Calendar now = Calendar.getInstance(); // 实例化Calendar   MainFrame() {  super("万年历");   setSize(300, 350);  x_size = (int) (Toolkit.getDefaultToolkit().getScreenSize().getWidth());  y_size = (int) (Toolkit.getDefaultToolkit().getScreenSize().getHeight());  setLocation((x_size - 300) / 2, (y_size - 350) / 2);  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  panel1.add(y_label);  panel1.add(com1);  panel1.add(m_label);  panel1.add(com2);  for (int i = 0; i  49; i++) {   label[i] = new JLabel("", JLabel.CENTER);// 将显示的字符设置为居中    panel2.add(label[i]);  }  panel3.add(new Clock(this));  panel.add(panel1, BorderLayout.NORTH);  panel.add(panel2, BorderLayout.CENTER);  panel.add(panel3, BorderLayout.SOUTH);   panel.setBackground(Color.white);  panel1.setBackground(Color.white);  panel2.setBackground(Color.white);  panel3.setBackground(Color.white);  Init();  com1.addActionListener(new ClockAction());  com2.addActionListener(new ClockAction());  setContentPane(panel);  setVisible(true);  setResizable(false); }   class ClockAction implements ActionListener {  public void actionPerformed(ActionEvent arg0) {   int c_year, c_month, c_week;   c_year = Integer.parseInt(com1.getSelectedItem().toString()); // 得到当前所选年份    c_month = Integer.parseInt(com2.getSelectedItem().toString()) - 1; // 得到当前月份,并减1,计算机中的月为0-11   c_week = use(c_year, c_month); // 调用函数use,得到星期几   Resetday(c_week, c_year, c_month); // 调用函数Resetday   } }   public void Init() {  int year, month_num, first_day_num;  String log[] = { "日", "一", "二", "三", "四", "五", "六" };  for (int i = 0; i  7; i++) {   label[i].setText(log[i]);  }     for (int i = 0; i  49; i = i + 7) {   label[i].setForeground(Color.red); // 将星期日的日期设置为红色  }     for (int i = 6; i  49; i = i + 7) {   label[i].setForeground(Color.green);// 将星期六的日期设置为绿色  }     for (int i = 1; i  10000; i++) {   com1.addItem("" + i);  }     for (int i = 1; i  13; i++) {   com2.addItem("" + i);  }     month_num = (int) (now.get(Calendar.MONTH)); // 得到当前时间的月份   year = (int) (now.get(Calendar.YEAR)); // 得到当前时间的年份    com1.setSelectedIndex(year - 1); // 设置下拉列表显示为当前年  com2.setSelectedIndex(month_num); // 设置下拉列表显示为当前月  first_day_num = use(year, month_num);  Resetday(first_day_num, year, month_num); }   public int use(int reyear, int remonth) {  int week_num;  now.set(reyear, remonth, 1); // 设置时间为所要查询的年月的第一天  week_num = (int) (now.get(Calendar.DAY_OF_WEEK));// 得到第一天的星期   return week_num; }    @SuppressWarnings("deprecation") public void Resetday(int week_log, int year_log, int month_log) {  int month_day_score; // 存储月份的天数   int count;  month_day_score = 0;  count = 1;  Date date = new Date(year_log, month_log + 1, 1); // now  Calendar cal = Calendar.getInstance();  cal.setTime(date);  cal.add(Calendar.MONTH, -1); // 前个月  month_day_score = cal.getActualMaximum(Calendar.DAY_OF_MONTH);// 最后一天  for (int i = 7; i  49; i++) { // 初始化标签   label[i].setText("");  }  week_log = week_log + 6; // 将星期数加6,使显示正确  month_day_score = month_day_score + week_log;  for (int i = week_log; i  month_day_score; i++, count++) {   label[i].setText(count + "");  } }   public static void main(String[] args) {  JFrame.setDefaultLookAndFeelDecorated(true);  new MainFrame(); }}    

12345678910111213141516171819202122232425262728293031323334353637383940414243    package org.test;import java.awt.Color;import java.util.Calendar;import java.awt.Canvas;import java.awt.Font;import java.awt.Graphics;import java.text.SimpleDateFormat;public class Clock extends Canvas implements Runnable{ private static final long serialVersionUID = 3660124045489727166L; MainFrame mf; Thread t; String time;   public Clock(MainFrame mf){  this.mf=mf;  setSize(280,40);  setBackground(Color.white);  t=new Thread(this);//实例化线程  t.start();   //调用线程    }   public void run(){  while(true){   try{    Thread.sleep(1000);//休眠1秒钟   }catch(InterruptedException e){    System.out.println("异常");   }   this.repaint(100);  } }   public void paint(Graphics g){  Font f=new Font("宋体",Font.BOLD,16);  SimpleDateFormat SDF=new SimpleDateFormat("yyyy'年'MM'月'dd'日'HH:mm:ss");//格式化时间显示类型    Calendar now=Calendar.getInstance();  time=SDF.format(now.getTime());        //得到当前日期和时间      g.setFont(f);  g.setColor(Color.orange);  g.drawString(time,45,25); }}

用java图形用户界面实现: 编写一个日历程序,能实现显示日历等简单功能。 (运行后有窗体出现的那

import javax.swing.JOptionPane;

public class NewClass{

public static void main(String[] args){

int year,month;

Calender cal=new Calender(2008,10);

cal.showCalender();

year=Integer.parseInt(JOptionPane.showInputDialog("Year:"));

month=Integer.parseInt(JOptionPane.showInputDialog("Month:"));

cal.setYear(year);

cal.setMonth(month);

cal.showCalender();

}

}

class Calender{

private int year,month;

public Calender(){

year=0;

month=1;

}

public Calender(int year){

this.year=year;

month=1;

}

public Calender(int year,int month){

this.year=year;

if(month12)

this.month=month%12;

else

this.month=month;

}

public void setYear(int year){

this.year=year;

}

public void setMonth(int month){

if(month12)

this.month=month%12;

else

this.month=month;

}

private int dayOfMonth(){

int days=0;

switch(month){

case 1:days=31;break;

case 2:{

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

days=29;

else

days=28;

break;

}

case 3:days=31;break;

case 4:days=30;break;

case 5:days=31;break;

case 6:days=30;break;

case 7:days=31;break;

case 8:days=31;break;

case 9:days=30;break;

case 10:days=31;break;

case 11:days=30;break;

case 12:days=31;break;

default:

days=0;

}

return days;

}

private int dayOfWeek(){

int Y=year;

int M=month;

int D=1;

int A;

A = Y0?(5+(Y+1)+(Y-1)/4-(Y-1)/100+(Y-1)/400)%7:(5+Y+Y/4-Y/100+Y/400)%7;

A = M2?(A+2*(M+1)+3*(M+1)/5)%7:(A+2*(M+2)+3*(M+2)/5)%7;

if (((Y%4 == 0 Y%100 != 0)|| Y%400 == 0) M2) A =(A+1)%7;

A=(A+D)%7;

return A;

}

public void showCalender(){

String str=new String();

str=" ";

str+=year+"年"+month+"月";

str+="\n\n";

str+="日 一 二 三 四 五 六\n";

int week=this.dayOfWeek();

for(int i=0,j=1;i7;i++){

if(iweek)

str+=" ";

else{

str+=" "+j+" ";

j++;

}

}

str+="\n";

end:

for(int i=7-week+1;i=this.dayOfMonth();){

for(int j=0;j7;j++){

if(i10)

str+=" "+i+" ";

else

str+=i+" ";

i++;

if(ithis.dayOfMonth())

break end;

}

str+="\n";

}

JOptionPane.showMessageDialog(null,str);

}

}

怎么用java编写日历动态时钟的界面

import java.lang.Carlendar;

import java.util.Date;

class Mytime extends Thread{ //继承 Thread 类,实现多线程

Thread thread = new Thread();

thread.Start();

public void fun()

{

while(true)

{

Date date = new Date();

thread.Sleep(1000); //设置一秒钟提取一次

txtTime.setText(date) //将时间显示到文本框里,还要提取一下,你自己搞了

}

}

}

日历不写了,

这是动态时间,

你有电脑就要自己调试一下,

我敢肯定是这样做的,

我现在忘记了一些,

这样不行你把thread.Start();

放到while里面去,

但是你改一改绝对会成功,

因为我做了

祝你成功

使用JAVA编程万年历要求:使用图形用户界面;实现日期与星期的查询。

这是我刚做出来的,时间紧迫,做得有些粗糙,但是你要的功能基本实现了!import java.awt.*;

import java.text.*;

import javax.swing.*;

import java.awt.event.*;

import java.util.*;

//import java.util.Timer;

public class DataSimple implements ItemListener

{

JFrame mainFrame;

JLabel yearLabel,monthLabel,showTextLabel,timeLabel;

JTextArea showArea;

JComboBox yearBox,monthBox;

JPanel panel_top,panel_down;

Container con;

//JTable myTable;

//JScrollPane JSpane;

String year[]=new String[9000];

String month[]=new String[12];

Date today;

GregorianCalendar cal;

//Timer myTimer;

//TimerTask myTask;

int totalDays,startDay,i;

String selectYear,selectMonth;

Object [][] day=new Object[4][6];

static final String head[]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};

SimpleDateFormat timeFormat=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");

public DataSimple()

{

mainFrame=new JFrame("模拟万年日历");

con=mainFrame.getContentPane();

yearLabel=new JLabel("选择年份:");

monthLabel=new JLabel("选择月份:");

for(int i=1900;i10000;i++)

{

try

{

//year[i-1900]=(new Integer(i)).toString();

year[i-1900]=String.valueOf(i);

}

catch(Exception e)

{

JOptionPane.showMessageDialog(mainFrame,"出现异常");

}

}

yearBox=new JComboBox(year);

yearBox.setSelectedItem("2010");

yearBox.addItemListener(this);

for(int i=0;i12;i++)

{

month[i]=(new Integer(i)).toString();

}

monthBox=new JComboBox(month);

monthBox.setSelectedItem("1");

monthBox.addItemListener(this);

panel_top=new JPanel();

panel_top.setLayout(new FlowLayout());

panel_top.add(yearLabel);

panel_top.add(yearBox);

panel_top.add(monthLabel);

panel_top.add(monthBox);

con.add(panel_top,BorderLayout.NORTH);

showArea=new JTextArea();

showArea.setEditable(false);

showDate(2010,1);

//myTable=new JTable(day,head);

con.add(showArea,BorderLayout.CENTER);

showTextLabel=new JLabel("现在时间是:");

today=new Date();

timeLabel=new JLabel(timeFormat.format(today));

panel_down=new JPanel();

panel_down.setLayout(new FlowLayout());

panel_down.add(showTextLabel);

panel_down.add(timeLabel);

con.add(panel_down,BorderLayout.SOUTH);

//con.add(showArea,BorderLayout.CENTER);

mainFrame.setSize(400,300);

mainFrame.setVisible(true);

mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public void showDate(int year,int month)

{

showArea.setText("");

cal=new GregorianCalendar(year,month-1,1);

totalDays=cal.getActualMaximum(Calendar.DAY_OF_MONTH);

startDay=cal.get(Calendar.DAY_OF_WEEK)-1;

for(i=0;ihead.length;i++)

showArea.append(head[i]+" ");

showArea.append("\n");

//输出第一天之前的空格,每个输出项8个空格

for(i=0;istartDay;i++)

{

//day[0][i]=new Integer(0);

showArea.append(" ");

}

//依次输出每一天,每一个输出项占8个字符宽度

for(int days=1;days=totalDays;days++)

{ /*for(int j=0;j5;j++)

{

for(int z=0;z7;z++)

{

if(!day[j][z].equals(0))

{

day[j][z]=new Integer(days);

}*/

if(days10)

{

showArea.append(" "+days+" ");

}

else if(days=10)

{

showArea.append(" "+days+" ");

}

i++;

if(i==7)

{

showArea.append("\n");

i=0;

}

/*}

}*/

}

}

public void itemStateChanged(ItemEvent e)

{

if(e.getStateChange()==ItemEvent.SELECTED)

{

selectYear=(String)(yearBox.getSelectedItem());

selectMonth=(String)(monthBox.getSelectedItem());

showDate(Integer.parseInt(selectYear),Integer.parseInt(selectMonth));

}

}

public static void main(String argv[])

{

new DataSimple();

}

}运行截图:

关于java日历图形界面和java设计日历窗口源代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。