ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:18.85KB ,
资源ID:4456275      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4456275.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验五Java事件处理.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

实验五Java事件处理.docx

1、实验五 Java事件处理实验五 Java事件处理实验目的1掌握Java语言中的事件处理方法2掌握Java语言中事件源、监视器和处理事件的接口的概念实验内容1.图形用户界面设计程序(ArtFont.java)在实验三第1题的基础上,添加事件处理机制,并逐步完善程序功能。分别用ArtFont类的对象做监视器和匿名内部类的对象做监视器实现。要求实现如下功能: 当在文本框中输入文字后回车,在文本域中显示输入的文字。 当分别选择粗体和斜体复选框时,文本域中的文字分别显示粗体和斜体样式。 当点击颜色按钮时,出现颜色选择对话框,选择需要的颜色,按确定按钮后,按钮的前景色和文本域的前景色设置为选定的颜色。 当

2、选择字体样式下拉框中的某一字体样式时,文本域中的文字设置为指定的字体样式。 当选择字体大小下拉框中的某一字体大小时,文本域中的文字设置为指定的字体大小。 当选择窗体样式下拉框中的某一窗体效果时,窗体外观改变为指定的窗体外观。图1 程序界面运行效果package Sy;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class ArtFont extends JFrame static ArtFont artFont; JComboBox fontType;/字体样式下拉框 JComboBox fontS

3、ize;/字体大小下拉框 JComboBox windowStyle;/窗体样式下拉框 JCheckBox boldBx;/ 粗体按钮 JCheckBox italicBx;/ 斜体按钮 JButton colorBtn;/ 颜色按钮 String fontNames;/ 字体名称 String fontSizes;/ 字体大小 JLabel label;/ 输入提示标签 JTextField inputText;/ 文字输入框 JTextArea txtArea;/ 文字显示区 JPanel northPanel;/ 字体设置 JPanel centerPanel;/ 显示效果区 JPane

4、l southPanel;/样式设置 Font font; int boldStyle, italicStyle; int fontSizeStyle; String fontNameStyle; Color colorStyle = Color.black;/ 设置字体的默认颜色为黑色 String style = 默认显示效果, Windows显示效果, Unix显示效果 ; public ArtFont() super(字体设置); / 设置默认字体 boldStyle = 0; italicStyle = 0; fontSizeStyle = 10; fontNameStyle = 宋

5、体; font = new Font(fontNameStyle, boldStyle + italicStyle, fontSizeStyle); northPanel = getNorthPanel(); centerPanel = getCenterPanel(); southPanel = getSouthPanel(); / 设置容器 Container container = getContentPane(); container.setLayout(new BorderLayout(); add(northPanel , BorderLayout.NORTH);/将northPa

6、nel添加到窗体的北部 add(centerPanel , BorderLayout.CENTER);/将centerPanel添加到窗体的中部 add(southPanel , BorderLayout.SOUTH);/将southPanel添加到窗体的南部 setSize(500, 300); setLocationRelativeTo(null);/将窗体位于屏幕的中央 setVisible(true); private JPanel getNorthPanel() JPanel panel = new JPanel(); label = new JLabel(输入); inputTex

7、t = new JTextField(10); boldBx = new JCheckBox(粗体); italicBx = new JCheckBox(斜体); colorBtn = new JButton(颜色); inputText.addActionListener(new ActionListener() Override public void actionPerformed(ActionEvent e) / 文本输入 txtArea.setText(inputText.getText(); ); boldBx.addItemListener(new ItemListener()

8、Override public void itemStateChanged(ItemEvent e) / 加粗 if(e.getStateChange() = ItemEvent.SELECTED) boldStyle = 1; else boldStyle = 0; font = new Font(fontNameStyle, boldStyle + italicStyle, fontSizeStyle); txtArea.setFont(font); ); italicBx.addItemListener(new ItemListener() Override public void it

9、emStateChanged(ItemEvent e) / 斜体 if(e.getStateChange() = ItemEvent.SELECTED) italicStyle = 1; else italicStyle = 0; font = new Font(fontNameStyle, boldStyle + italicStyle, fontSizeStyle); txtArea.setFont(font); ); colorBtn.addActionListener(new ActionListener() Override public void actionPerformed(A

10、ctionEvent e) / 改变颜色 colorStyle = JColorChooser.showDialog(null, 请选择一种颜色, colorStyle); colorBtn.setForeground(colorStyle); txtArea.setForeground(colorStyle); font = new Font(fontNameStyle, boldStyle + italicStyle, fontSizeStyle); txtArea.setFont(font); ); panel.add(label); panel.add(inputText); pane

11、l.add(boldBx); panel.add(italicBx); panel.add(colorBtn); return panel; private JPanel getCenterPanel() JPanel panel = new JPanel(); panel.setLayout(new BorderLayout(); txtArea = new JTextArea(); panel.add(new JScrollPane(txtArea) , BorderLayout.CENTER); return panel; private JPanel getSouthPanel() J

12、Panel panel = new JPanel(); /获得系统默认字体 GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); fontNames = ge.getAvailableFontFamilyNames(); fontType = new JComboBox(fontNames); /设置字体大小 fontSizes = new String63; for (int i = 0; i fontSizes.length; i+) fontSizesi = Integer.toString

13、(i+10); fontSize = new JComboBox(fontSizes); windowStyle = new JComboBox(style); fontType.addItemListener(new ItemListener() Override public void itemStateChanged(ItemEvent e) / 字体的类型 fontNameStyle = (String) e.getItem(); font = new Font(fontNameStyle, boldStyle + italicStyle, fontSizeStyle); txtAre

14、a.setFont(font); ); fontSize.addItemListener(new ItemListener() Override public void itemStateChanged(ItemEvent e) / 字体的大小 String s = (String) e.getItem(); fontSizeStyle = Integer.parseInt(s); font = new Font(fontNameStyle, boldStyle + italicStyle, fontSizeStyle); txtArea.setFont(font); ); windowSty

15、le.addItemListener(new ItemListener() Override public void itemStateChanged(ItemEvent e) / 改变窗口 String s = (String) e.getItem(); String className = ; if (s.equals(Windows显示效果) className = com.sun.java.swing.plaf.windows.WindowsLookAndFeel; else if (s.equals(Unix显示效果) className = com.sun.java.swing.p

16、laf.motif.MotifLookAndFeel; else if (s.equals(默认显示效果) className = UIManager.getCrossPlatformLookAndFeelClassName(); try UIManager.setLookAndFeel(className); SwingUtilities.updateComponentTreeUI(artFont); catch (Exception de) System.out.println(Exception happened!); ); panel.add(fontType); panel.add(

17、fontSize); panel.add(windowStyle); return panel; public static void main(String args) artFont = new ArtFont(); artFont.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 2.日历应用程序设计在实验三第2题的基础上,添加事件处理机制,并逐步完善程序功能。分别用CalendarFrame类的对象做监视器和匿名内部类的对象做监视器实现。要求实现如下功能: 在文本框inputYear中输入年份,验证年份的有效性;按回车键后,显示输入年份的正

18、确日历 单击previousMonth按钮可以显示当前月的上一月的日历;如果月份小于1,则显示上一年的12月 单击nextMonth按钮,可以显示当前月的下一月的日历;如果月份大于1,则显示下一年的1月CalendarBean.javapackage Sy;import java.util.Calendar;public class CalendarBean String day; int year = 2013, month = 0; public void setYear(int year) this.year = year; public int getYear() return yea

19、r; public void setMonth(int month) this.month = month; public int getMonth() return month; /返回某年某月1号开始的日期数组 public String getCalendar() String a = new String42; Calendar 日历 = Calendar.getInstance(); /注意:1月份是从0开始,所以要减1 日历.set(year, month - 1, 1); int 星期几 = 日历.get(Calendar.DAY_OF_WEEK) - 1; int day =

20、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) & (year % 100 != 0) | (year % 400 = 0) day = 29; else day = 28; for (int i = 星期几, n = 1; i 星期几 + day; i

21、+) ai = String.valueOf(n); n+; return a; CalendarFrame.javapackage Sy;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class CalendarFrame extends Frame Label labelDay = new Label42; Label labelYear; Button titleName = new Button7; Button nextMonth, previousMonth; Label showMess

22、age; TextField inputYear; CalendarBean calendar; String name = 日, 一, 二, 三, 四, 五, 六 ; int year = 2013, month = 1; String days; public CalendarFrame() calendar = new CalendarBean(); calendar.setYear(year); calendar.setMonth(month); days = calendar.getCalendar(); ScrollPane scrollPane = new ScrollPane(

23、); scrollPane.add(getCenterPanel(); add(scrollPane, BorderLayout.CENTER);/ 窗口添加scrollPane在中心区域 add(getNorthPanel(), BorderLayout.NORTH);/ 窗口添加pNorth 在北面区域 add(getSouthPanel(), BorderLayout.SOUTH);/ 窗口添加pSouth 在南区域。 private Panel getNorthPanel() Panel panel = new Panel(); labelYear = new Label(请输入年份:

24、); inputYear = new TextField(10); previousMonth = new Button(上月); nextMonth = new Button(下月); inputYear.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) / 文本输入 try year = Integer.parseInt(inputYear.getText(); catch (NumberFormatException e1) JOptionPane.showMessageDi

25、alog(null, 您输入的年份有误,请重新输入!); inputYear.setFocusable(true); calendar.setYear(year); calendar.setMonth(month); days = calendar.getCalendar(); for (int i = 0; i 42; i+) labelDayi.setText(daysi); showMessage.setText(日历: + calendar.getYear() + 年 + calendar.getMonth() + 月); ); previousMonth.addActionListe

26、ner(new ActionListener() public void actionPerformed(ActionEvent e) /上月按钮 month-; if(month 1) year-; month=1; calendar.setYear(year); calendar.setMonth(month); days = calendar.getCalendar(); for (int i = 0; i 12) year+; month=1; calendar.setYear(year); calendar.setMonth(month); days = calendar.getCa

27、lendar(); for (int i = 0; i 42; i+) labelDayi.setText(daysi); showMessage.setText(日历: + calendar.getYear() + 年 + calendar.getMonth() + 月); ); panel.add(labelYear); panel.add(inputYear); panel.add(previousMonth); panel.add(nextMonth); return panel; private Panel getCenterPanel() Panel panel = new Panel(); panel.setLayout(new GridLayout(7, 7); / 将panel的布局设置为7行7列的GridLayout布局 for

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1