账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    我在思考用Java Swing做一套可视化(类似创作流程图)编程软件
    77
    0

    基于Java Swing和AWT,扩展一套类,这些类用于在窗口中绘制各种流程图元素,用基本的图形元素代替程序设计语言中的那些必不可少的元素,比如if语句 --- 画出来大概是这样的:

            True
         |-------
         |
    -----|
         |  False
         |--------
         

    该类比如叫JIF,我们可以在窗口中创建很多这样的JIF,

    我们要在if条件里填上布尔表达式 (a>b) ,初步可以用一个椭圆代表布尔表达式,椭圆内写上表达式,这个过程类似JButton内填写。

    目前,所有的可视化程序设计(Delphi C#)等,都是把窗口控件可视化,用户拖放按钮、文本框来设计程序的窗口界面。我的想法不是将这些图形控件拖放,而是把程序设计的最基本元素,进行图形化 if while 函数 表达式等等都可以用特定的图形(矩形、三角形、圆、棱形...)表示 --- 也就是说说,你完全可以通过鼠标点击、拖拽操作,设计一个命令行程序,而这种设计过程和用流程图软件画流程图很像。

    我相信,图形化程序设计会是未来的方向,也许将来,会出现大量我所说的这种编程软件。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 这是一个非常有趣的项目想法。Java Swing是一个用于构建桌面图形用户界面(GUI)的应用程序框架,它可以提供丰富的组件和布局管理器来帮助你创建复杂的可视化应用,包括流程图编辑器。

      实现这样一个类似创作流程图的编程软件,你需要考虑以下几个关键点:

      1. 图形绘制:Swing中的JComponent或其子类如JPanel可以作为画布,结合Graphics2D进行图形绘制,例如流程图的节点、连线等元素。

      2. 交互性:实现节点的拖拽、连线的绘制与删除等功能,这需要监听鼠标事件(如MouseListenerMouseMotionListener)以及键盘事件(如KeyListener)。

      3. 模型-视图-控制器(MVC)设计模式:将图形展示(View)、数据模型(Model)和用户操作逻辑(Controller)分离,有利于代码结构清晰并易于维护。模型部分可以存储流程图的具体结构信息,视图负责展示,控制器处理用户的操作并更新相应的模型和视图。

      4. 自定义组件:可能需要根据需求自定义一些Swing组件,比如代表流程节点的组件,可以继承JComponent并重写paintComponent方法来自定义显示样式。

      5. 持久化:支持流程图的保存和加载,可以将流程图模型对象序列化到文件中。

      6. 实时反馈:在用户编辑过程中,提供实时的错误检查和反馈,确保流程图的合法性。

      7. 扩展性:对于更复杂的流程图编程软件,还需要考虑如何支持多种类型的节点,每个节点有不同的输入输出端口以及对应的执行逻辑等。

      这个项目既有挑战也有学习价值,祝你在开发过程中收获满满!

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部