java实验 JAVA Swing 图形用户界面和对话框(2)

2019-03-16 11:03

public class CalendarFrame extends JFrame implements ActionListener{ /** * */

private static final long serialVersionUID = -4568452730166791416L;

JLabel labelDay[]=new JLabel[42]; JButton titleName[]=new JButton[7];

String name[]={\日\,\一\,\二\,\三\,\四\,\五\,\六\}; JButton nextMonth,previousMonth; CalendarBean calendar;

JLabel showMessage=new JLabel(\,JLabel.CENTER); int year=2011,month=2; public CalendarFrame() {

// TODO 自动生成的构造函数存根 JPanel pCenter=new JPanel();

pCenter.setLayout(new GridLayout(7,7)); for(int i=0;i<7;i++){

titleName[i]=new JButton(name[i]); titleName[i].setBorder(new SoftBevelBorder(BevelBorder.RAISED)); pCenter.add(titleName[i]); }

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

labelDay[i]=new JLabel(\,JLabel.CENTER); labelDay[i].setBorder(new SoftBevelBorder(BevelBorder.LOWERED)); pCenter.add(labelDay[i]); }

calendar=new CalendarBean(); nextMonth=new JButton(\下月\);

previousMonth=new JButton(\上月\); nextMonth.addActionListener(this);

previousMonth.addActionListener(this); JPanel pNorth=new JPanel(), pSouth=new JPanel(); pNorth.add(previousMonth); pNorth.add(nextMonth); pSouth.add(showMessage);

add(pCenter, BorderLayout.CENTER); add(pNorth,BorderLayout.NORTH); add(pSouth,BorderLayout.SOUTH); setYearAndMonth(year,month);

6

setDefaultCloseOperation(DISPOSE_ON_CLOSE); }

public void setYearAndMonth(int year2, int month2) { // TODO 自动生成的方法存根 calendar.setyear(year2); calendar.setMonth(month2);

String day[]=calendar.getCalender(); for(int i=0;i<42;i++){

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

showMessage.setText(\日历\+calendar.getYear()+\年\+calendar.getMonth()+\月\); }

@Override

public void actionPerformed(ActionEvent e) { // TODO 自动生成的方法存根 if(e.getSource()==nextMonth){ month=month+1; if(month>12) month=1;

calendar.setMonth(month);

String day[]=calendar.getCalender(); 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.getCalender(); for(int i=0;i<42;i++)

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

showMessage.setText(\日历\+calendar.getYear()+\年\+calendar.getMonth()+\月\); } }

package 布局与日历;

import java.util.Calendar;

public class CalendarBean {

7

String day[];

int year=2005,month=0;

public void setyear(int year) { // TODO 自动生成的方法存根 this.year=year; }

public int getYear() {

// TODO 自动生成的方法存根 return year; }

public void setMonth(int month) { // TODO 自动生成的方法存根 this.month=month; }

public int getMonth() {

// TODO 自动生成的方法存根 return month; }

public String[] getCalender() { // TODO 自动生成的方法存根 String a[]=new String[42];

Calendar 日历=Calendar.getInstance(); 日历.set(year,month-1,1);

int 星期几=日历.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||month==10) day=30;

if(month==2){

if((year%4==0)&&(year0!=0)||year@0==0) day=29; else

day=28; }

for(int i=星期几,n=1;i<星期几+day;i++){ a[i]=String.valueOf(n); n++; }

return a; }

8

}

3.实验结果

4.课后练习:

在CalenderFrame类中增加一个JTextField文本框,用户可以通过在文本框中输入年份来修改calender对象的int成员。 (三)实验题目三: 华容道

1.要点分析:编写GUI程序,用户通过键盘和鼠标时间来实现曹操、关羽等人物的移动。 2.程序源代码:

package 华容道;

public class MainClass {

public static void main(String args[]){ new Hua_Rong_Dao(); } }

package 华容道;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class Person extends JButton implements FocusListener{ int number;

9

Color c=new Color(255,245,170);

Font font=new Font(\宋体\,Font.BOLD,12); Person(int number,String s){ super(s);

setBackground(c); setFont(font);

this.number=number; c=getBackground();

addFocusListener(this); }

public void focusGained(FocusEvent e) { // TODO Auto-generated method stub setBackground(Color.red); }

public void focusLost(FocusEvent e) { // TODO Auto-generated method stub setBackground(c); } }

package 华容道;

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

public class Hua_Rong_Dao extends JFrame implements MouseListener,KeyListener,ActionListener {

Person person[]=new Person[10]; JButton left,rigth,above,below;

JButton restart=new JButton(\重新开始\); public Hua_Rong_Dao(){ init();

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setBounds(100,100,320,500); setVisible(true); validate(); }

public void init(){ setLayout(null); add(restart);

restart.setBounds(100,320,120,35);

10


java实验 JAVA Swing 图形用户界面和对话框(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《软件工程》实验指导书(实验一)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: