java实验报告实验六Java图形用户界面_第1页
java实验报告实验六Java图形用户界面_第2页
java实验报告实验六Java图形用户界面_第3页
java实验报告实验六Java图形用户界面_第4页
java实验报告实验六Java图形用户界面_第5页
已阅读5页,还剩13页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

./信息工程学院实验报告的内容与格式按任课教师的要求书写。实验报告的内容与格式按任课教师的要求书写。Java程序设计实习报告JAVA图形用户界面实验六Java图形用户界面1.实验目的〔1掌握图形用户界面基本组件。〔2了解如何使用布局管理器对组件进行管理。〔3掌握Java事件处理机制。2.实验内容实验题1编写一个模拟计算器的程序,使用面板和网格布局,添加一个文本框,10个数字按钮<0-9>,4个加减乘除按钮,一个等号按钮,一个清除按钮,要求将计算公式和结果显示在文本框中。运行结果:加法:主要代码:privatevoidinitComponents<>{jButton1=newjavax.swing.JButton<>;jButton2=newjavax.swing.JButton<>;jButton3=newjavax.swing.JButton<>;jButton4=newjavax.swing.JButton<>;jButton5=newjavax.swing.JButton<>;jButton6=newjavax.swing.JButton<>;jButton7=newjavax.swing.JButton<>;jButton8=newjavax.swing.JButton<>;jButton9=newjavax.swing.JButton<>;jButton10=newjavax.swing.JButton<>;jButton11=newjavax.swing.JButton<>;jButton12=newjavax.swing.JButton<>;jButton13=newjavax.swing.JButton<>;jButton14=newjavax.swing.JButton<>;jButton15=newjavax.swing.JButton<>;jTextField1=newjavax.swing.JTextField<>; setStub<null>;jButton1.setText<"3">;jButton1.addActionListener<newjava.awt.event.ActionListener<>{publicvoidactionPerformed<java.awt.event.ActionEventevt>{ jButton1ActionPerformed<evt>; } }>;jButton2.setText<"1">;jButton2.addActionListener<newjava.awt.event.ActionListener<>{publicvoidactionPerformed<java.awt.event.ActionEventevt>{ jButton2ActionPerformed<evt>; } }>;jButton3.setText<"5">;jButton3.addActionListener<newjava.awt.event.ActionListener<>{publicvoidactionPerformed<java.awt.event.ActionEventevt>{ jButton3ActionPerformed<evt>; } }>;jButton4.setText<"2">;jButton4.addActionListener<newjava.awt.event.ActionListener<>{publicvoidactionPerformed<java.awt.event.ActionEventevt>{ jButton4ActionPerformed<evt>; } }>;jButton5.setText<"6">;jButton5.addActionListener<newjava.awt.event.ActionListener<>{publicvoidactionPerformed<java.awt.event.ActionEventevt>{ jButton5ActionPerformed<evt>; } }>;jButton6.setText<"8">;jButton6.addActionListener<newjava.awt.event.ActionListener<>{publicvoidactionPerformed<java.awt.event.ActionEventevt>{ jButton6ActionPerformed<evt>; } }>;jButton7.setText<"4">;jButton7.addActionListener<newjava.awt.event.ActionListener<>{publicvoidactionPerformed<java.awt.event.ActionEventevt>{ jButton7ActionPerformed<evt>; } }>;jButton8.setText<"7">;jButton8.addActionListener<newjava.awt.event.ActionListener<>{publicvoidactionPerformed<java.awt.event.ActionEventevt>{ jButton8ActionPerformed<evt>; } }>;jButton9.setText<"0">;jButton9.addActionListener<newjava.awt.event.ActionListener<>{publicvoidactionPerformed<java.awt.event.ActionEventevt>{ jButton9ActionPerformed<evt>; } }>;jButton10.setText<"9">;jButton10.addActionListener<newjava.awt.event.ActionListener<>{publicvoidactionPerformed<java.awt.event.ActionEventevt>{ jButton10ActionPerformed<evt>; } }>;jButton11.setText<"\u00f7">;jButton11.addActionListener<newjava.awt.event.ActionListener<>{publicvoidactionPerformed<java.awt.event.ActionEventevt>{ jButton11ActionPerformed<evt>; } }>;jButton12.setText<"\u00d7">;jButton12.addActionListener<newjava.awt.event.ActionListener<>{publicvoidactionPerformed<java.awt.event.ActionEventevt>{ jButton12ActionPerformed<evt>; } }>;jButton13.setText<"-">;jButton13.addActionListener<newjava.awt.event.ActionListener<>{publicvoidactionPerformed<java.awt.event.ActionEventevt>{ jButton13ActionPerformed<evt>; } }>;jButton14.setText<"+">;jButton14.addActionListener<newjava.awt.event.ActionListener<>{publicvoidactionPerformed<java.awt.event.ActionEventevt>{ jButton14ActionPerformed<evt>; } }>;jButton15.setText<"=">;jButton15.addActionListener<newjava.awt.event.ActionListener<>{publicvoidactionPerformed<java.awt.event.ActionEventevt>{ jButton15ActionPerformed<evt>; } }>;实验题2编写一个程序,有一个窗口,该窗口为BorderLayout布局。窗口的中心添加一个Panel容器:pCenter,pCenter的布局是7行7列的GridLayout布局,pCenter的中放置49个标签,用来显示日历。窗口北面添加一个Panel容器pNorth,其布局是FlowLayout布局,pNorth放置两个按钮:nextMonth和previousMonth按钮,单击nextMonth,可以显示当前月的下一个月的日历;单击previousMonth按钮,可以显示当前月的上一个月的日历。窗口的南面添加一个Panel容器pSouth,其布局是FlowLayout布局,pSouth中放置一个标签用来显示一些信息。运行结果如图所示。图3.8运行结果图[基本要求]编写完整程序。运行结果:主要代码:privateJLabel[]buttonDay=newJLabel[42];privateJButton[]buttonWeek=newJButton[7];privateJLabellabelMonth=newJLabel<>;privateJButtonbuttonLastMonth=newJButton<>;privateJButtonbuttonNextMonth=newJButton<>;privateJPanelpCenter=newJPanel<>;privateJPanelpNorth=newJPanel<>;privateJPanelpSouth=newJPanel<>;privateJLabeltime=newJLabel<>;publicCalender<>{super<"Calender">;setBounds<250,200,600,500>;setDefaultCloseOperation<JFrame.EXIT_ON_CLOSE>;buttonLastMonth.setText<"上月">;buttonLastMonth.addActionListener<this>;pNorth.add<buttonLastMonth>;buttonNextMonth.setText<"下月">;buttonNextMonth.addActionListener<this>;pNorth.add<buttonNextMonth>;getContentPane<>.add<pNorth,BorderLayout.NORTH>;getContentPane<>.add<pCenter,BorderLayout.CENTER>;pCenter.setLayout<newGridLayout<7,7>>;for<inti=0;i<7;i++>{buttonWeek[i]=newJButton<>;buttonWeek[i].setText<stringWeekCn[i]>;pCenter.add<buttonWeek[i]>;}for<inti=0;i<42;i++>{buttonDay[i]=newJLabel<>;buttonDay[i].setText<"">;pCenter.add<buttonDay[i]>;}实验题3实现如图3.9所示的布局方式功能:前两个文本框输入整型数据。第三个文本框存放前两个文本框数据之和。要求如下:第一个文本框的数据是[100,200],如果超出该范围弹出对话框提示用户。弹出提示对话框的时刻是光标离开第一个文本框时。图3.9求和运行结果:检验输入数据范围:主要代码:classMouseHanderextendsMouseAdapter{publicMouseHander<JTextFieldc>{current=c;}publicvoidmousePressed<MouseEventevent>{if<current==result>{doublefirstNumber=Double.parseDouble<first.getText<>>;doublesecondNumber=Double.parseDouble<second.getText<>>;doubleResult=firstNumber+secondNumber;result.setText<""+Result>;}elsecurrent.setText<"">;}privateJTextFieldcurrent;}classMouseMotionHanderextendsMouseMotionAdapter{publicvoidmouseMoved<MouseEventevent>{doublenumber=Double.parseDouble<first.getText<>>;if<number<100||number>200>{inttype=JOptionPane.ERROR_MESSAGE;JOptionPane.showMessageDialog<null,newString<"输入数字必须在100~200之间">,"提示",2>;}}}实验题4编写一个显示图像文件的Application应用程序,在该程序JFrame窗体中添加JPanel面板和一个JToolBar工具栏,在工具栏上添加一个JButton"打开"按扭,单击"打开"按纽,弹出JFileChooser文件打开选择对话框,选择图像文件后将其显示在JPnel面板中。运行结果:主要代码:publicclassNewJFrameextendsjavax.swing.JFrame{privateJPaneljPanel1;privateJPaneljPanel2;privateJButtonjButton2;privateJButtonjButton1;privateStringfilePath="";/***Auto-generatedmainmethodtodisplaythisJFrame*/publicstaticvoidmain<String[]args>{ SwingUtilities.invokeLater<newRunnable<>{publicvoidrun<>{ NewJFrameinst=newNewJFrame<>; inst.setLocationRelativeTo<null>; inst.setVisible<true>; } }>; }publicNewJFrame<>{super<>; initGUI<>; }privatevoidinitGUI<>{try{ setDefaultCloseOperation<WindowConstants.DISPOSE_ON_CLOSE>; {jPanel1=newJPanel<true>; FlowLayoutjPanel1Layout=newFlowLayout<>; getContentPane<>.add<jPanel1,BorderLayout.NORTH>;jPanel1.setPreferredSize<newjava.awt.Dimension<384,43>>;jPanel1.setLayout<jPanel1Layout>; {jButton2=newJButton<>;jPanel1.add<jButton2>;jButton2.setText<"Open">;jButton2.setBounds<104,12,62,22>;jButton2.setPreferredSize<newjava.awt.Dimension<76,22>>;jButton2.addActionListener<newActionListener<>{publicvoidactionPerformed<ActionEventevt>{ jButton2ActionPerformed<evt>; } }>; } {jButton1=newJButton<>;jPanel1.add<jButton1>;jButton1.setText<"Close">;jButton1.setBounds<204,12,62,22>;jButton1.setPreferredSize<newjava.awt.Dimension<72,22>>;jButton1.addMouseListener<newMouseAdapter<>{publicvoidmousePressed<MouseEventevt>{ System.exit<0>;//TODOaddyourcodeforjButton1.mousePressed } }>; } } {jPanel2=newJPanel<>; getContentPane<>.add<jPanel2,BorderLayout.CENTER>; } pack<>; setSize<400,300>; }catch<Exceptione>{//addyourerrorhandlingcodehere e.printStackTrace<>; } }privatevoidjButton2ActionPerformed<ActionEventevt>{ Stringaction=evt.getActionCommand<>; JFileChooserfileChooser=newJFileChooser<>;intindex=fileChooser.showOpenDialog<getContentPane<>>;if<index==JFileChooser.APPROVE_OPTION> { FileselectedFile=fileChooser.getSelectedFile<>;//取得选中的文件filePath=selectedFile.getPath<>;filePath=filePath.replace<'\\','/'>; ImageIconicon=newImageIcon<filePath>; JLabellabel=newJLabel<icon,JLabel.CENTER>; JLabelp=newJLabel<"图片路径:"+filePath>;jPanel2.add<p,BorderLayout.SOUTH>;jPanel2.add<label>;jPanel2.update<null>; } }}实验题5使用SWT技术完成图3.10所示图形界面的制作。要求"查询结果"用group组件。图3.10数据查询界面运行结果;主要代码:publicclassSearchextendsorg.eclipse.swt.widgets.Composite{privateCompositecomposite1;privateCompositecomposite2;privateGroupgroup1;privateTexttext4;privateLabellabel4;privateTexttext3;privateLabellabel3;privateTexttext2;privateLabellabel2;privateButtonbutton2;privateButtonbutton1;privateTexttext1;privateLabellabel1; {//Registerasaresourceuser-SWTResourceManagerwill//handletheobtaininganddisposingofresourcesSWTResourceManager.registerResourceUser<this>; }publicSearch<Compositeparent,intstyle>{super<parent,style>; initGUI<>; }/** *InitializestheGUI. */privatevoidinitGUI<>{try{this.setSize<neworg.eclipse.swt.graphics.Point<400,300>>;this.setBackground<SWTResourceManager.getColor<192,192,192>>;FormLayoutthisLayout=newFormLayout<>;this.setLayout<thisLayout>; {composite1=newComposite<this,SWT.NONE>;FormLayoutcomposite1Layout=newFormLayout<>;FormDatacomposite1LData=newFormData<>; composite1LData.left=newFormAttachment<0,1000,0>; composite1LData.top=newFormAttachment<0,1000,0>; composite1LData.width=400; composite1LData.height=300;composite1.setLayoutData<composite1LData>;composite1.setLayout<composite1Layout>; {group1=newGroup<composite1,SWT.NONE>;GridLayoutgroup1Layout=newGridLayout<>; group1Layout.marginBottom=30; group1Layout.numColumns=2; group1Layout.verticalSpacing=15; group1Layout.marginTop=10;group1.setLayout<group1Layout>;FormDatagroup1LData=newFormData<>; group1LData.left=newFormAttachment<0,1000,38>; group1LData.top=newFormAttachment<0,1000,106>; group1LData.width=318; group1LData.height=145;group1.setLayoutData<group1LData>;group1.setText<"\u67e5\u8be2\u7ed3\u679c">;group1.setFont<SWTResourceManager.getFont<"微软雅黑",11,0,false,false>>; {label2=newLabel<group1,SWT.NONE>;GridDatalabel2LData=newGridData<>; label2LData.widthHint=70; label2LData.heightHint=25;label2.setLayoutData<label2LData>;label2.setText<"\u5b66\u53f7\uff1a">;label2.setFont<SWTResourceManager.getFont<"微软雅黑",11,0,false,false>>; } {GridDatatext2LData=newGridData<>; text2LData.widthHint=181; text2LData.heightHint=27;text2=newText<group1,SWT.NONE>;text2.setLayoutData<text2LData>; } {label3=newLabel<group1,SWT.NONE>;GridDatalabel3LData=newGridData<>; label3LData.widthHint=63; label3LData.heightHint=23;label3.setLayoutData<label3LData>;label3.setText<"\u59d3\u540d\uff1a">;label3.setFont<SWTResourceManager.getFont<"微软雅黑",11,0,false,false>>; } {GridDatatext3LData=newGridData<>; text3LData.widthHint=181; text3LData.heightHint=27;text3=newText<group1,SWT.NONE>;text3.setLayoutData<text3LData>; } {label4=newLabel<group1,SWT.NONE>;GridDatalabel4LData=newGridData<>; label4LData.widthHint=57; label4LData.heightHint=28;label4.setLayoutData<label4LData>;label4.setText<"\u5e74\u9f84\uff1a">;label4.setFont<SWTResourceManager.getFont<"微软雅黑",11,0,false,false>>; } { GridDatatext4LData=newGridData<>; text4LData.widthHint=182; text4LData.heightHint=31;text4=newText<group1,SWT.NONE>;text4.setLayoutData<text4LData>; } } {composite2=newComposite<composite1,SWT.NONE>; GridLayoutcomposite2Layout=newGridLayout<>; composite2Layout.numColumns=2; composite2Layout.marginLeft=40; composite2Layout.horizontalSpacing=10; composite2Layout.verticalSpacing=15; FormDatacomposite2LData=newFormData<>; composite2LData.left=newFormAttachment<0,1000,12>; composite2LData.top=newFormAttachment<0,1000,12>; composite2LData.width=376; composite2LData.height=88;composite2.setLayoutData<composite2LData>;composite2.setLayout<composite2Layout>; {label1=newLabel<composite2,SWT.NONE>; GridDatalabel1LData=newGridData<>; label1LData.widthHint=96; label1LData.heightHint=22;label1.setLayoutData<label1LData>;label1.setText<"\u8bf7\u8f93\u5165\u5b66\u53f7\uff1a">;label1.setFont<SWTResourceManager.getFont<"微软雅黑",12,0,false,false>>; } { GridDatatext1LData=newGridData<>; text1LData.widthHint=182; text1LData.heightHint=28;text1=newText<composite2,SWT.NONE>;text1.setLayoutData<text1LData>; } {button1=newButton<composite2,SWT.PUSH|SWT.CENTER>; GridDatabutton1LData=newGridData<>; button1LData.widthHint=70; button1LData.heightHint=27;button1.setLayoutData<button1LData>;button1.setText<"\u786e\u5b9a">; } {button2=newButton<composite2,SWT.PUSH|SWT.CENTER>; GridDatabutton2LData=newGridData<>; button2LData.widthHint=78; button2LData.heightHint=27;button2.setLayoutData<button2LData>;button2.setText<"\u91cd\u7f6e">; } } }this.layout<>; }catch<Exceptione>{ e.printStackTrace<>; } }/** *Auto-generatedmainmethodtodisplaythis *org.eclipse.swt.widgets.CompositeinsideanewShell. */publicstaticvoidmain<String[]args>{Displaydisplay=Display.getDefault<>;Shellshell=newShell<display>; Searchinst=newSearch<shell,SWT.NULL>;Pointsize=inst.getSize<>; shell.setLayout<newFillLayout<>>; shell.layout<>;if<size.x==0&&size.y==0>{ inst.pack<>; shell.pack<>; }else{RectangleshellBounds=puteTrim<0,0,size.x,size.y>; shell.setSize<shellBounds.width,shellBounds.height>; } shell.open<>;while<!shell.isDisposed<>>{if<!display.readAndDispatch<>> display.sleep<>; } }}实验题6使用SWT技术完成图3.11所示学籍管理主界面的设计与制作。图3.11学籍管理主界面运行结果:主要代码:publicclassExample{publicstaticvoidmain<String[]args>{ Windowwin=newWindow<"学籍管理系统",300,200,500,500>; }}packagepackage6;importjava.awt.*;importjavax.swing.*;import;import;importstatic.*;import.*;importjavax.swing.*;publicclassWindowextendsJFrame{ JMenuBarmenubar; JMenumenu,menu2,menu3,menuhelp; JMenuItemitem1,item2; JLabeltext;publicWindow<>{ }publicWindow<Strings,intx,inty,intw,inth>{ init<s>; setLocation<x,y>; setSize<w,h>; setVisible<true>; setDefaultCloseOperation<DISPOSE_ON_CLOSE>; }voidinit<Strings>{ setTitle<s>; setLayout<null>;text=newJLabel<"欢迎使用学籍管理系统!">;text.setForeground<Color.red>;text.setFont<newjava.awt.Font<"Dialog",1,22>>; add<text>;text.setBounds<140,150,250,150>;menubar=newJMenuBar<>;menu=newJMenu<"在线登陆">;menu2=newJMenu<"用户管理">;menu3=newJMenu<"数据维护">;menuhelp=newJMenu<"帮助">;item1=newJMenuItem<"用户登录",newImageIcon<"Login,gif">>;item2=newJMenuItem<"退出",newImageIco

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论