JAVA图形用户界面及网络编程.docx

上传人:b****5 文档编号:5626990 上传时间:2022-12-29 格式:DOCX 页数:18 大小:75.05KB
下载 相关 举报
JAVA图形用户界面及网络编程.docx_第1页
第1页 / 共18页
JAVA图形用户界面及网络编程.docx_第2页
第2页 / 共18页
JAVA图形用户界面及网络编程.docx_第3页
第3页 / 共18页
JAVA图形用户界面及网络编程.docx_第4页
第4页 / 共18页
JAVA图形用户界面及网络编程.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

JAVA图形用户界面及网络编程.docx

《JAVA图形用户界面及网络编程.docx》由会员分享,可在线阅读,更多相关《JAVA图形用户界面及网络编程.docx(18页珍藏版)》请在冰豆网上搜索。

JAVA图形用户界面及网络编程.docx

JAVA图形用户界面及网络编程

 

北华大学开放实习报告

 

实验项目名称JAVA图形用户界面及网络编程

所属课程名称面向对象程序设计——JAVA

实验类型验证性

实验日期2013.10.16

班级信息11-2

学号34号

姓名

成绩

 

【实验题目名称】:

JAVA图形用户界面家网络编程

【实验目的与要求】:

(1)目的

1、熟悉Swing的基本组件,包括文本输入框、多行文本输入框、按钮、列表框等多种布局方式,掌握窗口菜单和快捷菜单设计方式;

2、理解委托时间处理模型,掌握不同组件、不同事件的事件处理方法,设计出能够响应事件的Java图形用户界面。

3、熟悉常用的布局管理器

4、了解GUI图像用户界面的设计方法

5、掌握Java组件的事件处理机制

6、熟悉在组件上绘图的方法。

(2)要求

1、学生应做到独立上机操作

2、编程前应将程序的设计构想完成,主要包括所要创建的类的结构及属性和行为。

3、上机输入和调试自己所编的程序,并存在自己的软盘上。

4、检查实验结果是否正确。

5、上机结束后,写出实验报告,要求附运行界面、源代码。

实验报告中应对实验结果进行

分析,尤其是针对错误输出的分析

 

【实验环境】:

PC机一台

JDK1-6

Eclipse开发环境

【实验原理及方案设计】:

图形用户界面(GraphicsUserInterface,GUI)为应用程序提供了一个图形化的界面。

GUI使用图形的方式,借助菜单,按钮等标准界面元素和鼠标操作,帮助用户方便的向计算机系统发出命令、启动操作,并将系统运行的结果同样以图形的方式显示给用户。

在Java2DAPI中,各种文字都是意图形的方式输出。

以图形的方式绘制文字需要使用Graphics类和Graphics2D类提供的绘制文字的成员方法。

Color类定义了许多个有颜色的常量和成员方法供编程中使用。

不论使用哪种构造方法来创建Color对象,都需要制定新建颜色中的R(红)、G(绿)、B(蓝)三色的比例。

Java.awt包中共定义了五种布局管理器类,分别是BoderLayout、FlowLayout、CardLayout和GridBagLayout。

这五个类都是java.lang.Object类的直接子类,且每个布局管理其对应一种布局策略。

Javax.swing包中定义了4种布局管理器,分别是BoxLayout、ScrollPaneLayout、ViewportLayout和OverlayLayout。

【实验过程】:

(实验步骤、记录、数据、分析)

1、实验步骤:

新建工程

新建类

输入源程序

保存并编译java

运行java应用程序

2、实验内容、源代码及运行结果:

1)、获取主机IP地址

importjavax.swing.*;

importjava.applet.Applet;

importjava.awt.*;

importjava.awt.event.*;

importjava.util.*;

import.*;

publicclasstimu1extendsJAppletimplementsActionListener

{

Containercp=getContentPane();

JLabellb1=newJLabel("IPI地址:

",JLabel.CENTER);

JTextFieldtf1=newJTextField(20);

JButtonbt1=newJButton("获取IP地址");

JButtonbt2=newJButton("退出系统");

StringIP=null;

publicvoidinit()

{

cp.setLayout(newFlowLayout());

cp.add(lb1);

cp.add(tf1);

cp.add(bt1);

bt1.addActionListener(this);

cp.add(bt2);

bt2.addActionListener(this);

}

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==bt1)

{

try

{

InetAddressia=InetAddress.getLocalHost();

IP=ia.getHostAddress();

}

catch(UnknownHostExceptiong)

{g.printStackTrace();}

tf1.setText(IP);

}

}

}

运行结果:

2、创建URL对象

importjava.awt.*;

importjavax.swing.*;

importjava.awt.event.*;

import.InetAddress;

import.UnknownHostException;

import.MalformedURLException;

import.URL;

publicclassurllextendsJFrameimplementsActionListener

{

staticURLmyURL=null;

Containerctp=getContentPane();

Fontfont;

JTextFieldtf1=newJTextField(10);

JLabellb=newJLabel("网页地址");

JButtonjb=newJButton("验证");

urll()

{

font=newFont("宋体",Font.BOLD,10);

ctp.setLayout(newFlowLayout());

lb.setFont(font);

lb.setForeground(newColor(0,0,150));

ctp.add(lb,BorderLayout.CENTER);

ctp.add(tf1,BorderLayout.SOUTH);

ctp.add(jb,BorderLayout.NORTH);

jb.addActionListener(this);

setSize(300,150);

setVisible(true);

}

publicstaticvoidmain(String[]args)throwsMalformedURLException{

urllcc=newurll();

myURL=newURL("http:

//netbeans.org/docs/java/quickstart.html");

}

publicvoidactionPerformed(ActionEvente)

{

Stringrbt=e.getActionCommand();

if("验证"==rbt)

{

tf1.setText(myURL.toString());

}

}

}

运行结果:

3、获取URL的端口

import.MalformedURLException;

import.URL;

publicclassa

{

publicstaticvoidmain(Stringargs[])

{

URLMyURL=null;

try

{

MyURL=newURL("");

}

catch(MalformedURLExceptione)

{

System.out.println("MalformedURLException:

"+e);}

System.out.println("请输入一个完整的网址:

\n"+MyURL.toString());

System.out.println("这个网址使用的端口号是:

"+MyURL.getPort());

}

}

运行结果:

4、提取URL协议名称

import.MalformedURLException;

import.URL;

publicclassc151

{

publicstaticvoidmain(Stringargs[])

{

URLMyURL=null;

try

{

MyURL=newURL("");

}

catch(MalformedURLExceptione)

{

System.out.println("MalformedURLException:

"+e);}

System.out.println("请输入一个完整的网址:

\n"+MyURL.toString());

System.out.println("这个网址的主机名是:

"+MyURL.getHost());

System.out.println("这个网址的URL协议名:

"+MyURL.getProtocol());

}

}

运行结果:

5、设置连接超时

importjava.awt.BorderLayout;

importjava.io.IOException;

import.ServerSocket;

import.SocketTimeoutException;

importjavax.swing.JFrame;

importjavax.swing.JOptionPane;

importjavax.swing.JScrollPane;

importjavax.swing.JTextArea;

publicclasschaoshilianjieextendsJFrame{

privatestaticfinallongserialVersionUID=1L;

privateServerSocketserver;

privateJTextAreajt;

publicstaticvoidmain(String[]args){

chaoshilianjieframe=newchaoshilianjie();

frame.setVisible(true);

frame.getserver();

}

publicchaoshilianjie(){

setTitle("连接超时");

setBounds(350,200,300,200);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JScrollPanejs=newJScrollPane();

getContentPane().add(js,BorderLayout.CENTER);

jt=newJTextArea();

js.setViewportView(jt);

}

publicvoidgetserver(){

try{

server=newServerSocket(1880);

server.setSoTimeout(10000);

jt.append("服务器套接字已经创建成功\n");

while(true){

jt.append("等待与各户连接……\n");

server.accept();

}

}catch(SocketTimeoutExceptione){

jt.append("连接超时");

JOptionPane.showMessageDialog(null,"连接超时……");

System.exit(9);

}catch(IOExceptione){

e.printStackTrace();

}

}

}

运行结果:

6、单向通讯

7、使用Socket传输图片

importjava.awt.EventQueue;

importjavax.swing.JFrame;

importjavax.swing.JPanel;

importjavax.swing.border.EmptyBorder;

importjavax.swing.UIManager;

importjavax.swing.GroupLayout;

importjavax.swing.GroupLayout.Alignment;

importjavax.swing.JLabel;

importjavax.swing.JTextField;

importjavax.swing.LayoutStyle.ComponentPlacement;

importjavax.swing.JButton;

importjava.awt.Font;

publicclassdanextendsJFrame{

privatestaticfinallongserialVersionUID=-7271269958119825302L;

privateJPanelcontentPane;

privateJTextFieldtextField;

privateJTextFieldtextField_1;

privateJTextFieldtextField_2;

publicstaticvoidmain(String[]args){

EventQueue.invokeLater(newRunnable(){

publicvoidrun(){

try{

danframe=newdan();

frame.setVisible(true);

}catch(Exceptione){

e.printStackTrace();

}

}

});

}

publicdan(){

setBackground(UIManager.getColor("Button.disabledForeground"));

setForeground(UIManager.getColor("Button.shadow"));

setTitle("\u670D\u52A1\u5668\u7AEF\u7A0B\u5E8F");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setBounds(100,100,450,126);

contentPane=newJPanel();

contentPane.setBorder(newEmptyBorder(5,5,5,5));

setContentPane(contentPane);

JLabellblNewLabel=newJLabel("\u8DEF\u5F84\uFF1A");

lblNewLabel.setFont(newFont("隶书",Font.BOLD,16));

textField=newJTextField();

textField.setColumns(10);

JButtonbtnNewButton=newJButton("\u9009\u62E9\u56FE\u7247");

btnNewButton.setBackground(UIManager.getColor("ComboBox.selectionBackground"));

btnNewButton.setFont(newFont("隶书",Font.BOLD,16));

JButtonbtnNewButton_1=newJButton("\u53D1\u9001");

btnNewButton_1.setBackground(UIManager.getColor("ComboBox.selectionBackground"));

btnNewButton_1.setFont(newFont("隶书",Font.BOLD,16));

textField_1=newJTextField();

textField_1.setText("\u670D\u52A1\u5668\u7AEF\u9009\u62E9\u7684\u8981\u53D1\u9001\u7684\u56FE\u7247");

textField_1.setBackground(UIManager.getColor("ComboBox.disabledBackground"));

textField_1.setColumns(10);

textField_2=newJTextField();

textField_2.setText("\u63A5\u6536\u5230\u5BA2\u6237\u7AEF\u53D1\u9001\u7684\u56FE\u7247");

textField_2.setBackground(UIManager.getColor("ComboBox.disabledBackground"));

textField_2.setColumns(10);

GroupLayoutgl_contentPane=newGroupLayout(contentPane);

gl_contentPane.setHorizontalGroup(

gl_contentPane.createParallelGroup(Alignment.LEADING)

.addGroup(gl_contentPane.createSequentialGroup()

.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)

.addGroup(gl_contentPane.createSequentialGroup()

.addComponent(lblNewLabel)

.addPreferredGap(ComponentPlacement.RELATED)

.addComponent(textField,GroupLayout.PREFERRED_SIZE,113,GroupLayout.PREFERRED_SIZE)

.addPreferredGap(ComponentPlacement.UNRELATED)

.addComponent(btnNewButton)

.addGap(18)

.addComponent(btnNewButton_1))

.addGroup(gl_contentPane.createSequentialGroup()

.addComponent(textField_1,GroupLayout.PREFERRED_SIZE,186,GroupLayout.PREFERRED_SIZE)

.addGap(18)

.addComponent(textField_2,GroupLayout.PREFERRED_SIZE,159,GroupLayout.PREFERRED_SIZE)))

.addContainerGap(60,Short.MAX_VALUE))

);

gl_contentPane.setVerticalGroup(

gl_contentPane.createParallelGroup(Alignment.LEADING)

.addGroup(gl_contentPane.createSequentialGroup()

.addContainerGap()

.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)

.addComponent(lblNewLabel)

.addComponent(textField,GroupLayout.PREFERRED_SIZE,GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE)

.addComponent(btnNewButton_1)

.addComponent(btnNewButton))

.addPreferredGap(ComponentPlacement.RELATED,20,Short.MAX_VALUE)

.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)

.addComponent(textField_1,GroupLayout.PREFERRED_SIZE,GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE)

.addComponent(textField_2,GroupLayout.PREFERRED_SIZE,GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE)))

);

contentPane.setLayout(gl_contentPane);

}

}

运行结果:

程序代码:

importjava.awt.EventQueue;

importjavax.swing.JFrame;

importjavax.swing.JPanel;

importjavax.swing.border.EmptyBorder;

importjavax.swing.GroupLayout;

importjavax.swing.GroupLayout.Alignment;

importjavax.swing.JLabel;

importjava.awt.Font;

importjavax.swing.JTextField;

importjavax.swing.LayoutStyl

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1