日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

实践作业三 结对项目

發(fā)布時間:2025/3/17 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实践作业三 结对项目 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

學(xué)號: 201303014008 ?姓名:張燕 ? 班級:計科(高職)13-1

?

一、題目簡介

? 利用Java GUI的組件類、容器類和輔助類設(shè)計所選項目的用戶界面,并在深入理解并掌握事件驅(qū)動程序設(shè)計原理的基礎(chǔ)上,實現(xiàn)事件驅(qū)動的程序設(shè)計。

? 1.實現(xiàn)圖形界面。

? 2.能以月歷形式顯示日期與星期。工作日、雙休日、當(dāng)天分別以黑色、紅色和藍色顯示。

? 3.支持用戶通過下拉形式菜單來選擇月份。

? 4.通過點擊“現(xiàn)在日期”來刷新日歷。

?

二.結(jié)對分工

?

結(jié)對者: 張燕 ? 黃彥瀟

?

?張燕:代碼編寫以及程序測試

?

?黃彥瀟:程序分析及代碼規(guī)范

?

三.代碼地址:

?

https://github.com/yranqiu/test/blob/master/shiyan3

?

四.測試代碼:

?

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.util.*;

?

public class CalenderTrain extends JFrame implements ActionListener {

JComboBox Month = new JComboBox(); //月份下拉列表框

JComboBox Year = new JComboBox(); //年份下拉列表框

JLabel Year_l = new JLabel("年份:"); //定義標(biāo)簽

JLabel Month_l = new JLabel("月份:"); //定義標(biāo)簽

Date now_date = new Date(); //獲取今天的日期

JButton[] button_day = new JButton[49]; //定義一個數(shù)組用來存放日期

JButton button_jump = new JButton("日期跳轉(zhuǎn)"); //現(xiàn)實選擇日期

JButton button_today = new JButton("現(xiàn)在日期"); //顯示今天日期按鈕

int now_year = now_date.getYear() + 1900; //獲取年份值

int now_month = now_date.getMonth(); //獲取月份值(當(dāng)前月份-1)

boolean bool = false;

String year_int = null; //存放年份

int month_int; //存放月份

JPanel pane_ym = new JPanel(); //放置下拉列表框和控制按鈕面板

JPanel pane_day = new JPanel(); //放置日期面板

JPanel pane_parent = new JPanel(); //放置以上兩個面板

//定義方法繪制面板

?

public CalenderTrain() {

super("JAVA日歷程序"); //設(shè)定面板標(biāo)題

//---以下幾行使得關(guān)閉面板時退出程序

setDefaultCloseOperation(DISPOSE_ON_CLOSE);

addWindowListener(new WindowAdapter() {

public void windowClose(WindowEvent e) {

//System.out.print("CLOSING THE WIN");

?

System.exit(0);

}

});

?

setResizable(false); //面板的大小不能變化

//設(shè)定年月

/*年份的區(qū)間是當(dāng)前年份的過去10年到當(dāng)前年份的未來20年

* 月份正常1-12月

*/

for (int i = now_year - 10; i <= now_year + 20; i++) {

Year.addItem(i + "");

}

for (int i = 1; i < 13; i++) {

Month.addItem(i + "");

}

Year.setSelectedIndex(10); //設(shè)定年份下拉列表為當(dāng)前年份

//Year.setText()

pane_ym.add(Year_l); //添加年份標(biāo)簽

pane_ym.add(Year); //添加年份下拉列表框

Month.setSelectedIndex(now_month); //設(shè)定月份下拉列表為當(dāng)前月份

pane_ym.add(Month_l); //添加月份標(biāo)簽

pane_ym.add(Month); //添加月份下拉列表框

pane_ym.add(button_jump); //添加跳轉(zhuǎn)按鈕

pane_ym.add(button_today); //添加“現(xiàn)在日期”按鈕

button_jump.addActionListener(this); //跳轉(zhuǎn)按鈕添加 監(jiān)聽事件

button_today.addActionListener(this); //“現(xiàn)在日期”按鈕添加 監(jiān)聽事件

//年月設(shè)定結(jié)束

//初始化日期按鈕并繪制

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

for (int i = 0; i < 49; i++) {

button_day[i] = new JButton(" ");

pane_day.add(button_day[i]);

}

this.setDay(); //調(diào)用setDay()方法

pane_parent.setLayout(new BorderLayout()); //設(shè)定布局管理器

setContentPane(pane_day);

setContentPane(pane_ym);

pane_parent.add(pane_day, BorderLayout.SOUTH);

pane_parent.add(pane_ym, BorderLayout.NORTH);

setContentPane(pane_parent);

pack();

show();

}

?

//SET DAY 方法,顯示日期

void setDay() {

if (bool) {

year_int = now_year + "";

month_int = now_month;

} else {

year_int = Year.getSelectedItem().toString();

month_int = Month.getSelectedIndex();

??? //year_int=Year.getText();

??? //month_int=Integer.parseInt(Month.getText());

}

?

int year_sel = Integer.parseInt(year_int) - 1900; //獲得年份值

Date dt = new Date(year_sel, month_int, 1); //構(gòu)造一個日期

GregorianCalendar cal = new GregorianCalendar(); //創(chuàng)建一個Calendar實例

cal.setTime(dt);

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

int day = 0; //day中存放某個月份的天數(shù)

int day_week = 0; //用來存放某個月的第一天是星期幾的數(shù)值

//--將星期添加到前7個按鈕中

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

button_day[i].setText(week[i]);

}

//--

/*判斷是幾月份,根據(jù)它來設(shè)定day的值

* 其中二月份要判斷是否是閏年

*/

if (month_int == 0

|| month_int == 2

|| month_int == 4

|| month_int == 6

|| month_int == 7

|| month_int == 9

|| month_int == 11) {

day = 31;

} else if (

month_int == 3

|| month_int == 5

|| month_int == 8

|| month_int == 10) {

day = 30;

} else {

if (cal.isLeapYear(year_sel)) {

day = 29;

} else {

day = 28;

}

}

day_week = 7 + dt.getDay();

int count = 1;

/*繪制按鈕

*首先要根據(jù)選定的月份的第一天是星期幾來確定我們繪制按鈕的起始位置

* 其中day_week就是我們要繪制的起始位置

* 對于那些沒有數(shù)值可以顯示的按鈕要置空

*/

for (int i = day_week; i < day_week + day; count++, i++) {

if (i % 7 == 0

|| i == 13

|| i == 20

|| i == 27

|| i == 48

|| i == 34

|| i == 41) {

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 + "");

}

}

}

?

?

//--對于沒有日期數(shù)值顯示的按鈕進行置空處理

if (day_week == 0) {

for (int i = day; i < 49; i++) {

button_day[i].setText(" ");

}

} else {

//第一天前面的按鈕置空

for (int i = 7; i < day_week; i++) {

button_day[i].setText(" ");

} //最后一天后面的按鈕置空

for (int i = day_week + day; i < 49; i++) {

button_day[i].setText(" ");

}

}

}

?

?

//點擊按鈕產(chǎn)生的效果

public void actionPerformed(ActionEvent e) {

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

bool = false;

this.setDay(); //如果點擊跳轉(zhuǎn)按鈕就調(diào)用setDay()方法重新繪制按鈕

?

} else if (e.getSource() == button_today) {

bool = true;

this.setDay(); //如果點擊現(xiàn)在日期按鈕,得到今天的日期

Month.setSelectedIndex(now_month);//將月份置為當(dāng)前月份

Year.setSelectedIndex(10); //將年份置為當(dāng)前年份

?

}

}

public static void main(String[] args) {

??? CalenderTrain ct = new CalenderTrain();

}

}

?

}

?五、測試結(jié)果

?

六.問題及心得:

在本次實踐中,代碼編寫經(jīng)常出現(xiàn)錯誤,運行了好幾次才成功,通過結(jié)對,我學(xué)會了和隊員進行合作,容易提高效率和找到自己的錯誤并改正。

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/yanyuranqiu/p/4501749.html

總結(jié)

以上是生活随笔為你收集整理的实践作业三 结对项目的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。