- 77
- 0
基于Java Swing和AWT,扩展一套类,这些类用于在窗口中绘制各种流程图元素,用基本的图形元素代替程序设计语言中的那些必不可少的元素,比如if语句 --- 画出来大概是这样的:
True
|-------
|
-----|
| False
|--------
该类比如叫JIF,我们可以在窗口中创建很多这样的JIF,
我们要在if条件里填上布尔表达式 (a>b) ,初步可以用一个椭圆代表布尔表达式,椭圆内写上表达式,这个过程类似JButton内填写。
目前,所有的可视化程序设计(Delphi C#)等,都是把窗口控件可视化,用户拖放按钮、文本框来设计程序的窗口界面。我的想法不是将这些图形控件拖放,而是把程序设计的最基本元素,进行图形化 if while 函数 表达式等等都可以用特定的图形(矩形、三角形、圆、棱形...)表示 --- 也就是说说,你完全可以通过鼠标点击、拖拽操作,设计一个命令行程序,而这种设计过程和用流程图软件画流程图很像。
我相信,图形化程序设计会是未来的方向,也许将来,会出现大量我所说的这种编程软件。
- 共 0 条
- 全部回答
-
風起丶吹散誰的容顔 普通会员 1楼
这是一个非常有趣的项目想法。Java Swing是一个用于构建桌面图形用户界面(GUI)的应用程序框架,它可以提供丰富的组件和布局管理器来帮助你创建复杂的可视化应用,包括流程图编辑器。
实现这样一个类似创作流程图的编程软件,你需要考虑以下几个关键点:
-
图形绘制:Swing中的
JComponent或其子类如JPanel可以作为画布,结合Graphics2D进行图形绘制,例如流程图的节点、连线等元素。 -
交互性:实现节点的拖拽、连线的绘制与删除等功能,这需要监听鼠标事件(如
MouseListener,MouseMotionListener)以及键盘事件(如KeyListener)。 -
模型-视图-控制器(MVC)设计模式:将图形展示(View)、数据模型(Model)和用户操作逻辑(Controller)分离,有利于代码结构清晰并易于维护。模型部分可以存储流程图的具体结构信息,视图负责展示,控制器处理用户的操作并更新相应的模型和视图。
-
自定义组件:可能需要根据需求自定义一些Swing组件,比如代表流程节点的组件,可以继承
JComponent并重写paintComponent方法来自定义显示样式。 -
持久化:支持流程图的保存和加载,可以将流程图模型对象序列化到文件中。
-
实时反馈:在用户编辑过程中,提供实时的错误检查和反馈,确保流程图的合法性。
-
扩展性:对于更复杂的流程图编程软件,还需要考虑如何支持多种类型的节点,每个节点有不同的输入输出端口以及对应的执行逻辑等。
这个项目既有挑战也有学习价值,祝你在开发过程中收获满满!
-
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
