「java万年日历」JAVA万年历

博主:adminadmin 2022-12-12 16:54:05 72

今天给各位分享java万年日历的知识,其中也会对JAVA万年历进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java万年历源代码

直接输入你先要的就可以了 当然了现在一般都不用这么麻烦的 现在有全面的一个简写版本可以直接用 谢谢

用java语言编写万年历

给你一个现成的,我自己写的。

import java.awt.*;

import java.util.*;

import javax.swing.*;

import java.awt.event.*;

public class WanNianLi extends JFrame implements ActionListener {

private static int year,month,days;

private JButton[] btn=new JButton[days];

WanNianLi() {

super("万年历");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

GridLayout bl=new GridLayout(5,7);

JPanel pane=new JPanel();

pane.setLayout(bl);

for (int i=0;idays;i++) {

int temp=i+1;

btn[i]=new JButton(""+temp);

btn[i].addActionListener(this);

pane.add(btn[i]);

}

setContentPane(pane);

pack();

setLookAndFeel();

setVisible(true);

}

public static void main(String[] args) {

if (args.length0)

year=Integer.parseInt(args[0]);

else

year=1982;

if (args.length1)

month=Integer.parseInt(args[1]);

else

month=1;

GetDays gd=new GetDays(year,month);

days=gd.getDays();

new WanNianLi();

}

public void actionPerformed(ActionEvent evt) {

Object src=evt.getSource();

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

if (src==btn[i]) {

int day=i+1;

GetWeekday gw=new GetWeekday(year,month,day);

String str="";

switch (gw.getWeekday()) {

case 1:

str="天";

break;

case 2:

str="一";

break;

case 3:

str="二";

break;

case 4:

str="三";

break;

case 5:

str="四";

break;

case 6:

str="五";

break;

case 7:

str="六";

break;

}

setTitle(year+"年"+month+"月"+day+"日"+"星期"+str);

repaint();

}

}

private void setLookAndFeel() {

try {

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

SwingUtilities.updateComponentTreeUI(this);

}catch(Exception e){

System.out.print(e.toString());

}

}

}

//////////////

//获取星期几//

//////////////

class GetWeekday {

private Calendar cal=Calendar.getInstance();

private static int weekday;

public int getWeekday() {

return weekday;

}

GetWeekday(int y,int m,int d) {

cal.clear();

cal.set(Calendar.YEAR,y);

cal.set(Calendar.MONTH,m-1);

cal.set(Calendar.DAY_OF_MONTH,d);

weekday=cal.get(Calendar.DAY_OF_WEEK);

}

}

////////////////////

//获取当前月的天数//

////////////////////

class GetDays {

private static int days;

public int getDays() {

return days;

}

GetDays(int y,int m) {

GregorianCalendar gc=new GregorianCalendar();

switch (m) {

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

days=31;

break;

case 4:

case 6:

case 9:

case 11:

days=30;

break;

case 2:

if (gc.isLeapYear(y))

days=29;

else

days=28;

break;

}

}

}

JAVA万年历

//日历使用的类

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Component;

import java.awt.Container;

import java.awt.FlowLayout;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.FocusEvent;

import java.awt.event.FocusListener;

import java.util.Calendar;

import javax.swing.JApplet;

import javax.swing.JButton;

import javax.swing.JComboBox;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JSpinner;

import javax.swing.JTable;

import javax.swing.JTextField;

import javax.swing.ListSelectionModel;

import javax.swing.Timer;

import javax.swing.event.ChangeEvent;

import javax.swing.event.ChangeListener;

import javax.swing.table.AbstractTableModel;

import javax.swing.table.TableCellRenderer;

import javax.swing.table.TableModel;

//日历

public class MyCalendar extends JApplet {

public static final String WEEK_SUN = "SUN";

public static final String WEEK_MON = "MON";

public static final String WEEK_TUE = "TUE";

public static final String WEEK_WED = "WED";

public static final String WEEK_THU = "THU";

public static final String WEEK_FRI = "FRI";

public static final String WEEK_SAT = "SAT";

public static final Color background = Color.yellow;

public static final Color foreground = Color.black;

public static final Color headerBackground = Color.blue;

public static final Color headerForeground = Color.white;

public static final Color selectedBackground = Color.blue;

public static final Color selectedForeground = Color.white;

private JPanel cPane;

private JLabel yearsLabel;

private JSpinner yearsSpinner;

private JLabel monthsLabel;

private JComboBox monthsComboBox;

private JTable daysTable;

private AbstractTableModel daysModel;

private Calendar calendar;

int delay = 1000;

public MyCalendar() {

cPane = (JPanel) getContentPane();

}

public void init() {

setSize(350, 300);

cPane.setLayout(new BorderLayout());

calendar = Calendar.getInstance();

yearsLabel = new JLabel("Year: ");

yearsSpinner = new JSpinner();

yearsSpinner.setEditor(new JSpinner.NumberEditor(yearsSpinner, "0000"));

yearsSpinner.setValue(new Integer(calendar.get(Calendar.YEAR)));

yearsSpinner.addChangeListener(new ChangeListener() {

public void stateChanged(ChangeEvent changeEvent) {

int day = calendar.get(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH, 1);

calendar.set(Calendar.YEAR, ((Integer) yearsSpinner.getValue())

.intValue());

int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

calendar

.set(Calendar.DAY_OF_MONTH, day maxDay ? maxDay : day);

updateView();

}

});

JPanel yearMonthPanel = new JPanel();

cPane.add(yearMonthPanel, BorderLayout.NORTH);

yearMonthPanel.setLayout(new BorderLayout());

yearMonthPanel.add(new JPanel(), BorderLayout.CENTER);

JPanel yearPanel = new JPanel();

yearMonthPanel.add(yearPanel, BorderLayout.WEST);

yearPanel.setLayout(new BorderLayout());

yearPanel.add(yearsLabel, BorderLayout.WEST);

yearPanel.add(yearsSpinner, BorderLayout.CENTER);

monthsLabel = new JLabel("Month: ");

monthsComboBox = new JComboBox();

for (int i = 1; i = 12; i++) {

monthsComboBox.addItem(new Integer(i));

}

monthsComboBox.setSelectedIndex(calendar.get(Calendar.MONTH));

monthsComboBox.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent actionEvent) {

int day = calendar.get(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH, 1);

calendar.set(Calendar.MONTH, monthsComboBox.getSelectedIndex());

int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

calendar

.set(Calendar.DAY_OF_MONTH, day maxDay ? maxDay : day);

updateView();

}

});

JPanel monthPanel = new JPanel();

yearMonthPanel.add(monthPanel, BorderLayout.EAST);

monthPanel.setLayout(new BorderLayout());

monthPanel.add(monthsLabel, BorderLayout.WEST);

monthPanel.add(monthsComboBox, BorderLayout.CENTER);

daysModel = new AbstractTableModel() {

public int getRowCount() {

return 9;

}

public int getColumnCount() {

return 7;

}

public Object getValueAt(int row, int column) {

if (row == 0) {

return getHeader(column);

}

row--;

Calendar calendar = (Calendar) MyCalendar.this.calendar.clone();

calendar.set(Calendar.DAY_OF_MONTH, 1);

int dayCount = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

int moreDayCount = calendar.get(Calendar.DAY_OF_WEEK) - 1;

int index = row * 7 + column;

int dayIndex = index - moreDayCount + 1;

if (index moreDayCount || dayIndex dayCount) {

return null;

} else {

return new Integer(dayIndex);

}

}

};

daysTable = new CalendarTable(daysModel, calendar);

daysTable.setCellSelectionEnabled(true);

daysTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

daysTable.setDefaultRenderer(daysTable.getColumnClass(0),

new TableCellRenderer() {

public Component getTableCellRendererComponent(

JTable table, Object value, boolean isSelected,

boolean hasFocus, int row, int column) {

String text = (value == null) ? "" : value.toString();

JLabel cell = new JLabel(text);

cell.setOpaque(true);

if (row == 0) {

cell.setForeground(headerForeground);

cell.setBackground(headerBackground);

} else {

if (isSelected) {

cell.setForeground(selectedForeground);

cell.setBackground(selectedBackground);

} else {

cell.setForeground(foreground);

cell.setBackground(background);

}

}

return cell;

}

});

updateView();

cPane.add(daysTable, BorderLayout.CENTER);

// 窗体添加事件监听,监听秒表的触发

ActionListener taskPerformer = new ActionListener() {

public void actionPerformed(ActionEvent evt) {

repaint();

}

};

new Timer(delay, taskPerformer).start();

}

public void paint(Graphics g) {

int hh, mm, ss;

Calendar now;

String st;

// 获取时间

now = Calendar.getInstance();

hh = now.get(Calendar.HOUR_OF_DAY);// 小时

mm = now.get(Calendar.MINUTE);// 分钟

ss = now.get(Calendar.SECOND);// 秒

g.setColor(Color.WHITE);

g.fillRect(5, 250, 150, 30);// 填充的矩形

g.setColor(Color.BLACK);

if (hh 10)

st = "0" + hh;

else

st = "" + hh;

if (mm 10)

st = st + ":0" + mm;

else

st = st + ":" + mm;

if (ss 10)

st = st + ":0" + ss;

else

st = st + ":" + ss;

{

g.setFont(new Font("华文楷体", Font.BOLD, 16));

g.drawString("系统时间:" + st, 10, 270);

}

}

public static String getHeader(int index) {

switch (index) {

case 0:

return WEEK_SUN;

case 1:

return WEEK_MON;

case 2:

return WEEK_TUE;

case 3:

return WEEK_WED;

case 4:

return WEEK_THU;

case 5:

return WEEK_FRI;

case 6:

return WEEK_SAT;

default:

return null;

}

}

public void updateView() {

daysModel.fireTableDataChanged();

daysTable.setRowSelectionInterval(calendar.get(Calendar.WEEK_OF_MONTH),

calendar.get(Calendar.WEEK_OF_MONTH));

daysTable.setColumnSelectionInterval(

calendar.get(Calendar.DAY_OF_WEEK) - 1, calendar

.get(Calendar.DAY_OF_WEEK) - 1);

daysTable.setColumnSelectionInterval(0,0);

}

public static class CalendarTable extends JTable {

private Calendar calendar;

public CalendarTable(TableModel model, Calendar calendar) {

super(model);

this.calendar = calendar;

}

public void changeSelection(int row, int column, boolean toggle,

boolean extend) {

super.changeSelection(row, column, toggle, extend);

if (row == 0) {

return;

}

Object obj = getValueAt(row, column);

if (obj != null) {

calendar.set(Calendar.DAY_OF_MONTH, ((Integer) obj).intValue());

}

}

}

public static void main(String[] args) {

JFrame frame = new JFrame("简易时间日历");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

MyCalendar myCalendar = new MyCalendar();

myCalendar.init();

frame.getContentPane().add(myCalendar);

frame.setLocation(330, 80);

frame.setSize(360, 212);

frame.setVisible(true);

}

// 滚动字

public static class RollbyJFrame extends JFrame implements ActionListener,

FocusListener, javax.swing.event.ChangeListener {

private JTextField text;

private JSpinner spinner;

private Timer timer;

private JButton button;

public void focusGained(FocusEvent e) // 获得焦点时

{

if (e.getSource() == text) {

timer.stop();

}

}

public void focusLost(FocusEvent e) // 失去焦点时

{

if (e.getSource() == text) {

timer.restart();

}

}

public void stateChanged(ChangeEvent e) {

if (e.getSource() == spinner) {

timer.setDelay(new Integer("" + spinner.getValue())); // 设置延时的时间间隔

}

}

public void actionPerformed(ActionEvent e) // 定时器定时执行事件

{

if (e.getSource() == button)

;

else {

String temp = text.getText();

temp = temp.substring(1) + temp.substring(0, 1);

text.setText(temp);

}

}

public void buttondown(ActionEvent e) // 单击事件

{

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

}

;

}

}

}

java万年日历的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于JAVA万年历、java万年日历的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-12,除非注明,否则均为首码项目网原创文章,转载请注明出处。