首页/文章/ 详情

STAR CCM+二次开发|05 利用JFormDesigner进行GUI开发

1年前浏览876

本文描述在IDEA中利用JFormDesinger进行STAR CCM+二次开发的基本流程。

JFormDesign是IDEA中用于构建GUI界面的插件,其处理GUI界面的方式与NetBeans类似,比IDEA原生GUI处理方式更方便。

1 开发过程

1.1 构建GUI界面

  • 启动IDEA,如下图所示新建Project,命名为MacroTest
  • 鼠标右键点击模型树节点src,选择弹出菜单项New → JFormDesigner Form
  • 在弹出的对话框中,如下图所示创建新的窗口,命名为CreateGeomForm
  • 利用控件构建如下图所示的界面
 
  • 指定控件管道长度输入框、管道半径输入框及创建几何按钮的名称JTextField_PipeLengthJTextField_PipeRadiusJButton_CreateGeometry
  • 鼠标右键选中创建几何按钮,选择弹出菜单项Add Event Handler → ActionListener-actionPerformed...
  • 如下图所示,在弹出对话框中添加处理函数JButton_CreateGeometry

1.2 添加库

  • 点击菜单File → Project Structure...打开设置对话框
  • 打开Global Libraries,右键选择STAR CCM2302,点击菜单项Add to Modules...
  • 选择将库添加到模块中
  • 进入Modules设置,如下图所示,勾选STAR CCM2302前面的复选框添加库

1.3 GUI编程

1. 创建构造函数

采用外部启动窗体的形式,这里创建一个带参数的构造函数。

添加的内容包括:

import star.common.*;

private Simulation sim = null;
public CreateGeomForm(Simulation simLocal){
   initComponents();
   this.sim = simLocal;
}

完毕后的代码如下图所示。

2、创建功能函数

新建函数createPipe,其带有两个参数radius及length。

createPipe中的内容来自于STAR CCM+的macro录制,。同时需要进行以下修改:

  • 将录制的代码中管道半径及长度用变量radius及length进行替代
  • 将代码中的所有simulation_0替换为this.sim
  • 注释掉或直接删除Simulation this.sim = getActiveSimulation();
privite void createPipe(double radius, double length){
     ...
   //创建半径为radius的圆
   RadiusDimension radiusDimension_0 =
     sketch_0.createRadiusDimension(circleSketchPrimitive_0, radius, units_0);
     ...
   //设置拉伸长度为length
  extrusionMerge_0.getDistance().setValue(length,units_0);
   ...
}

3、修改JButton_CreateGeometry函数

此函数为点击按钮创建几何的响应事件,此按钮中读取两个输入框中的数据,并调用createPipe函数创建几何模型。

函数内容为:

private void JButton_CreateGeometry(ActionEvent e) {
   double radius;
   double length;

   try {
       radius = Double.parseDouble(JTextField_PipeRadius.getText());
   } catch (NumberFormatException ex) {
       radius = 0.01;
   }

   try {
       length = Double.parseDouble(JTextField_PipeLength.getText());
   } catch (NumberFormatException ex) {
       length = 0.1;
   }
   createPipe(radius, length);

   //自动关闭窗口
   this.dispose();
}

1.4 添加启动程序

启动程序用于显示窗体。

  • 右键选择节点src,点击弹出菜单项New → Java Class创建新类
  • 指定新的类名称为RunMacro
  • 输入以下程序代码
import star.common.Simulation;
import star.common.StarMacro;

import javax.swing.*;

public class RunMacro extends StarMacro {
   @Override
   public void execute() {
       Simulation sim = getActiveSimulation();
       CreateGeomForm form = new CreateGeomForm(sim);
       form.setVisible(true);
       form.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
   }
}

1.5 测试

  • 启动STAR CCM+,新建一个工程文件
  • 选择菜单Tool> Options,选择Environment,设置User Macro ClassPath为前面创建工程的路径,如下图所示,点击Close按钮关闭对话框
  • 选择启动宏按钮,选择宏文件RunMacro.java,运行结果如图所示。
  • 点击按钮创建几何,程序自动生成几何模型

利用JFormDesign的开发方式与NetBean基本一致,且中文界面不会出现乱码。


(完)


来源:CFD之道
二次开发
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-05-31
最近编辑:1年前
CFD之道
博士 | 教师 探讨CFD职场生活,闲谈CFD里外
获赞 2586粉丝 11538文章 760课程 27
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈