基于Java Applet绘制拓扑图总结

本文介绍了如何使用Java Applet绘制拓扑图,重点在于Applet与Servlet交互实现数据访问,以及利用jgraph库创建顶点、连线和端口。在Servlet端响应GET请求,Applet端通过ObjectStream接收数据。数据库交互部分被封装,图片资源需按Java规范打包在Applet应用中。此外,详细讲解了设置顶点图标、连接规则以及数据库连接字符串的处理方式。
摘要由CSDN通过智能技术生成
文章背景:
使用Java Applet技术开发小应用程序,并最终将其部署到网页上,使其能够实现从数据库中读取节点、链路数据,并根据数据绘制拓扑图的功能。绘制图像的过程应用jgraph开源软件实现。
 
技术要点:
1、在页面上部署Java Applet应用程序,并调用jgraph.jar包

<applet archive="AppletDemo.jar,jgraph.jar" code="org/nlsde/draw/applet/AppletDemo.class" codebase="./" width="660" height="560"></applet>


在此将网页文件和AppletDemo.jar放在同一个目录下,由于需要引用第三方的jgraph.jar包,因此在archive属性中一并写上jgraph.jar

 
2、Java Applet应用程序访问数据库

由于Java Applet应用程序本身的策略限制,在默认情况下应用程序只能以http协议访问运行此Java Applet应用程序的主机;而修改策略,需要加入数字签名,并且浏览器会提示安全问题。因此在本次开发中,使用Java Applet访问Servlet的流行方法来解决读取数据库的问题。

Java Applet应用程序和Servlet进行交互,可以直接在两者间传递支持序列化的对象(Serializable)。在Servlet端,只需要响应doGet事件,并将处理结果以ObjectStream的形式返回即可:

              DefaultGraphCell[] alCells = org.nlsde.draw.data.CellHandler.getAllCells();
 
              ObjectOutputStream out = new ObjectOutputStream(response
                            .getOutputStream());
              out.writeObject(alCells);

在Java Applet端,发起数据请求和接受结果如下:

                     URL url = new URL(getCodeBase() + "/servlet/GetAllCells");
                     URLConnection urlConn = url.openConnection();
                     InputStream in = urlConn.getInputStream();
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
Java Applet 是一种在网页中嵌入 Java 程序的技术,通过使用 Java Applet 可以在网页中实现一些动态效果。下面是一个简单的 Java Applet 绘制太极图的示例代码: ```java import java.applet.*; import java.awt.*; public class Taiji extends Applet implements Runnable { int x, y, r; int angle = 0; boolean flag = true; Thread t; public void init() { x = getWidth() / 2; y = getHeight() / 2; r = Math.min(getWidth(), getHeight()) / 2 - 50; setBackground(Color.white); } public void start() { if (t == null) { t = new Thread(this); t.start(); } } public void run() { while (true) { if (flag) { angle += 5; if (angle >= 360) { angle = 0; } } else { angle -= 5; if (angle <= -360) { angle = 0; } } try { Thread.sleep(50); } catch (InterruptedException e) { e.printStackTrace(); } repaint(); } } public void stop() { if (t != null) { t = null; } } public void paint(Graphics g) { g.setColor(Color.black); g.drawOval(x - r, y - r, r * 2, r * 2); g.fillArc(x - r, y - r, r * 2, r * 2, 90 + angle / 2, -180); g.setColor(Color.white); g.fillArc(x - r, y - r, r * 2, r * 2, 90 + angle / 2, 180); g.setColor(Color.black); g.fillOval(x - r / 2, y - r, r, r); g.setColor(Color.white); g.fillOval(x - r / 2, y, r, r); } public boolean mouseDown(Event e, int x, int y) { flag = !flag; return true; } } ``` 在这个例子中,我们创建了一个名为 Taiji 的 Java Applet,通过继承 Applet 类并实现 Runnable 接口来实现动态效果。 在 init 方法中,我们初始化了太极图的圆心坐标和半径,并设置了背景颜色。 在 start 方法中,我们创建并启动了一个新的线程,在这个线程中不断更新太极图的旋转角度,并调用 repaint 方法重新绘制太极图。 在 run 方法中,我们使用一个循环来不断更新太极图的旋转角度。当 flag 为 true 时,太极图顺时针旋转;当 flag 为 false 时,太极图逆时针旋转。我们通过调用 Thread.sleep 方法来控制更新速度。 在 paint 方法中,我们绘制了太极图的两个半圆和两个小圆。我们使用 setColor 方法设置颜色,使用 drawOval 和 fillOval 方法绘制圆形,使用 fillArc 方法绘制半圆形。 在 mouseDown 方法中,我们处理了鼠标单击事件,将 flag 取反以改变太极图的旋转方向。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值