javashiyan8.docx
- 文档编号:26653044
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:13
- 大小:397.43KB
javashiyan8.docx
《javashiyan8.docx》由会员分享,可在线阅读,更多相关《javashiyan8.docx(13页珍藏版)》请在冰豆网上搜索。
javashiyan8
实验报告八
课程
JAVA语言程序设计
实验项目
图形用户界面设计
成绩
学号
1105030104
姓名
冯幸子
实验日期
2014.4.2
专业班级
网络计算2011级
指导教师
伍敏
一【实验目的】
(1)熟悉Swing和AWT中基本组件的用法
(2)掌握各种布局管理器的使用
(3)掌握菜单设计方式
(4)掌握事件处理
二【实验内容】
【项目一】完成实验指导书P100——10.2.1布局
提示:
源程序代码见附件LayoutExample.java,请完整程序,并编译运行
(1)程序代码(只要填空的部分)
【代码1】:
newFlowLayout();
【代码2】:
flow.setAlignment(FlowLayout.LEFT);
【代码3】:
flow.setVgap(4);
【代码4】:
flow.setHgap(10);
【代码5】:
flowLayoutPanel.setLayout(flow);
【代码6】:
flowLayoutPanel.add(b[1]);
【代码7】:
flowLayoutPanel.add(b[2]);
【代码8】:
flowLayoutPanel.add(b[3]);
【代码9】:
flowLayoutPanel.add(b[4]);
【代码10】:
flowLayoutPanel.add(b[5]);
【代码11】:
newGridLayout(2,3);
【代码12】:
grid.setVgap(4);
【代码13】:
grid.setHgap(5);
【代码14】:
gridLayoutPanel.setLayout(grid);
【代码15】:
gridLayoutPanel.add(b[6]);
【代码16】:
gridLayoutPanel.add(b[7]);
【代码17】:
gridLayoutPanel.add(b[8]);
【代码18】:
gridLayoutPanel.add(b[9]);
【代码19】:
gridLayoutPanel.add(b[10]);
【代码20】:
gridLayoutPanel.add(b[11]);
【代码21】:
newBorderLayout();
【代码22】:
border.setVgap(5);
【代码23】:
border.setHgap(7);
【代码24】:
borderLayoutPanel.setLayout(border);
【代码25】:
borderLayoutPanel.add(b[12],BorderLayout.SOUTH);
【代码26】:
borderLayoutPanel.add(b[13],BorderLayout.NORTH);
【代码27】:
borderLayoutPanel.add(text,BorderLayout.CENTER);
【代码28】:
borderLayoutPanel.add(b[14],BorderLayout.EAST);
【代码29】:
borderLayoutPanel.add(b[15],BorderLayout.WEST);
【代码30】:
boxLayoutPanel.add(b[16]);
【代码31】:
boxLayoutPanel.add(b[17]);
【代码32】:
boxLayoutPanel.add(b[18]);
【代码33】:
boxLayoutPanel.add(b[19]);
【代码34】:
boxLayoutPanel.add(b[20]);
【代码35】:
boxLayoutPanel.add(b[21]);
【代码36】:
nullLayoutPanel.setLayout(null);
【代码37】:
nullLayoutPanel.add(b[22]);
【代码38】:
nullLayoutPanel.add(b[23]);
【代码39】:
nullLayoutPanel.add(b[24]);
【代码40】:
nullLayoutPanel.add(b[25]);
【代码41】:
nullLayoutPanel.add(b[26]);
【代码42】:
b[22].setBounds(100,100,60,30);
【代码43】:
b[23].setBounds(130,120,60,30);
【代码44】:
b[24].setBounds(160,140,60,30);
【代码45】:
b[25].setBounds(190,160,60,30);
【代码46】:
b[26].setBounds(210,180,60,30);
【代码47】:
newJSplitPane(JSplitPane.VERTICAL_SPLIT,b[27],b[28]);
【代码48】:
newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,splitPaneOne,b[29]);
【代码49】:
layeredPane.add(b[30],JLayeredPane.DEFAULT_LAYER);
【代码50】layeredPane.add(b[31],JLayeredPane.PALETTE_LAYER);
【代码51】layeredPane.add(b[32],JLayeredPane.MODAL_LAYER);
【代码52】layeredPane.add(b[33],JLayeredPane.POPUP_LAYER);
【代码53】layeredPane.add(b[34],JLayeredPane.DRAG_LAYER);
(2)运行结果
【项目二】设计菜单
提示:
查见附件图片menuTest.jpg,按照图片上的样式设计菜单。
添加快捷键,如:
openItem.setAccelerator(KeyStroke.getKeyStroke("ctrlO"));
添加分隔符,如:
fileMenu.addSeparator();//分割符是添加到menu上的,该代码出现的位置决定了分割线的位置。
设置带图标的菜单项,如:
JMenuItemCutItem=newJMenuItem("Cut",newImageIcon("cut.gif"));
二级子菜单,如:
editMenu.add(optionMenu);
复选框菜单项,如:
readonlyItem=newJCheckBoxMenuItem("Read-only");
分组的单选按钮菜单项,如:
ButtonGroupgroup=newButtonGroup();
JRadioButtonMenuIteminsertItem=newJRadioButtonMenuItem("Insert");
insertItem.setSelected(true);
group.add(insertItem);
可查看JDK帮助文档获得更多帮助。
(1)程序代码
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassMenuTest{
publicstaticvoidmain(Stringargs[]){
Menumenu=newMenu();
menu.setTitle("MenuTest");
menu.setSize(150,170);
menu.setLocation(120,120);
menu.setVisible(true);
}
}
classMenuextendsJFrame{
JMenuBarmenubar;
JMenumenu1,menu2,menu3,menuOptions;
JMenuItemitem1,item2,item3,item4,item5,item6,item7,item8,item10,item11;
JCheckBoxMenuItemja1;
JRadioButtonMenuItemjb1,jb2;
Menu(){
menubar=newJMenuBar();
menu1=newJMenu("File");
menu2=newJMenu("Edit");
menu3=newJMenu("Help");
menuOptions=newJMenu("Options");
item1=newJMenuItem("New");
item2=newJMenuItem("Open");
item3=newJMenuItem("Save");
item4=newJMenuItem("SaveAs");
item5=newJMenuItem("Exit");
item6=newJMenuItem("Cut");
item7=newJMenuItem("Copy");
item8=newJMenuItem("Paste");
item10=newJMenuItem("Index");
item11=newJMenuItem("About");
ja1=newJCheckBoxMenuItem("Read-only");
item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
item3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
menubar.add(menu1);
menubar.add(menu2);
menubar.add(menu3);
menu1.add(item1);
menu1.add(item2);
menu1.addSeparator();
menu1.add(item3);
menu1.add(item4);
menu1.addSeparator();
menu1.add(item5);
menu1.addSeparator();
menu2.add(item6);
menu2.add(item7);
menu2.add(item8);
menu2.addSeparator();
menu2.add(menuOptions);
menu3.add(item10);
menu3.add(item11);
ButtonGroupmenuOptions=newButtonGroup();
jb1=newJRadioButtonMenuItem("Insert");
jb2=newJRadioButtonMenuItem("Overtybe");
jb1.setSelected(true);
jb2.setSelected(true);
menuOptions.add(ja1);
menuOptions.add(jb1);
menuOptions.add(jb2);
setJMenuBar(menubar);
validate();
}
}
(2)运行结果
【项目三】完成实验指导书P104——10.2.2猜数字
提示:
源程序代码见附件GuessExample.java,请完整程序,并编译运行
(1)程序代码(只要填空的部分)
【代码1】buttonEnter.addActionListener(this);//按钮buttonEnter增加ActionEvent事件监视器,监视器为当前窗口
【代码2】nuttonGetNumber.addActionListener(this);//按钮nuttonGetNumber增加ActionEvent事件监视器,监视器为当前窗口
【代码3】if(e.getSourse()==nuttonGetNumber)//判断事件源是否是nuttonGetNumber
【代码4】elseif(e.getSourse()==buttonEnter)//判断事件源是否是buttonEnter
【代码5】guess=Integer.parseInt(inputNumber.getText());//返回inputNumber中的文本
【代码6】feedBack.setText("猜对了!
");//feedBack设置提示文本“猜对了!
”
【代码7】feedBack.setText("猜大了");//feedBack设置提示文本“猜大了!
”
【代码8】feedBack.setText("猜小了");//feedBack设置提示文本“猜小了!
”
【代码9】feedBack.setText("请输入数字字符");//feedBack设置提示文本“请输入数字字符”
(3)运行结果
【项目四】设计实现一简易计算器,要求:
能做+、-、*、/连续运算(如图所示)。
或者设计并实现一画图软件、图片管理软件。
要求:
将源代码与实验报告打包上传。
(1)运行结果
三【实验小结】
通过本次实验的学习,练习了图形界面的设计,遇到的问题是在设计二级子菜单的时候出现了问题,最后经过不断地调试,运行出结果。
还有就是最后的计算器,没有完全实现实验中的所有要求。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- javashiyan8