您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 实验四-java图形用户界面设计
1实验四图形用户界面设计一、实验目的1.掌握JavaGUI中的java.awt包和javax.swing包2.掌握图形用户界面程序设计的基本方法3.掌握事件处理模型4.使用Swing组件实现图形用户界面二、准备工作1.JDK的安装设置:JDK/JRE/JVM;2.Eclipse集成开发环境的绿色安装;三、实验描述1.实验类型:设计2.实验学时:2学时3.实验内容:创建简易聊天室(ChatRoom)的图形用户界面,并创建GUI事件处理器4.具体要求:①创建项目及类:类名称:ChatClient项目:ChatRoomPrj包:默认包②组件构成:该JFrame中有六个组件:中间输出文本域JTextArea组件,底部输入文本域JTextField组件,右边有两个JButton组件(Send和Quit),一个ComboBox组件用于选择发送消息的人名(昵称),以及一个菜单组件。③使用嵌套面板和布局管理器来帮助构造上图所示的布局。具体如下所示:※提示:JFrame默认采用BorderLayout,JMenuBar放置在North区,JTextArea放置在WEST区,JTextField放置在SOUTH区,CENTER区使用嵌套面板,该面板采用GridLayout(3行1列),分别添加两个JButton以及一个JComboBox组件。④创建ActionListener,当按下Send按钮时,将JComboBox组件选择的人名,与JTextField输入文本域的文本一起复制到JTextArea输出文本域。2⑤创建ActionListener,在输入文本域按下Enter键时,将JComboBox组件选择的人名(昵称),与JTextField输入文本域的文本复制到JTextArea输出文本域。※提示:可以和上述④使用同一个监听器,以减少代码冗余。⑥创建ActionListener,当按下Quit按钮时,程序退出。※提示:监听器可以使用内部类实现,退出使用System.exit(0)。⑦创建WindowListener,按下框架上的Close部件时,程序退出。※提示:和上述⑧使用同一个监听器,以减少代码冗余。但是,该内部类要同时extendsWindowAdapter还要implementsActionListener,以满足两个不同监听器的要求。⑧添加File菜单,该菜单必须包含Quit菜单项,选择该菜单项即终止程序。※提示:和上述⑥和⑦使用同一个监听器,以减少代码冗余。⑨添加Help菜单,该菜单必须包含About菜单项,可从该菜单项弹出一个消息对话框,显示有关程序和开发人员的备注信息。四、实验要求及总结1.结合上课内容,对上述程序先阅读,然后上机并调试程序,并对实验结果写出你自己的分析结论。2.整理上机步骤,总结经验和体会。3.完成实验报告和上交程序。实验四:实验结果:importjava.awt.*;3importjava.io.*;importjava.net.*;importjava.awt.color.*;importjavax.swing.event.*;importjava.util.*;importjava.net.Socket;importjava.text.*;importjava.awt.event.*;importjavax.swing.*;publicclassCHatrommextendsJFrameimplementsActionListener,ItemListener{JMenuBarmenubar;//增加组件JMenuFile,Help,edit;JMenuItemsend,quit,about,copy,cut,paste;JTextFieldtext;JButtonSend,Quit;JTextAreaarea;JComboBoxchoice,list;JPanelpanel,panel2;//panel1放send,quit等按钮,panel2放菜单Colorred=newColor(255,0,0);//使用color类创建color对象Colorgreen=newColor(0,255,0);Colorblue=newColor(0,0,255);Coloryellow=newColor(255,255,0);publicCHatromm(){//初始化JFramesetBounds(100,100,150,150);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);init();}publicvoidinit(){//init()方法实现组件的创建和添加setTitle(chatingroom);FlowLayoutflow=newFlowLayout();flow.setAlignment(FlowLayout.LEFT);//流式布局采用左对齐panel2=newJPanel(flow);menubar=newJMenuBar();File=newJMenu(FIle);4Help=newJMenu(Help);edit=newJMenu(edit);send=newJMenuItem(send);quit=newJMenuItem(quit);about=newJMenuItem(about);copy=newJMenuItem(copy);cut=newJMenuItem(cut);paste=newJMenuItem(paste);list=newJComboBox();GraphicsEnvironmentge=GraphicsEnvironment.getLocalGraphicsEnvironment();//获取本地计算机所有可用的字体Stringfontmat[]=ge.getAvailableFontFamilyNames();for(Stringstr:fontmat){list.addItem(str);}send.setAccelerator(KeyStroke.getKeyStroke('S'));//为菜单项建立快捷键quit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,InputEvent.CTRL_MASK));about.setAccelerator(KeyStroke.getKeyStroke('A'));copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));panel2.setBackground(yellow);edit.add(cut);edit.add(copy);edit.add(paste);File.add(send);File.add(quit);File.add(edit);Help.add(about);menubar.add(File);menubar.add(Help);menubar.add(list);panel2.add(menubar);panel2.add(list);add(panel2,BorderLayout.NORTH);//把panel2放在JFrame北面area=newJTextArea(90,90);area.setLineWrap(true);area.setForeground(Color.black);add(newJScrollPane(area),BorderLayout.WEST);//JTextArea放在JFrame西面text=newJTextField(Entryyourchattingwords....,10);5text.setHorizontalAlignment(JTextField.CENTER);//设置JTextField文本居中显示add(text,BorderLayout.SOUTH);//JTextField放在JFrame南面panel=newJPanel();panel.setLayout(newGridLayout(3,1));//panel1采用3行1列的布局Send=newJButton(SEND,newImageIcon(F:/workspace/ChatRoom/src/5.jpg));//为按钮增加图片Quit=newJButton(QUIT,newImageIcon(F:/workspace/ChatRoom/src/6.gif));Quit.setHorizontalTextPosition(AbstractButton.CENTER);Quit.setBackground(red);//设置按钮背景色Send.setBackground(green);Send.setHorizontalTextPosition(AbstractButton.CENTER);Quit.setMnemonic('q');//为button设置键盘激活方式Send.setMnemonic('s');choice=newJComboBox();choice.setBackground(blue);choice.setForeground(yellow);choice.addItem(zhaozhen);choice.addItem(zhaoyao);choice.addItem(zhangsan);choice.addItem(lisi);panel.add(Send);panel.add(Quit);panel.add(choice);add(panel,BorderLayout.CENTER);//注册侦听器Send.addActionListener(this);Quit.addActionListener(this);send.addActionListener(this);quit.addActionListener(this);text.addActionListener(this);about.addActionListener(this);copy.addActionListener(this);cut.addActionListener(this);paste.addActionListener(this);list.addItemListener(this);}publicvoidactionPerformed(ActionEvente){Datenow=newDate();//定义时间对象,显示聊天时间DateFormatd=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);Stringstr=d.format(now);if(e.getSource()==Send||e.getSource()==send||e.getSource()==text){//菜单项、按钮send响应和text按entry键6area.append(choice.getSelectedItem()+:+text.getText()++str+\n);text.setText(null);}if(e.getSource()==Quit||e.getSource()==quit){//quit键System.exit(0);}if(e.getSource()==about){JOptionPane.showMessageDia
本文标题:实验四-java图形用户界面设计
链接地址:https://www.777doc.com/doc-5872694 .html