java图形用户界面实训报告,java实验报告实验六Java图形用户界面

java实验报告实验六Java图形用户界面

信 息 工 程 学 院实验报告的内容与格式按任课教师的要求书写。Java程序设计 实习报告JAVA图形用户界面实验六Java图形用户界面1实验目的(1)掌握图形用户界面基本组件。(2)了解如何使用布局管理器对组件进行管理。(3)掌握Java事件处理机制。2实验内容实验题1 编写一个模拟计算器的程序,使用面板和网格布局,添加一个文本框,10个数字按钮(0-9),4个加减乘除按钮,一个等号按钮,一个清除按钮,要求将计算公式和结果显示在文本框中。运行结果:精品.加法:主要代码:private void initComponents() jButton1 = new javax.swing.JButton();jButton2 = new javax.swing.JButton();精品.jButton3 = new javax.swing.JButton();jButton4 = new javax.swing.JButton();jButton5 = new javax.swing.JButton();jButton6 = new javax.swing.JButton();jButton7 = new javax.swing.JButton();jButton8 = new javax.swing.JButton();jButton9 = new javax.swing.JButton();jButton10 = new javax.swing.JButton();jButton11 = new javax.swing.JButton();jButton12 = new javax.swing.JButton();jButton13 = new javax.swing.JButton();jButton14 = new javax.swing.JButton();jButton15 = new javax.swing.JButton();jTextField1 = new javax.swing.JTextField();setStub(null);jButton1.setText(3);jButton1.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton1ActionPerformed(evt););jButton2.setText(1);jButton2.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton2ActionPerformed(evt););jButton3.setText(5);jButton3.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton3ActionPerformed(evt););精品.jButton4.setText(2);jButton4.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton4ActionPerformed(evt););jButton5.setText(6);jButton5.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton5ActionPerformed(evt););jButton6.setText(8);jButton6.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton6ActionPerformed(evt););jButton7.setText(4);jButton7.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton7ActionPerformed(evt););jButton8.setText(7);jButton8.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton8ActionPerformed(evt););jButton9.setText(0);精品.jButton9.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton9ActionPerformed(evt););jButton10.setText(9);jButton10.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton10ActionPerformed(evt););jButton11.setText(u00f7);jButton11.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton11ActionPerformed(evt););jButton12.setText(u00d7);jButton12.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton12ActionPerformed(evt););jButton13.setText(-);jButton13.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton13ActionPerformed(evt););jButton14.setText(+);jButton14.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) 精品.jButton14ActionPerformed(evt););jButton15.setText(=);jButton15.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) 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 运行结果图基本要求 编写完整程序。运行结果:精品.主要代码:private JLabel buttonDay = new JLabel42;private JButton buttonWeek = new JButton7;private JLabel labelMonth = new JLabel();private JButton buttonLastMonth = new JButton();private JButton buttonNextMonth = new JButton();private JPanel pCenter=new JPanel();private JPanel pNorth=new JPanel();private JPanel pSouth=new JPanel();private JLabel time=new JLabel();public Calender() 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(new GridLayout(7,7);for (int i = 0; i 7; i+) buttonWeeki = new JButton();buttonWeeki.setText(stringWeekCni);pCenter.add(buttonWeeki);for (int i = 0; i 42; i+) buttonDayi = new JLabel();buttonDayi.setText( );pCenter.add(buttonDayi);实验题3 实现如图3.9所示的布局方式功能:前两个文本框输入整型数据。第三个文本框存放前两个文本框数据之和。要求如下:第一个文本框的数据是100,200,如果超出该范围弹出对话框提示用户。弹出提示对话框的时刻是光标离开第一个文本框时。图3.9 求和运行结果:精品.检验输入数据范围:主要代码:class MouseHander extends MouseAdapterpublic MouseHander(JTextField c)current=c;public void mousePressed(MouseEvent event)if(current=result)double firstNumber=Double.parseDouble(first.getText();double secondNumber=Double.parseDouble(second.getText();double Result=firstNumber+secondNumber;result.setText(+Result);else current.setText();private JTextField current;class MouseMotionHander extends MouseMotionAdapter精品.public void mouseMoved(MouseEvent event)double number=Double.parseDouble(first.getText();if(number100|number200)int type=JOptionPane.ERROR_MESSAGE;JOptionPane.showMessageDialog(null,new String(输入数字必须在100200之间),提示, 2);实验题4 编写一个显示图像文件的Application应用程序,在该程序JFrame窗体中添加JPanel面板和一个JToolBar工具栏,在工具栏上添加一个JButton“打开”按扭,单击“打开”按纽,弹出JFileChooser文件打开选择对话框,选择图像文件后将其显示在JPnel面板中。运行结果:精品.主要代码:public class NewJFrame extends javax.swing.JFrame private JPanel jPanel1;private JPanel jPanel2;private JButton jButton2;private JButton jButton1;private String filePath = ;/* Auto-generated main method to display this JFrame*/public static void main(String args) SwingUtilities.invokeLater(new Runnable() public void run() NewJFrame inst = new NewJFrame();inst.setLocationRelativeTo(null);inst.setVisible(true);精品.);public NewJFrame() super();initGUI();private void initGUI() try setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);jPanel1 = new JPanel(true);FlowLayout jPanel1Layout = new FlowLayout();getContentPane().add(jPanel1, BorderLayout.NORTH);jPanel1.setPreferredSize(new java.awt.Dimension(384, 43);jPanel1.setLayout(jPanel1Layout);jButton2 = new JButton();jPanel1.add(jButton2);jButton2.setText(Open);jButton2.setBounds(104, 12, 62, 22);jButton2.setPreferredSize(new java.awt.Dimension(76, 22);jButton2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent evt) jButton2ActionPerformed(evt););jButton1 = new JButton();jPanel1.add(jButton1);jButton1.setText(Close);精品.jButton1.setBounds(204, 12, 62, 22);jButton1.setPreferredSize(new java.awt.Dimension(72, 22);jButton1.addMouseListener(new MouseAdapter() public void mousePressed(MouseEvent evt) System.exit(0);/TODO add your code for jButton1.mousePressed);jPanel2 = new JPanel();getContentPane().add(jPanel2, BorderLayout.CENTER);pack();setSize(400, 300); catch (Exception e) /add your error handling code heree.printStackTrace();private void jButton2ActionPerformed(ActionEvent evt) String action = evt.getActionCommand();JFileChooser fileChooser = new JFileChooser();int index = fileChooser.showOpenDialog(getContentPane();if(index = JFileChooser.APPROVE_OPTION)File selectedFile = fileChooser.getSelectedFile(); /取得选中的文件filePath = selectedFile.getPath();filePath = filePath.replace(,/);精品.ImageIcon icon = new ImageIcon(filePath);JLabel label = new JLabel(icon,JLabel.CENTER);JLabel p=new JLabel(图片路径: + filePath);jPanel2.add(p,BorderLayout.SOUTH);jPanel2.add(label);jPanel2.update(null);实验题5使用SWT技术完成图3.10 所示图形界面的制作。要求“查询结果”用group组件。图3.10 数据查询界面运行结果;精品.主要代码:public class Search extends org.eclipse.swt.widgets.Composite private Composite composite1;private Composite composite2;private Group group1;private Text text4;private Label label4;private Text text3;private Label label3;private Text text2;private Label label2;private Button button2;private Button button1;private Text text1;private Label label1;/Register as a resource user - SWTResourceManager will/handle the obtaining and disposing of resourcesSWTResourceManager.registerResourceUser(this);public Search(Composite parent, int style) super(parent, style);精品.initGUI();/* Initializes the GUI.*/private void initGUI() try this.setSize(new org.eclipse.swt.graphics.Point(400,300);this.setBackground(SWTResourceManager.getColor(192, 192, 192);FormLayout thisLayout = new FormLayout();this.setLayout(thisLayout);composite1 = new Composite(this, SWT.NONE);FormLayout composite1Layout = new FormLayout();FormData composite1LData = new FormData();composite1LData.left = new FormAttachment(0, 1000, 0);composite1LData.top = new FormAttachment(0, 1000, 0);composite1LData.width = 400;composite1LData.height = 300;composite1.setLayoutData(composite1LData);composite1.setLayout(composite1Layout);group1 = new Group(composite1, SWT.NONE);GridLayout group1Layout = new GridLayout();group1Layout.marginBottom = 30;group1Layout.numColumns = 2;group1Layout.verticalSpacing = 15;group1Layout.marginTop = 10;group1.setLayout(group1Layout);FormData group1LData = new FormData();group1LData.left = new FormAttachment(0, 1000, 38);group1LData.top = new FormAttachment(0, 1000, 106);group1LData.width = 318;group1LData.height = 145;精品.group1.setLayoutData(group1LData);group1.setText(u67e5u8be2u7ed3u679c);group1.setFont(SWTResourceManager.getFont(微软雅黑, 11, 0, false, false);label2 = new Label(group1, SWT.NONE);GridData label2LData = new GridData();label2LData.widthHint = 70;label2LData.heightHint = 25;label2.setLayoutData(label2LData);label2.setText(u5b66u53f7uff1a);label2.setFont(SWTResourceManager.getFont(微软雅黑, 11, 0, false, false);GridData text2LData = new GridData();text2LData.widthHint = 181;text2LData.heightHint = 27;text2 = new Text(group1, SWT.NONE);text2.setLayoutData(text2LData);label3 = new Label(group1, SWT.NONE);GridData label3LData = new GridData();label3LData.widthHint = 63;label3LData.heightHint = 23;label3.setLayoutData(label3LData);label3.setText(u59d3u540duff1a);label3.setFont(SWTResourceManager.getFont(微软雅黑, 11, 0, false, false);GridData text3LData = new GridData();text3LData.widthHint = 181;text3LData.heightHint = 27;精品.text3 = new Text(group1, SWT.NONE);text3.setLayoutData(text3LData);label4 = new Label(group1, SWT.NONE);GridData label4LData = new GridData();label4LData.widthHint = 57;label4LData.heightHint = 28;label4.setLayoutData(label4LData);label4.setText(u5e74u9f84uff1a);label4.setFont(SWTResourceManager.getFont(微软雅黑, 11, 0, false, false);GridData text4LData = new GridData();text4LData.widthHint = 182;text4LData.heightHint = 31;text4 = new Text(group1, SWT.NONE);text4.setLayoutData(text4LData);composite2 = new Composite(composite1, SWT.NONE);GridLayout composite2Layout = new GridLayout();composite2Layout.numColumns = 2;composite2Layout.marginLeft = 40;composite2Layout.horizontalSpacing = 10;composite2Layout.verticalSpacing = 15;FormData composite2LData = new FormData();composite2LData.left = new FormAttachment(0, 1000, 12);composite2LData.top = new FormAttachment(0, 1000, 12);composite2LData.width = 376;composite2LData.height = 88;精品.composite2.setLayoutData(composite2LData);composite2.setLayout(composite2Layout);label1 = new Label(composite2, SWT.NONE);GridData label1LData = new GridData();label1LData.widthHint = 96;label1LData.heightHint = 22;label1.setLayoutData(label1LData);label1.setText(u8bf7u8f93u5165u5b66u53f7uff1a);label1.setFont(SWTResourceManager.getFont(微软雅黑, 12, 0, false, false);GridData text1LData = new GridData();text1LData.widthHint = 182;text1LData.heightHint = 28;text1 = new Text(composite2, SWT.NONE);text1.setLayoutData(text1LData);button1 = new Button(composite2, SWT.PUSH | SWT.CENTER);GridData button1LData = new GridData();button1LData.widthHint = 70;button1LData.heightHint = 27;button1.setLayoutData(button1LData);button1.setText(u786eu5b9a);button2 = new Button(composite2, SWT.PUSH | SWT.CENTER);GridData button2LData = new GridData();精品.button2LData.widthHint = 78;button2LData.heightHint = 27;button2.setLayoutData(button2LData);button2.setText(u91cdu7f6e);this.layout(); catch (Exception e) e.printStackTrace();/* Auto-generated main method to display this * org.eclipse.swt.widgets.Composite inside a new Shell.*/public static void main(String args) Display display = Display.getDefault();Shell shell = new Shell(display);Search inst = new Search(shell, SWT.NULL);Point size = inst.getSize();shell.setLayout(new FillLayout();shell.layout();if(size.x = 0 & size.y = 0) inst.pack();shell.pack(); else Rectangle shellBounds = shell.computeTrim(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学籍管理主界面运行结果:精品.主要代码:public class Example public static void main(String args) Window win=new Window(学籍管理系统,300,200,500,500);package package6;import java.awt.*;import javax.swing.*;import java.awt.event.InputEvent;import java.awt.event.KeyEvent;import static javax.swing.JFrame.*;import java.awt.event.*;import javax.swing.*;public class Window extends JFrame JMenuBar menubar;JMenu menu, menu2, menu3, menuhelp;JMenuItem item1, item2;JLabel text;public Window() public Window(String s, int x, int y, int w, int h) 精品.init(s);setLocation(x, y);setSize(w, h);setVisible(true);setDefaultCloseOperation(DISPOSE_ON_CLOSE);void init(String s) setTitle(s);setLayout(null);text = new JLabel(欢迎使用学籍管理系统 !);text.setForeground(Color.red);text.setFont(new java.awt.Font(Dialog, 1, 22);add(text);text.setBounds(140, 150, 250, 150);menubar = new JMenuBar();menu = new JMenu(在线登陆);menu2 = new JMenu(用户管理);menu3 = new JMenu(数据维护);menuhelp = new JMenu(帮助);item1 = new JMenuItem(用户登录, new ImageIcon(Login,gif);item2 = new JMenuItem(退 出, new ImageIcon(Exit.gif);menu.add(item1);menu.add(item2);menubar.add(menu);menubar.add(menu2);menubar.add(menu3);menubar.add(menuhelp);setJMenuBar(menubar);实验题7 使用SWT技术在图3.11所示界面中,在“用户登录”菜单中添加组件选择事件,当选中“用户登录”时,打开图3.12所示用户登录界面。精品.图3.12 用户登录窗体运行结果:主要代码:public class Window extends JFrame implements ActionListener JMenuBar menubar;JMenu menu, menu2, menu3, menuhelp;JMenuItem item1, item2;JLabel text;MyDialog dialog;public Window() public Window(String s, int x, int y, int w, int h) init(s);精品.setLocation(x, y);setSize(w, h);setVisible(true);setDefaultCloseOperation(DISPOSE_ON_CLOSE);void init(String s) setTitle(s);setLayout(null);text = new JLabel(欢迎使用学籍管理系统 !);text.setForeground(Color.red);text.setFont(new java.awt.Font(Dialog, 1, 22);add(text);text.setBounds(140, 150, 250, 150);menubar = new JMenuBar();menu = new JMenu(在线登陆);menu2 = new JMenu(用户管理);menu3 = new JMenu(数据维护);menuhelp = new JMenu(帮助);item1 = new JMenuItem(用户登录, new ImageIcon(a,gif);item1.addActionListener(this);dialog = new MyDialog(this, SWT应用程序, true);item2 = new JMenuItem(退 出, new ImageIcon(b.gif);menu.add(item1);menu.add(item2);menubar.add(menu);menubar.add(menu2);menubar.add(menu3);menubar.add(menuhelp);setJMenuBar(menubar);public void actionPerformed(ActionEvent e) if (e.getSource() = item1) int x = this.getBounds().x + this.getBounds().width;int y = this.getBounds().y;dialog.setLocation(x, y);dialog.setVisible(true);精品.实验总结:按照实验要求,在本次实验中我需要掌握图形用户界面基本组件,了解如何使用布局管理器对组件进行管理,掌握Java事件处理机制。在实验过程中我遇到了一些问题,首先是在软件的配置上,SWT组件的运用,因为对拖放设计界面不熟悉,所以在操作起来很慢。还有在事件监听处理上,尤其是在写计算器那个题目时问题比较多,通过同学的帮助最终还是解决了这个问题。通过这次试验,我还是收获了很多东西。尤其是像在图形界面设计中,我们更应该多动手实际操作,这样才可以熟练,高效的完成任务。Very good! 2012-06-13如有侵权请联系告知删除,感谢你

Java课程设计实训大作业:记事本+简易计算器+聊天系统+日历+中英查询 基础任务一:设计日历软件 根据如下图,综合运用GUI编程、事件处理、Calendar类应用等知识设计一款月历,要求能通过输入(或选择)年月的方式正确显示当前月份的所有日期。 基础任务二:设计中英查询软件 根据Java面向对象程序设计相关理论,及GUI编程、事件处理、数据库编程等技术,设计一个如下图所示的“中英文释义查询”程序。输入英文单词,查询数据库将对应的中文显示在下框中;输入中文,查询数据库将对应的英文单词显示在下框中。 提升任务三:设计简易记事本软件 1.使用Java图形界面组件设计记事本软件的界面,参考如图所示。 2.程序代码规范,逻辑正确,能够正常运行。 3.“文件”菜单,包括“新建”、“打开”、“保存”、“另存为”和“退出”等功能。 提升任务四:设计简易计算器软件 1.使用Java图形界面组件设计软件,界面如图所示。 2.软件能够满足基本的“加、减、乘、除”等运算要求。 3.程序代码清晰,语法规范,结构合理,逻辑正确。 进阶任务五:自选主题开发一个应用软件(如在线聊天系统,学籍管理系统等)下面给的软件界面只是参考,同学们可以根据自己的想法进行设计。 1.软件界面美观、功能完善软件,导航清晰,操作方便,使用菜单栏、工具栏、布局管理器、按钮、表格等多种Java图形界面组件。 2.程序代码清晰,语法规范,结构合理,逻辑正确。 3.功能完善,程序代码优化,执行效率高,具有较好可维护性和可扩展性。 4.软件功能设计具有一定的难度和创意。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值