Java实验报告-4- 事件处理和图形化用户界面

时间:2024.4.29

Java实验报告

Java实验报告4事件处理和图形化用户界面

1

2

Java实验报告4事件处理和图形化用户界面

3

Java实验报告4事件处理和图形化用户界面

Java实验报告4事件处理和图形化用户界面

4

Java实验报告4事件处理和图形化用户界面

5

6

Java实验报告4事件处理和图形化用户界面


第二篇:java实验报告实验六Java图形用户界面


信 息 工 程 学 院

Java程序设计 实习报告

JAVA图形用户界面

实验六Java图形用户界面

1.实验目的

(1)掌握图形用户界面基本组件。

(2)了解如何使用布局管理器对组件进行管理。

(3)掌握Java事件处理机制。

2.实验内容

实验题1 编写一个模拟计算器的程序,使用面板和网格布局,添加一个文本框,10个数字按钮(0-9),4个加减乘除按钮,一个等号按钮,一个清除按钮,要求将计算公式和结果显示在文本框中。

运行结果:

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

实验报告的内容与格式按任课教师的要求书写。

加法:

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

主要代码:

private void initComponents() {

setStub(null); 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();

jButton1.setText("3"); jButton1.addActionListener(new java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

jButton2.setText("1"); jButton2.addActionListener(new }); } jButton1ActionPerformed(evt); java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

jButton3.setText("5"); jButton3.addActionListener(new }); } jButton2ActionPerformed(evt); java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

jButton4.setText("2"); jButton4.addActionListener(new }); } jButton3ActionPerformed(evt); java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

jButton5.setText("6"); }); } jButton4ActionPerformed(evt);

jButton5.addActionListener(new java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

jButton6.setText("8"); jButton6.addActionListener(new }); } jButton5ActionPerformed(evt); java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

jButton7.setText("4"); jButton7.addActionListener(new }); } jButton6ActionPerformed(evt); java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

jButton8.setText("7"); jButton8.addActionListener(new }); } jButton7ActionPerformed(evt); java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

jButton9.setText("0"); jButton9.addActionListener(new }); } jButton8ActionPerformed(evt); java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

jButton10.setText("9"); jButton10.addActionListener(new }); } jButton9ActionPerformed(evt); java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

jButton11.setText("\u00f7"); jButton11.addActionListener(new }); } jButton10ActionPerformed(evt); java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

jButton12.setText("\u00d7"); jButton12.addActionListener(new }); } jButton11ActionPerformed(evt); java.awt.event.ActionListener() {

public void

actionPerformed(java.awt.event.ActionEvent evt) {

jButton13.setText("-"); jButton13.addActionListener(new }); } jButton12ActionPerformed(evt); 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) {

jButton15.setText("="); jButton15.addActionListener(new }); } jButton14ActionPerformed(evt);

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中放置一个标签用来显示一些信息。运行结果如图所示。

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

图3.8 运行结果图

[基本要求] 编写完整程序。

运行结果:

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

主要代码:

private JLabel[] buttonDay = new JLabel[42]; private JButton[] buttonWeek = new JButton[7]; 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++) {

buttonWeek[i] = new JButton();

buttonWeek[i].setText(stringWeekCn[i]);

pCenter.add(buttonWeek[i]);

}

for (int i = 0; i < 42; i++) {

buttonDay[i] = new JLabel();

buttonDay[i].setText(" ");

pCenter.add(buttonDay[i]);

}

实验题3 实现如图3.9所示的布局方式

功能:前两个文本框输入整型数据。第三个文本框存放前两个文本框数据之和。 要求如下:

第一个文本框的数据是[100,200],如果超出该范围弹出对话框提示用户。弹出提示对话框的时刻是光标离开第一个文本框时。

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

图3.9 求和

运行结果:

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

检验输入数据范围:

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

主要代码:

class MouseHander extends MouseAdapter

{

public 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(number<100||number>200)

{

int type=JOptionPane.ERROR_MESSAGE;

JOptionPane.showMessageDialog(null,new String("输入数字必须在100~200之间"),"提示", 2);

}

}

}

实验题4 编写一个显示图像文件的Application应用程序,在该程序JFrame窗体中添加JPanel面板和一个JToolBar工具栏,在工具栏上添加一个JButton“打开”按扭,单击“打开”按纽,弹出JFileChooser文件打开选择对话框,选择图像文件后将其显示在JPnel面板中。

运行结果:

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

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

主要代码:

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) { } public NewJFrame() { } private void initGUI() { setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); { jPanel1 = new JPanel(true); FlowLayout jPanel1Layout = new FlowLayout(); getContentPane().add(jPanel1, try { super(); initGUI(); SwingUtilities.invokeLater(new Runnable() { }); public void run() { } NewJFrame inst = new NewJFrame(); inst.setLocationRelativeTo(null); inst.setVisible(true); 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 here }

e.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(); //取得选中的文件

} } } 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); filePath = selectedFile.getPath(); filePath = filePath.replace('\\','/');

实验题5使用SWT技术完成图3.10 所示图形界面的制作。要求“查询结果”用group组件。

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

图3.10 数据查询界面

运行结果

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

;

主要代码: public class Search extends org.eclipse.swt.widgets.Composite {

public Search(Composite parent, int style) { super(parent, style); { } //Register as a resource user - SWTResourceManager will //handle the obtaining and disposing of resources SWTResourceManager.registerResourceUser(this); 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;

} /** 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("\u67e5\u8be2\u7ed3\u679c");

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("\u5b66\u53f7\uff1a");

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("\u59d3\u540d\uff1a");

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("\u5e74\u9f84\uff1a");

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(); 10; 15;

FormData composite2LData = new

composite2Layout.verticalSpacing =

composite2Layout.numColumns = 2; composite2Layout.marginLeft = 40; composite2Layout.horizontalSpacing =

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("\u8bf7\u8f93\u5165\u5b66\u53f7\uff1a");

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(); 27;

button1LData.widthHint = 70; button1LData.heightHint =

button1.setLayoutData(button1LData);

button1.setText("\u786e\u5b9a");

} {

button2 = new

Button(composite2, SWT.PUSH | SWT.CENTER);

GridData button2LData = new GridData();

27;

button2LData.widthHint = 78; button2LData.heightHint = button2.setLayoutData(button2LData); button2.setText("\u91cd\u7f6e"); } /** * 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(); } this.layout(); } } } catch (Exception e) { } e.printStackTrace(); } 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所示学籍管理主界面的设计与制作。

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

图3.11学籍管理主界面

运行结果:

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

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

主要代码:

public class Example {

}

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); public static void main(String[] args) { } Window win=new Window("学籍管理系统",300,200,500,500);

} } 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所示用户登录界面。

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

图3.12 用户登录窗体

运行结果:

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

主要代码:

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) { } 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);} 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);

实验总结:

按照实验要求,在本次实验中我需要掌握图形用户界面基本组件,了解如何使用布局管理器对组件进行管理,掌握Java事件处理机制。

在实验过程中我遇到了一些问题,首先是在软件的配置上,SWT组件的运用,因为对拖放设计界面不熟悉,所以在操作起来很慢。还有在事件监听处理上,尤其是在写计算器那个题目时问题比较多,通过同学的帮助最终还是解决了这个问题。

通过这次试验,我还是收获了很多东西。尤其是像在图形界面设计中,我们更应该多动手实际操作,这样才可以熟练,高效的完成任务。

Very good!

2012-06-13

更多相关推荐:
java实验报告完整版

实验报告计算机与信息工程学院实验中心学期20xx20xx课程名称Java程序设计实验班级信息1202姓名方逸梅学号1212100231指导老师费玉莲1Java程序设计独立实验教学安排一实验的教学方式安排及实验环...

Java实验报告

Java语言程序设计实验报告实验序号3一实验目的及要求1进一步熟练Java语法和常用方法的使用2进一步熟练Java程序结构3进一步提高算法设计与实现的能力4为后续章节的学习打下坚实的基础二实验设备环境实验室计算...

Java实验报告

JAVA课程标准实验报告学号1040501211姓名陈嘉生江苏科技大学计算机科学与工程学院基础部1实验一流程控制语句一实验目的1234二实验内容1安装开发环境JDK2编写一个JAVA应用程序在输出窗口显示quo...

Java语言基础实验报告

浙江大学城市学院实验报告课程名称面向对象程序设计实验项目名称Java语言基础实验学生姓名专业班级学号一实验目的和要求1掌握Java语言的基本数据类型字符串数组2掌握Java语言的运算符表达式语句3能够编写Jav...

java实验报告书3

浙江理工大学Java程序设计实验报告20xx20xx学年第二学期学院班级姓名学号任课教师信息学院11数字媒体技术2周咪咪20xx329700214宋瑾钰上课时间周二三四节数字媒体技术专业20xx年5月12345...

五子棋Java实验报告

五子棋JAVA实验报告一实验目的和要求1能够用编程语言实现一个简单的五子棋程序2在实际系统中使用实现人工智能的相关算法3进一步加深对人工智能算法的理解二五子棋的基本常识与原理1五子棋的起源五子棋是一种两人对弈的...

java实验报告11

实验报告20xx20xx学年第2学期课程名称JAVA程序设计实验名称字符串和正则表达式实验时间20xx年5月28日指导单位计算机学院软件学院软件工程系指导教师周莉学生姓名班级学号学院系计算机软件学专业计算机科学...

java实验报告4

广东工业大学实验报告学院专业班学号姓名成绩评定一实验目的1学习类的成员变量和成员方法的声明格式2学习java对象的创建和调用3学习参数传递4学习类的私有成员的定义访问方法已经共有成员的定义5理解类的构造方法构造...

Java实验报告1

Java实验报告

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

信息工程学院Java程序设计实习报告JAVA图形用户界面实验六Java图形用户界面1实验目的1掌握图形用户界面基本组件2了解如何使用布局管理器对组件进行管理3掌握Java事件处理机制2实验内容实验题1编写一个模...

java实验九

Java语言程序设计实验报告九张鑫20xx1225实验名称实验日期Java数据流编程指导教师电子商务班级电子商务1302李鸿儒专业姓名

java实验报告类构造函数与继承

课程名称Java程序设计成绩评定实验项目名称实验5类构造函数与继承指导教师学生姓名学号专业班级实验项目类型基础实验地点验时间一实验目的与要求1理解类和对象的区别掌握构造函数的使用熟悉通过对象名引用实例的方法和属...

java 实验报告(27篇)