JTSTestBuilder-运行框架

nmj2086 / 2023-08-29 / 原文

 开始主类:

  /**Main method*/
  public static void main(String[] args)
  {
    try {
        readArgs(args);
        setLookAndFeel();
      app = new JTSTestBuilder();
      app.initFrame();
      
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

InitFrame

  private void initFrame()
  {
    JTSTestBuilderFrame frame = new JTSTestBuilderFrame();
    frame.setModel(model());
    
    //Validate frames that have preset sizes
    //Pack frames that have useful preferred size info, e.g. from their layout
    if (packFrame) {
      frame.pack();
    } else {
      frame.validate();
    }
    //Center the window
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    Dimension frameSize = frame.getSize();
    if (frameSize.height > screenSize.height) {
      frameSize.height = screenSize.height;
    }
    if (frameSize.width > screenSize.width) {
      frameSize.width = screenSize.width;
    }
    frame.setLocation(
        (screenSize.width - frameSize.width) / 2,
        (screenSize.height - frameSize.height) / 2);
    frame.setVisible(true);
  }

JTSTestBuilderFrame:The main frame for the JTS Test Builder.

主框架

由:JTSTestBuilderMenuBar(菜单栏)、JTSTestBuilderToolBar(工具栏)、ResultController(结果控制面板)

其它的面板控件:JPanel、BorderLayout、Border、JSplitPane、TestCasePanel、JTabbedPane、WKTPanel、InspectorPanel、TestListPanel、LayerListPanel、GridBagLayout、GridLayout、ResultWKTPanel、ResultValuePanel、StatsPanel、InfoPanel、ZoomTool。初始化如下↓

点击左侧的tab(相交分析,不知道为什么tab名叫Predicates?明明是关联分析或者叫相交分析才对啊。主要用到的模型就是九交模型吧?Intersection Matrix。。)

查找

在RelatePanel.java

结果发现,RelatePanel并没有直接加到JTSTestBuilderFrame中,而是先加到了TestCasePanel中。。然后又把testcasepanel加到了主frame中。以这种方式完成了RelatePanel的加入。