实验项目3 组件与事件处理第2部分

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验项目3 第2部分

组件与事件处理(2)

[实验目的]

1、进一步掌握java组件及事件编程的各种方法。

2、掌握对话框的编制和事件处理方法。

3、掌握鼠标焦点事件、鼠标事件及键盘事件的处理方法。

4、掌握Swing组件及事件编程方法。

[实验要求]

1、复习理论教学中所学的内容。

2、认真进行实验预习,查阅参考书,书写源程序,书写实验预习报告。

3、认真总结实验并书写实验报告。

[实验课时] 2学时

[实验教学方式] 学生上机实验,教师随堂指导。

[实验内容]

1、字体对话框:请读懂下面模板代码,将其补充完整并调试运行。

//FontFamilyNames.java

import java.awt.GraphicsEnvironment;

public class FontFamilyNames

{ String fontName[];

public String [] getFontName()

{ GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment();

fontName=ge.getAvailableFontFamilyNames();

return fontName;

}

}

//FontDialog.java

import java.awt.event.*;

import java.awt.*;

import javax.swing.JLabel;

public class FontDialog extends Dialog implements ItemListener,ActionListener { FontFamilyNames fontFamilyNames;

int fontSize=38;

String fontName;

Choice fontNameList;

JLabel label;

Font font;

Button yes,cancel;

static int YES=1,NO=0;

int state=-1;

FontDialog(Frame f)

{ super(f);

fontFamilyNames=new FontFamilyNames();

【代码1】 //对话框设置为有模式

yes=new Button("Yes");

cancel=new Button("cancel");

yes.addActionListener(this);

cancel.addActionListener(this);

label=new JLabel("hello,奥运",JLabel.CENTER); fontNameList=new Choice();

String name[]=fontFamilyNames.getFontName();

for(int k=0;k

{ fontNameList.add(name[k]);

}

fontNameList.addItemListener(this);

add(fontNameList,BorderLayout.NORTH);

add(label,BorderLayout.CENTER);

Panel pSouth=new Panel();

pSouth.add(yes);

pSouth.add(cancel);

add(pSouth,BorderLayout.SOUTH);

setBounds(100,100,280,170);

addWindowListener(new WindowAdapter()

{ public void windowClosing(WindowEvent e) { state=NO;

setVisible(false);

}

}

);

validate();

}

public void itemStateChanged(ItemEvent e)

{ fontName=(String)fontNameList.getSelectedItem();

font=new Font(fontName,Font.BOLD,fontSize);

label.setFont(font);

label.repaint();

validate();

}

public void actionPerformed(ActionEvent e)

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

{ state=YES;

【代码2】 //对话框设置为不可见

}

else if(e.getSource()==cancel)

{ state=NO;

【代码3】 //对话框设置为不可见

}

}

public int getState()

{ return state;

}

public Font getFont()

{ return font;

}

}

// FrameHaveDialog.java

import java.awt.event.*;

import java.awt.*;

import javax.swing.JTextArea;

public class FrameHaveDialog extends Frame implements ActionListener

{ JTextArea text;

Button buttonFont;

FrameHaveDialog()

{ buttonFont=new Button("设置字体");

text=new JTextArea("Java 2实用教程(第三版)");

buttonFont.addActionListener(this);

add(buttonFont,BorderLayout.NORTH);

add(text);

setBounds(60,60,300,300);

setVisible(true);

validate();

addWindowListener(new WindowAdapter()

{ public void windowClosing(WindowEvent e)

{ System.exit(0);

}

}

);

}

public void actionPerformed(ActionEvent e)

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

{ FontDialog dialog=【代码4】 //创建对话框

【代码5】 //对话框设置为可见

【代码6】 //对话框设置设置标题为“字体对话框”

if(dialog.getState()==FontDialog.YES)

相关文档
最新文档