java swing元件實現gui 日曆程式
import java.awt.BorderLayout; import java.awt.Color; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Date; import java.util.GregorianCalendar; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class CalenderTrain extends JFrame implements ActionListener { //年份 private JLabel YearLabel = new JLabel("年份:"); private JComboBox YearBox = new JComboBox(); //月份 private JLabel MonthLabel = new JLabel("月份:"); private JComboBox MonthBox = new JComboBox(); //檢視 JButton button_ok = new JButton("檢視"); //今天 JButton button_today = new JButton("今天"); //今天的日期,年份,月份 private Date now_date = new Date(); private int now_year = now_date.getYear() + 1900; private int now_month = now_date.getMonth(); private boolean todayFlag = false; //是否顯示今天的日期 //用一行來顯示日期 private JButton[] button_day = new JButton[42]; private final String[] week = {"日", "一", "二", "三", "四", "五", "六"}; private JButton[] button_week = new JButton[7]; //使用者選擇年份和月份 private String year_int = null; private int month_int; public CalenderTrain(){ super(); setTitle("日曆"); init(); setLocation(500, 300); setResizable(false); pack(); } //----->初始化日曆 private void init() { Font font = new Font("Dialog", Font.BOLD, 14); YearLabel.setFont(font); MonthLabel.setFont(font); button_ok.setFont(font); button_today.setFont(font); //當前年份前10年和未來20年時間區間 for(int i = now_year - 10; i <= now_year + 20; i++){ YearBox.addItem(i + ""); } YearBox.setSelectedIndex(10); //12個月的月份區間 for(int i = 1; i < 13; i++){ MonthBox.addItem(i + ""); } MonthBox.setSelectedIndex(now_month); //年份,月份,檢視,今天 JPanel panel_ym = new JPanel(); panel_ym.add(YearLabel); panel_ym.add(YearBox); panel_ym.add(MonthLabel); panel_ym.add(MonthBox); panel_ym.add(button_ok); panel_ym.add(button_today); button_ok.addActionListener(this); button_today.addActionListener(this); //星期 "日", "一", "二", "三", "四", "五", "六" JPanel panel_day = new JPanel(); panel_day.setLayout(new GridLayout(7, 7, 3, 3)); for(int i = 0; i < 7; i++){ button_week[i] = new JButton(week[i]); button_week[i].setForeground(Color.black); panel_day.add(button_week[i]); } button_week[0].setForeground(Color.red); button_week[6].setForeground(Color.red); //1,2,3..30等日 for(int i = 0; i < 42; i++){ button_day[i] = new JButton(" "); panel_day.add(button_day[i]); } printDay(); // JPanel panel_main = new JPanel(); panel_main.setLayout(new BorderLayout()); panel_main.add(panel_ym, BorderLayout.NORTH); panel_main.add(panel_day, BorderLayout.SOUTH); getContentPane().add(panel_main); } //----->顯示當前年月的日期 private void printDay(){ clearBtns(); if(todayFlag){ year_int = now_year + ""; month_int = now_month; }else{ year_int = YearBox.getSelectedItem().toString(); month_int = MonthBox.getSelectedIndex(); } int year_sel = Integer.parseInt(year_int) - 1900; /**Date建構函式 *@param year the year minus 1900. *@param month the month between 0-11. *@param date the day of the month between 1-31. */ Date firstDay = new Date(year_sel, month_int, 1); GregorianCalendar cal = new GregorianCalendar(); cal.setTime(firstDay); // int days = 0; //本月有多少天 int day_week = firstDay.getDay(); //星期幾 if(month_int == 0 || month_int == 2 || month_int == 4 || month_int == 6 || month_int == 7 || month_int == 9 || month_int == 11 ){ days = 31; }else if(month_int == 3 || month_int == 5|| month_int == 8 || month_int == 10 ){ days = 30; }else{ if(cal.isLeapYear(year_sel)){ days = 29; }else{ days = 28; } } //根據選定月份第一天是星期幾來確定按鈕的繪製位置 day_week就是我們繪製的起始位置。 int count = 1; for(int i = day_week; i < day_week + days; count++, i++){ if(i % 7 == 0 || i == 6 || i == 13 || i == 20 || i == 27 || i == 34 || i == 41){ //6+31 = 37 if(i == day_week + now_date.getDate() - 1){ button_day[i].setForeground(Color.blue); button_day[i].setText(count + ""); }else{ button_day[i].setForeground(Color.red); button_day[i].setText(count + ""); } }else{ if(i == day_week + now_date.getDate() - 1){ button_day[i].setForeground(Color.blue); button_day[i].setText(count + ""); }else{ button_day[i].setForeground(Color.black); button_day[i].setText(count + ""); } } } // if(day_week == 0){ for(int i = days; i < 42; i++){ button_day[i].setText(""); } }else{ //第一天不是週日,則將第一天前面的按鈕置空 for(int i = 0; i < day_week; i++){ button_day[i].setText(""); } //最後一天後面的按鈕置空 for(int i = day_week + days; i < 42; i++){ button_day[i].setText(""); } } } private void clearBtns(){ for(int i = 0; i < 42; i++){ button_day[i].setText(""); } } //----->按鈕監聽函式 public void actionPerformed(ActionEvent e) { if(e.getSource() == button_ok){ todayFlag = false; printDay(); }else if(e.getSource() == button_today){ todayFlag = true; YearBox.setSelectedIndex(10); MonthBox.setSelectedIndex(now_month); printDay(); } } //----->主函式 public static void main(String[] args){ CalenderTrain ct = new CalenderTrain(); ct.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ct.setVisible(true); } }
相關推薦
java swing元件實現gui 日曆程式
import java.awt.BorderLayout; import java.awt.Color; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent;
用java的swing元件實現簡易的圖書管理系統
圖書管理系統在生活和學校中是最為常見的,這學期的java課程設計題目中的其中一個就是實現圖書管理系統, 做完課設後,在此記錄下。 我的圖書管理系統一共分為幾個模組。圖書查詢模組,管理員模組(預設只有一個管理員),讀者模組。 圖書管理系統結構圖如下所示: 1、管理員模組
Java POI元件實現多個Excel檔案整合成一個多Sheet的Excel檔案
程式碼: package com.weichai; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStre
java-Swing學習(實現兩個單選框互斥)
package test; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.Fo
JAVA練習:利用JAVA基本語句實現列印日曆
已知1900年1月1日是星期一,要求列印輸入年月的日曆。 輸出結果格式: 日 一 二 三 四 五 六 1 2 3 4
java Swing元件大全超牛的例子
http://www.blogjava.net/tjsjrx2010/archive/2009/12/11/305663.htmlpackage com.mygame;import java.awt.BorderLayout;import java.awt.Color;imp
java swing 元件大全----測試Swing所有元件及其相應的事件
package testSwing; import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.tree.*; import javax.swing.even
java swing元件介紹
Swing中的所有lightweightcomponent都繼承自JComponent(抽象類),除了JFrame,JDialog,JWindow與JApplet這四個元件是hevayweightcomponent外!JFrame繼承原有的AWT中的Frame類;JApplet繼承原有的
java 控制元件實現回車到下一個焦點控制元件,功能同tab鍵。
簡單示例(紅色為關鍵句):import javax.swing.*;import java.awt.*;import java.awt.event.*;public class MyTest extends JFrame implements KeyListener{priv
java swing mysql實現的倉庫商品管理系統專案原始碼附帶視訊指導教程
大家好,今天給大家演示一下由Java swing實現的一款簡單的倉庫商品管理系統,資料庫採用的是mysql,本系統實現了兩個角色層面的功能,管理員可以管理使用者、倉庫、商品資訊等。普通使用者登入後可以檢視商品、倉庫資訊及個人資訊。系統功能比較簡單,但是非常適合Java初學者
Java呼叫Win32實現操作其他程式視窗
1、用到的包 ①jna-4.4.0.jar和jna-platform-4.4.0(下載地址) ②JNative.jar(下載地址) 2、使用方式:向QQ輸入文字為例 public class QQTest { public static void main(String[
自定義java Swing日曆選擇元件JCalendarChooser
package cn.net.iem.view.mainframe; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.GridBagConstraints; impo
使用InstallAnyWhere 2009打包釋出Java Swing GUI應用程式
最近幾天開始做Java應用,Java Swing GUI的應用開發測試完畢,發現一個問題,就是怎麼移植到其他Windows機器上去?一直做.NET方面的開發,發現原來Java桌面應用程式
java swing實現日曆顯示
package com.cn9; import java.awt.BorderLayout; import java.awt.Color; import java.awt.FlowLayout; import java.awt.GridLayout; imp
Java Swing 圖形界面實現驗證碼(驗證碼可動態刷新)
string ble urn repaint xtend efault event adapt 內容 import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.To
Java Swing 實現系統托盤圖標
bubuko alt 匹配 fig ons 參數 mage 彈出 con 在實現托盤圖標時,出現彈出式菜單顯示中文亂碼,無法顯示正確的文字 查詢相關資料後發現是字符編碼不匹配,查詢資料出處 解決方法 1、通過修改Java項目的默認編碼為GBK; 2、在Run Configu
Calendar實現視覺化日曆程式
package com.data; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java
純前端表格控制元件SpreadJS與Java結合,實現模板上傳和下載等功能
安裝部署: 開發環境: 後臺伺服器端採用 Java 、SpringMVC。 資料儲存到 \demo_web\WEB-INF\FileDatabase.txt 檔案中,不需要依賴DB。 採用 Eclipse Java EE IDE for Web Develope
Java實現註冊登入系統——基於Java Swing實現
技術簡介:Java Swing 介紹 Swing 是一個為Java設計的GUI工具包。 Swing是JAVA基礎類的一部分。 Swing包括了圖形使用者介面(GUI)器件如:文字框,按鈕,分隔窗格和表。 Swing提供許多比AWT更好的螢幕顯示元素。它們用純Java寫成,所以同J
Java 圖形化實現一個驗證電話號碼是否合法的程式
package com.wxj; import java.awt.EventQueue; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton;