else if(str.equals(\
String answer=textResult.getText(); try{ int result=Integer.parseInt(answer); if(operator.equals(\
if(result==numberOne+numberTwo) message.setText(\你回答正确\ else
message.setText(\你回答错误\ }
else if(operator.equals(\
if(result==numberOne-numberTwo) message.setText(\你回答正确\ else
message.setText(\你回答错误\ } }
catch(NumberFormatException ex) { message.setText(\请输入数字字符\ } } }
public void setJTextField(JTextField ... t) { textOne=t[0]; textTwo=t[1]; textResult=t[2]; }
public void setJLabel(JLabel ...label) { operatorLabel=label[0]; message=label[1]; } }
实验内容要求:将【代码】部分替换为java程序代码。
实验报告要求:要有实验名称,实验目的,实验要求,实验内容(源代码),运行结果和总结。
实验2布局与日历
实验教学目标: 掌握使用布局类。 实验场地或主要设备与器材:计算机
实验要求: 编写一个程序,有一个窗口,该窗口的布局为BorderLayOut布局。窗口的中心添加一个JPanel容器pCenter,pCenter的布局设置为7行7列的GridLayout 布局,pCenter中放置49个标签用来显示日历。窗口的北面添加一个JPanel容器pNorth,其布局为FlowLayOut布局,pNorth放置两个按钮,nextMonth和 previousMonth,单击nextMonth显示当前月的下一个月,单击previousMonth显示当前月的上一个月。窗口的南面添加一个JPanel容器pSouth,其布局为FlowLayOut布局,pSouth中放置一个标签用来显示一些信息。
实验内容: CalendarMainClass.java
public class CalendarMainClass { public static void main(String args[]) {
CalendarFrame frame=new CalendarFrame(); frame.setBounds(100,100,360,300); frame.setVisible(true);
frame.setYearAndMonth(2015,5); } }
CalendarBean.java
import java.util.Calendar; public class CalendarBean { String day[]; int year=2005,month=0; public void setYear(int year) { this.year=year; }
public int getYear() { return year; }
public void setMonth(int month) { this.month=month; }
public int getMonth() { return month; }
public String[] getCalendar() { 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) 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; } }
CalendarFrame.java
import java.util.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*;
public class CalendarFrame extends JFrame implements ActionListener { JLabel labelDay[]=new JLabel[42]; JButton titleName[]=new JButton[7];
String name[]={\日\一\二\三\四\五\六\ JButton nextMonth,previousMonth; CalendarBean calendar;
JLabel showMessage=new JLabel(\ int year=2011,month=2; public CalendarFrame() { JPanel pCenter=new JPanel();
pCentersetLayout(new GridLayout(7,7)); //将pCenter的布局设置为7行7列的GridLayout 布局。
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(\
labelDay[i].setBorder(new SoftBevelBorder(BevelBorder.LOWERED)); 【代码2】//pCenter添加组件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); 【代码3】 // 窗口添加pNorth 在北面区域 【代码4】 // 窗口添加pSouth 在南区域。 setYearAndMonth(year,month);
setDefaultCloseOperation(DISPOSE_ON_CLOSE); }
public void setYearAndMonth(int y,int m) { calendar.setYear(y); calendar.setMonth(m);
String day[]=calendar.getCalendar(); for(int i=0;i<42;i++)
labelDay[i].setText(day[i]);
showMessage.setText(\日历:\年\月\ }
public void actionPerformed(ActionEvent e) { if(e.getSource()==nextMonth) { month=month+1; if(month>12) month=1;
calendar.setMonth(month); String day[]=calendar.getCalendar(); 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.getCalendar(); for(int i=0;i<42;i++)
labelDay[i].setText(day[i]); }
showMessage.setText(\日历:\年\月\ } }
实验内容要求:将【代码】部分替换为java程序代码。
实验报告要求:要有实验名称,实验目的,实验要求,实验内容(源代码),运行结果和总结。
实验3华容道
实验教学目标: 学习焦点、鼠标和键盘事件。 实验场地或主要设备与器材:计算机
实验要求: 编写GUI程序,用户通过键盘和鼠标事件来实现曹操和光羽等人物的移动。
实验内容: MainClass.java
public class MainClass {
public static void main(String args[]) { new Hua_Rong_Road(); } }
Hua_Rong_Road.java
import java.awt.*; import javax.swing.*; import java.awt.event.*;
public class Hua_Rong_Road extends JFrame implements MouseListener,KeyListener,ActionListener {
Person person[]=new Person[10]; JButton left,right,above,below; JButton restart=new JButton(\重新开始\ public Hua_Rong_Road() { 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); restart.addActionListener(this);
String name[]={\曹操\关羽\张\刘\周\黄\兵\兵\兵\兵\ for(int k=0;k person[0].setBounds(104,54,100,100); person[1].setBounds(104,154,100,50); person[2].setBounds(54, 154,50,100); person[3].setBounds(204,154,50,100); person[4].setBounds(54, 54, 50,100); person[5].setBounds(204, 54, 50,100); person[6].setBounds(54,254,50,50); person[7].setBounds(204,254,50,50); person[8].setBounds(104,204,50,50); person[9].setBounds(154,204,50,50); person[9].requestFocus(); left=new JButton(); right=new JButton(); above=new JButton(); below=new JButton(); add(left); add(right); add(above); add(below); left.setBounds(49,49,5,260); right.setBounds(254,49,5,260); above.setBounds(49,49,210,5); below.setBounds(49,304,210,5); validate(); } public void keyTyped(KeyEvent e){} public void keyReleased(KeyEvent e){}