欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    实验三图形用户界面设计汽院含问题详解.docx

    • 资源ID:15060801       资源大小:102.21KB        全文页数:23页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    实验三图形用户界面设计汽院含问题详解.docx

    1、实验三 图形用户界面设计汽院含问题详解实验三 图形用户界面设计实验目的1 掌握Java语言中GUI编程的基本方法2 掌握Java语言中AWT组件的基本用法3 掌握Java语言中Swing组件的基本用法实验导读1. 通过图形用户界面(GUI:Graphics User Interface),用户和程序之间可以方便地进行交互。AWT(Abstract Windowing Toolkit),中文译为抽象窗口工具包,是Java提供的用来建立和设置Java的图形用户界面的基本工具。AWT由Java中的java.awt包提供,里面包含了许多可用来建立与平台无关的图形用户界面(GUI)的类,这些类又被称为组

    2、件(components)。Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。 JDK写程序 所有功能都是靠虚拟机去操作本地操作系统。比如window下,就是JDK用windows API实现功能。而awt包中很多组件是组件自身去调用本地操作系统代码swing包中的组件 采用的是调用本地虚拟机方法,由虚拟机再调用本地操作系统代码。意思就是中间多了一层,这样就加强了swing包的移植性,与本地关系不那强了

    3、。图3.1 AWT常用组件继承关系图Container为容器,是一个特殊的组件,该组件中可以通过add方法添加其他组件进来。2. 布局,容器中的组件的排放方式。常见的布局管理器:FlowLayout(流式布局管理器):从左到右的顺序排列。Panel默认的布局管理器。BorderLayout(边界布局管理器):东,南,西,北,中。Frame默认的布局管理器。GridLayout(网格布局管理器):规则的矩阵CardLayout(卡片布局管理器):选项卡GridBagLayout(网格包布局管理器):非规则的矩阵3. 类JFrame是java.awt.Frame 的扩展版本,该版本添加了对 JFC

    4、/Swing 组件架构的支持,常用方法如下:1) JFrame() 该构造方法可以创建一个无标题的窗口,窗口的默认布局为BorderLayout布局。2) JFrame(String s) 该构造方法可以创建一个标题为s的窗口,窗口的默认布局为BorderLayout布局。3) public void setBounds(int a,int b,int width,int height) 窗口调用该方法可以设置出现在屏幕上时的初始位置是(a,b),即距屏幕左面a个像素、距屏幕上方b个像素;窗口的宽是width,高是height。4) public void setSize(int width,

    5、int height) 设置窗口的大小,窗口在屏幕出现是默认位置是(0,0)。5) public void setVisible(boolean b) 设置窗口是可见还是不可见,窗口默认是不可见的。6) public void setResizable(boolean b) 设置窗口是否可调整大小,窗口默认是可调整大小的。7) public void setDefaultCloseOperation(int operation) 设置用户在此窗体上发起 close 时默认执行的操作。8) public void setLocationRelativeTo(Component c) 设置窗口相对

    6、于指定组件的位置。 如果组件当前未显示,或者 c 为 null,则此窗口将置于屏幕的中央。实验容1. 图形用户界面设计程序(ArtFont.java)要求:设计一个文字字体设置窗体,在该窗体中可以设置要显示文字的字体容,包括字体名称、字体大小、粗体和斜体等字体风格。并模拟在不同操作系统下的显示效果。程序的最终显示效果如下:提示:整个窗体继承于JFrame,采用BorderLayout布局。在窗体中添加三个JPanel:northPanel、centerPanel和southPanel,分别位于窗体的北部、中部和南部,然后分别在各个面板中添加其它组件,并逐步完善程序功能。请按以下步骤完成程序设计

    7、:1) 新建ArtFont类,该类用于显示主界面。其主要代码如下:public class ArtFont extends JFrame JComboBox fontType;/字体样式下拉框, JComboBox fontSize;/字体大小下拉框 JComboBox windowStyle;/窗体样式下拉框 JCheckBox boldBx;/ 粗体按钮 JCheckBox italicBx;/ 斜体按钮 JButton colorBtn;/ 颜色按钮; String fontNames;/ 字体名称; String fontSizes;/ 字体大小; JLabel label;/ 输入提

    8、示标签; JTextField inputText;/ 文字输入框; JTextArea txtArea;/ 文字显示区; JPanel northPanel;/ 字体设置; JPanel centerPanel;/ 显示效果区 JPanel southPanel;/样式设置 Font font; int boldStyle, italicStyle, underlineStyle; int fontSizeStyle; String fontNameStyle; Color colorStyle = Color.black;/ 设置字体的默认颜色为黑色; String style = 默认显

    9、示效果, Windows显示效果, Unix显示效果 ; public ArtFont() super(字体设置); / 设置默认字体 boldStyle = 0; italicStyle = 0; underlineStyle = 0; fontSizeStyle = 10; fontNameStyle = 宋体; font = new Font(fontNameStyle, boldStyle + italicStyle, fontSizeStyle); northPanel = getNorthPanel(); centerPanel = getCenterPanel(); southP

    10、anel = getSouthPanel(); / 设置容器; Container container = getContentPane(); container.setLayout(new BorderLayout(); 【补充代码】/将northPanel添加到窗体的北部 【补充代码】/将centerPanel添加到窗体的北部 【补充代码】/将southPanel添加到窗体的北部 setSize(500, 300); 【补充代码】/将窗体位于屏幕的中央 setVisible(true); private JPanel getNorthPanel() JPanel panel = new J

    11、Panel(); return panel; private JPanel getCenterPanel() JPanel panel = new JPanel(); return panel; private JPanel getSouthPanel() JPanel panel = new JPanel(); return panel; public static void main(String args) ArtFont artFont = new ArtFont(); artFont.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 2)

    12、 根据ArtFont类代码和程序界面图设计北部面板northPanel: private JPanel getNorthPanel() JPanel panel = new JPanel(); 【补充代码】 return panel; 3) 根据ArtFont类代码和程序界面图设计中部面板centerPanel: private JPanel getCenterPanel() JPanel panel = new JPanel(); 【补充代码】 return panel; 4) 根据ArtFont类代码和程序界面图设计南部面板southPanel: private JPanel getSou

    13、thPanel() JPanel 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 = Integ

    14、er.toString(i+10); 【补充代码】 return panel; 5) 调试、编译和运行程序,并显示正确界面。答案:import javax.swing.*;import java.awt.*;public class ArtFont extends JFrame JComboBox fontType;/字体样式下拉框, JComboBox fontSize;/字体大小下拉框 JComboBox windowStyle;/窗体样式下拉框 JCheckBox boldBx;/ 粗体按钮 JCheckBox italicBx;/ 斜体按钮 JButton colorBtn;/ 颜色按

    15、钮; String fontNames;/ 字体名称; String fontSizes;/ 字体大小; JLabel label;/ 输入提示标签; JTextField inputText;/ 文字输入框; JTextArea txtArea;/ 文字显示区; JPanel northPanel;/ 字体设置; JPanel centerPanel;/ 显示效果区 JPanel southPanel;/样式设置 Font font; int boldStyle, italicStyle, underlineStyle; int fontSizeStyle; String fontNameS

    16、tyle; Color colorStyle = Color.black;/ 设置字体的默认颜色为黑色; String style = 默认显示效果, Windows显示效果, Unix显示效果 ; public ArtFont() super(字体设置); / 设置默认字体 boldStyle = 0; italicStyle = 0; underlineStyle = 0; fontSizeStyle = 10; fontNameStyle = 宋体; font = new Font(fontNameStyle, boldStyle + italicStyle, fontSizeStyle

    17、); northPanel = getNorthPanel(); centerPanel = getCenterPanel(); southPanel = getSouthPanel(); / 设置容器; Container container = getContentPane(); container.setLayout(new BorderLayout(); container.add(northPanel,BorderLayout.NORTH); /【补充代码】/将northPanel添加到窗体的北部 container.add(centerPanel,BorderLayout.CENT

    18、ER); /【补充代码】/将centerPanel添加到窗体的北部 container.add(southPanel,BorderLayout.SOUTH); /【补充代码】/将southPanel添加到窗体的北部 setSize(500, 300); /【补充代码】/将窗体位于屏幕的中央 setLocationRelativeTo(null); setVisible(true); private JPanel getNorthPanel() JPanel panel = new JPanel(); label = new JLabel(输入,JLabel.LEFT); / 设置输入提示标签

    19、panel.add(label); / 设置文本输入框; inputText=new JTextField(10); panel.add(inputText); / inputText.addActionListener(this); boldBx=new JCheckBox(粗体); panel.add(boldBx); italicBx=new JCheckBox(斜体); panel.add(italicBx); colorBtn=new JButton(颜色); panel.add(colorBtn); return panel; private JPanel getCenterPan

    20、el() JPanel panel = new JPanel(); panel.setLayout(new BorderLayout(); txtArea=new JTextArea(); panel.add(txtArea,BorderLayout.CENTER); return panel; private JPanel getSouthPanel() JPanel panel = new JPanel(); GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment(); fontNames=ge.getA

    21、vailableFontFamilyNames();/ 获得系统中所有字体的名字; fontType=new JComboBox(fontNames); fontType.setEditable(false); fontType.setMaximumRowCount(10); panel.add(fontType); fontSizes=new String63; for(int i=0;i63;i+) fontSizesi=Integer.toString(i+10); fontSize=new JComboBox(fontSizes); fontSize.setEditable(false

    22、); fontSize.setMaximumRowCount(10); panel.add(fontSize); windowStyle = new JComboBox(style); panel.add(windowStyle); return panel; public static void main(String args) ArtFont artFont = new ArtFont(); artFont.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 2. 日历应用程序设计编写一个应用程序,设计一个窗体,该窗体为BorderLayout

    23、布局。窗体的中心添加一个Panel容器:Panel容器的布局是7行7列的GridLayout布局,Panel容器中放置49个标签,用来显示日历。窗口的北面添加一个Panel容器,其布局是FlowLayout布局,Panel容器中放置两个按钮:nextMonth和previousMonth。窗口的南面添加一个Panel容器,其布局是FlowLayout,Panel容器中放置一个标签用来显示一些信息。请按以下步骤完成程序设计:1) 编写CalendarBean类,实现日期类:public class CalendarBean String day; int year = 2013, month =

    24、 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; /返回某年某月1号开始的日期数组 public String getCalendar() String a = new String42; Calendar 日历 = Calendar.getInstance(); /注意:1月份是从0开始,所以要减1

    25、 日历.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) & (year % 100 != 0)

    26、| (year % 400 = 0) day = 29; else day = 28; for (int i = 星期几, n = 1; i 星期几 + day; i+) ai = String.valueOf(n); n+; return a; 2) 补充代码,完成日历窗体界面类设计:public class CalendarFrame extends Frame Label labelDay = new Label42; Label labelYear; Button titleName = new Button7; Button nextMonth, previousMonth; Lab

    27、el showMessage; 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

    28、ScrollPane(); scrollPane.add(getCenterPanel(); 【补充代码】/ 窗口添加scrollPane在中心区域 【补充代码】/ 窗口添加pNorth 在北面区域 【补充代码】/ 窗口添加pSouth 在南区域。 private Panel getNorthPanel() Panel panel = new Panel(); 【补充代码】 return panel; private Panel getCenterPanel() Panel panel = new Panel(); 【补充代码】/ 将panel的布局设置为7行7列的GridLayout布局 f

    29、or (int i = 0; i 7; i+) titleNamei = new Button(namei); 【补充代码】/ panel添加组件titleNamei。 for (int i = 0; i 42; i+) labelDayi = new Label(, Label.CENTER); 【补充代码】/ panel添加组件labelDayi。 for (int i = 0; i 42; i+) labelDayi.setText(daysi); return panel; private Panel getSouthPanel() Panel panel = new Panel();


    注意事项

    本文(实验三图形用户界面设计汽院含问题详解.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开