实验一 Application与Applet程序调试运行
实验目的:熟悉所用系统的上机方法与步骤。
实验内容:编写一个Java Application和一个Applet程序,输出以下信息: Hello,Java World!
1、Java Application
源程序:
//HelloWorldApp.java
import java.io.*;
public class HelloApplication
{
public static void main(String[] args)
{
System.out.println("Hello ,Java World!");
}
}
编译:javac HelloApplication.java
解释执行:java HelloApplication
试验结果:在字符界面中输出字符串:Hello ,Java World!
2、Java Applet
源程序:
import java.awt.Graphics;
import java.applet.Applet;
public class HelloWorld extends Applet
{
String s;
public void init()
{
s="Hello,Java Word!";
}
public void paint(Graphics g)
{
g.drawString(s,25,25);
}
}
该程序编译后生成HelloWorld.class文件,为了运行这个程序,需要编写一个html文件来调用它,html文件和其放在同一目录,
下面为HelloWorld.html文件的内容:
<html>
<applet code=HelloWorld.class width=250 height=250>
</applet>
</html>
编译:javac HelloWorld.java
解释执行:appletviewer HelloWorld.html
试验结果:在浏览器界面中输出字符串:Hello ,Java World!
Java网络编程课程设计
学 院:计算机与科学技术学院
专业班级:
随着网络的发展,计算机的功能越来越强大,人们对网络的也越来越依赖,聊天工具也日益普及,人们习惯了使用类似QQ 、MSN这样的网络聊天工具,运用Java知识,我们可以做一个简单的网络聊天工具,可以实现简单的聊天功能。
Java编写的聊天工具是图形界面,线程,流与文件系统等技术的综合应用。其界面主要采用了java.awt包,java.swing包以及java.util包等。程序实现了聊天室的基本功能,其中有:
1、启动服务器。
2、进入客户端界面。
3、登录聊天室。
4、发送信息(实现按回车键发送消息)。
5、关闭服务器。
在功能上,该软件采用套接字实现网络中的数据传输,尽量使用某个或某些应用层的协议实现系统的部分功能,系统设计规范合理,操作流程方便简单。
聊天系统的设计跟普通网站设计有着许多不同的地方,普通网站设计所考虑的因素,例如,普通网站需要对布局进入大量美化以及动画设计等等,而聊天室只要提供满足访客双方直接实时聊天即可。因此,在设计聊天系统的过程中,必须要考虑好以下几个设计要点:
在Internet上的聊天程序一般都是以服务器提供服务端连接响应,使用者通过客户端程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接的通信过程。因此,程序要在TCP/IP环境下,实现服务器端和客户端两部分程序。
1.首先通过继承JFrame类构造服务器界面。
2.设计客户端程序使其能够完成正常的通信功能,并且可以更改背景颜色,设置字体颜色。
3.设计侦听程序,使其显示登录的ip地址端口号,以及用户昵称,通过侦听按钮可以调用客户端程序,实现聊天功能。
聊天系统的详细设计:
界面设计:主要由类ChatRoom来实现,界面实际总体如下:输入昵称的文本框,输入IP地址的文本框以及输入端口的文本框(可设置背景色);侦听,连接的按钮(可设置字体);推出按钮;接受消息的文本域(可设置前景色);发送消息文本框;发送按钮;插入图片。
聊天室程序设计详细代码如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
import java.io.*;
import java.util.*;
public class ChatRoom extends JFrame implements ActionListener, Runnable,KeyListener
{
Image Image;
private TextArea ta;
private JTextField ip;
private JTextField port;
private JButton ss_server;
private JButton ss_client;
private JTextField send_text;
private JTextField name;
private JButton ss_send;
private JButton ss_exit;
private Socket skt;
public void keyReleased(KeyEvent f){}
public void keyPressed(KeyEvent f){
if(f.getKeyCode()== KeyEvent.VK_ENTER){
try{
PrintWriter pw = new PrintWriter(skt.getOutputStream());
String s1=name.getText();
String s = send_text.getText();
if(s==null) return;
Calendar ca= new GregorianCalendar();
int hh = ca.get(Calendar.HOUR_OF_DAY);
int mm = ca.get(Calendar.MINUTE);
int ss = ca.get(Calendar.SECOND);
String time = new String(hh + ":" + mm + ":" + ss + " ");
ta.append(time+s1+"说:"+"\n"+s+"\n");
String s3=time+s1+"说:"+"\n"+s;
pw.println(s3);
pw.flush();
send_text.setText("");
}
catch(Exception e){
ta.append("发送失败!\n");
}
}
}
public void keyTyped(KeyEvent f){}
public void run()
{
try{
BufferedReader br = new BufferedReader(new InputStreamReader(skt.getInputStream()));
while(true){
String s = br.readLine();
if(s==null) break;
ta.append(s + "\n");
}
}
catch(Exception e){
e.printStackTrace();
}
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==ss_server){
doServer();
}
if(e.getSource()==ss_client){
doClient();
}
if(e.getSource()==ss_send){
doSend();
}
if(e.getSource()==ss_exit){
doexit();
}
}
public void doServer()
{
try{
ServerSocket server = new ServerSocket(Integer.parseInt(port.getText()));
skt = server.accept();
ta.append("连接服务器成功!\n");
new Thread(this).start();
}
catch(Exception e){
ta.append("服务器启动失败!\n");
}
}
public void doClient()
{
try{
skt = new Socket(ip.getText(), Integer.parseInt(port.getText()));
ta.append("连接服务器成功!\n");
new Thread(this).start();
}
catch(Exception e){
ta.append("连接失败!\n");
}
}
public void doSend()
{
try{
PrintWriter pw = new PrintWriter(skt.getOutputStream());
String s1=name.getText();
String s = send_text.getText();
if(s==null) return;
Calendar ca= new GregorianCalendar();
int hh = ca.get(Calendar.HOUR_OF_DAY);
int mm = ca.get(Calendar.MINUTE);
int ss = ca.get(Calendar.SECOND);
String time = new String(hh + ":" + mm + ":" + ss + " ");
ta.append(time+s1+"说:"+"\n"+s+"\n");
String s3=time+s1+"说:"+"\n"+s;
pw.println(s3);
pw.flush();
send_text.setText("");
}
catch(Exception e){
ta.append("发送失败!\n");
}
}
public void doexit()
{
System.exit(0);
}
public ChatRoom()
{
Panel a1 = new Panel();
Panel a2 = new Panel();
Panel a3 = new Panel();
this.setTitle("聊天室");
this.setBounds(200,200,600,500);
Container cc = this.getContentPane();
JPanel p1 = new JPanel();
cc.add(p1, BorderLayout.NORTH);
p1.setBackground(new Color(200,200,250));
ta = new TextArea();
cc.add(ta, BorderLayout.CENTER);
JPanel p2 = new JPanel();
cc.add(p2, BorderLayout.SOUTH);
p2.setBackground(new Color(250,150,200));
ta.setForeground(new Color(0,0,250));
JLabel p3 = new JLabel(new ImageIcon("IMG0064A.jpg"));
cc.add(p3, BorderLayout.EAST);
p1.add(new JLabel("昵称:"));
name=new JTextField("",6);
p1.add(name);
name.setFont(new Font("宋体",Font.BOLD,14));
p1.add(new JLabel("IP: "));
ip = new JTextField("127.0.0.1", 15);
p1.add(ip);
p1.add(new JLabel("Port: "));
port = new JTextField("8888", 4);
p1.add(port);
ss_server = new JButton("侦听");
ss_server.setForeground(new Color(150,100,250));
ss_server.setFont(new Font("宋体",Font.BOLD,14));
p1.add(ss_server);
ss_client = new JButton("连接");
ss_client.setForeground(new Color(150,100,250));
ss_client.setFont(new Font("宋体",Font.BOLD,14));
p1.add(ss_client);
ss_exit = new JButton("退出");
ss_exit.setForeground(new Color(150,100,250));
ss_exit.setFont(new Font("宋体",Font.BOLD,14));
p1.add(ss_exit);
p2.setLayout(new BorderLayout());
p2.add(new JLabel("发送消息:"),BorderLayout.WEST);
p2.setBackground(new Color(200,200,250));
send_text = new JTextField("在?");
p2.add(send_text, BorderLayout.CENTER);
ss_send = new JButton("发送");
p2.add(ss_send, BorderLayout.EAST);
ss_exit.addActionListener(this);
send_text.addKeyListener(this);
ss_server.addActionListener(this);
ss_client.addActionListener(this);
ss_send.addActionListener(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args)
{
new ChatRoom().setVisible(true);
}
}
该代码运行的结果如截图:
该Java程序实现了基本的聊天功能,,并且还可修改自己的昵称,和退出功能,可以满足两个人之间的简单的对话功能。程序虽然有点短,也基本涵盖了课本上所学的知识,同时加深理解了课本上的知识,锻炼了自己的动手能力。
惠州学院计算机科学系网络工程专业SoftwareEngineeringLaboratoryDeptofComputerScienc…
实验一Application与Applet程序调试运行实验目的熟悉所用系统的上机方法与步骤实验内容编写一个JavaApplicat…
网络编程技术大作业修改履历目录1文档概述...41.1文档目的和范围...41.2术语/缩略语...41.3参考文档...52系统…
Java网络编程实践(基于C/S的控制台聊天室)课程设计说明书课程名称:Java网络课程实践题目:基于C/S的控制台聊天室姓名:*…
网络编程技术实验报告一实验目的网络编程技术是计算机科学与技术专业网络工程专业软件工程专业的一门专业基础课程本课程以Java技术为主…
网络编程技术实验报告一实验目的网络编程技术是计算机科学与技术专业网络工程专业软件工程专业的一门专业基础课程本课程以Java技术为主…
网络编程技术大作业修改履历目录1文档概述...41.1文档目的和范围...41.2术语/缩略语...41.3参考文档...52系统…
辽宁科技大学装备制造学院计算机网络课程设计报告题目网络聊天室的设计与实现院系装备制造学院专业计算机科学与技术班级二班姓名