如何将NetBeans表单及其类转换为IntelliJ IDEA表单编辑器中可用的东西?

时间:2022-10-30 14:54:49

I apologize for perhaps naive question but I couldn't find an answer online.

我很抱歉这个问题可能很幼稚,但我在网上找不到答案。

I've got some UI code that was created in NetBeans. Unfortunately I don't know what version was used. My understanding is that IntelliJ IDEA (v11 in my case) doesn't support NetBeans forms.

我有一些在NetBeans中创建的UI代码。不幸的是,我不知道用的是什么版本。我的理解是IntelliJ IDEA(在我的例子中是v11)不支持NetBeans表单。

Can I convert the form to something usable in IDEA's form editor ? Content of form's XML file looks lie this:

我可以将表单转换为IDEA的表单编辑器吗?表单XML文件的内容如下:

<?xml version="1.1" encoding="UTF-8" ?>

<Form version="1.3" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
  <NonVisualComponents>
    <Component class="javax.swing.JLabel" name="jLabel3">
      <Properties>
        <Property name="text" type="java.lang.String" value="jLabel3"/>
      </Properties>
    </Component>
    <Menu class="javax.swing.JMenuBar" name="menuBar">
      <SubComponents>
        <Menu class="javax.swing.JMenu" name="fileMenu">
          <Properties>
            <Property name="mnemonic" type="int" value="102"/>
            <Property name="text" type="java.lang.String" value="File"/>
          </Properties>
          <SubComponents>
            <MenuItem class="javax.swing.JMenuItem" name="openMenuItem">
              <Properties>
                <Property name="mnemonic" type="int" value="111"/>
                <Property name="text" type="java.lang.String" value="Open"/>
              </Properties>
            </MenuItem>
            <MenuItem class="javax.swing.JMenuItem" name="saveMenuItem">
              <Properties>
                <Property name="mnemonic" type="int" value="115"/>
                <Property name="text" type="java.lang.String" value="Save"/>
              </Properties>
            </MenuItem>
            <MenuItem class="javax.swing.JMenuItem" name="saveAsMenuItem">
              <Properties>
                <Property name="mnemonic" type="int" value="97"/>
                <Property name="text" type="java.lang.String" value="Save As ..."/>
                <Property name="displayedMnemonicIndex" type="int" value="5"/>
              </Properties>
            </MenuItem>
            <MenuItem class="javax.swing.JMenuItem" name="exitMenuItem">
              <Properties>
                <Property name="mnemonic" type="int" value="120"/>
                <Property name="text" type="java.lang.String" value="Exit"/>
              </Properties>
              <Events>
                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="exitMenuItemActionPerformed"/>
              </Events>
            </MenuItem>
          </SubComponents>
        </Menu>
        <Menu class="javax.swing.JMenu" name="editMenu">
          <Properties>
            <Property name="mnemonic" type="int" value="101"/>
            <Property name="text" type="java.lang.String" value="Edit"/>
          </Properties>
          <SubComponents>
            <MenuItem class="javax.swing.JMenuItem" name="cutMenuItem">
              <Properties>
                <Property name="mnemonic" type="int" value="116"/>
                <Property name="text" type="java.lang.String" value="Cut"/>
              </Properties>
            </MenuItem>
            <MenuItem class="javax.swing.JMenuItem" name="copyMenuItem">
              <Properties>
                <Property name="mnemonic" type="int" value="121"/>
                <Property name="text" type="java.lang.String" value="Copy"/>
              </Properties>
            </MenuItem>
            <MenuItem class="javax.swing.JMenuItem" name="pasteMenuItem">
              <Properties>
                <Property name="mnemonic" type="int" value="112"/>
                <Property name="text" type="java.lang.String" value="Paste"/>
              </Properties>
            </MenuItem>
            <MenuItem class="javax.swing.JMenuItem" name="deleteMenuItem">
              <Properties>
                <Property name="mnemonic" type="int" value="100"/>
                <Property name="text" type="java.lang.String" value="Delete"/>
              </Properties>
            </MenuItem>
          </SubComponents>
        </Menu>
        <Menu class="javax.swing.JMenu" name="helpMenu">
          <Properties>
            <Property name="mnemonic" type="int" value="104"/>
            <Property name="text" type="java.lang.String" value="Help"/>
          </Properties>
          <SubComponents>
            <MenuItem class="javax.swing.JMenuItem" name="contentsMenuItem">
              <Properties>
                <Property name="mnemonic" type="int" value="99"/>
                <Property name="text" type="java.lang.String" value="Contents"/>
              </Properties>
            </MenuItem>
            <MenuItem class="javax.swing.JMenuItem" name="aboutMenuItem">
              <Properties>
                <Property name="mnemonic" type="int" value="97"/>
                <Property name="text" type="java.lang.String" value="About"/>
              </Properties>
            </MenuItem>
          </SubComponents>
        </Menu>
      </SubComponents>
    </Menu>
  </NonVisualComponents>
  <Properties>
    <Property name="defaultCloseOperation" type="int" value="3"/>
    <Property name="title" type="java.lang.String" value="My Reporting"/>
  </Properties>
  <SyntheticProperties>
    <SyntheticProperty name="menuBar" type="java.lang.String" value="menuBar"/>
    <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
  </SyntheticProperties>
  <AuxValues>
    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
  </AuxValues>

  <Layout>
    <DimensionLayout dim="0">
      <Group type="103" groupAlignment="0" attributes="0">
          <Group type="102" attributes="0">
              <EmptySpace max="-2" attributes="0"/>
              <Group type="103" groupAlignment="0" attributes="0">
                  <Component id="jLabel2" alignment="0" min="-2" max="-2" attributes="0"/>
                  <Component id="jLabel1" alignment="0" min="-2" max="-2" attributes="0"/>
                  <Group type="102" alignment="1" attributes="0">
                      <Component id="dataRequestButton" min="-2" max="-2" attributes="0"/>
                      <EmptySpace min="99" pref="99" max="99" attributes="0"/>
                  </Group>
              </Group>
              <EmptySpace max="-2" attributes="0"/>
              <Group type="103" groupAlignment="0" attributes="0">
                  <Component id="downloadButton" min="-2" max="-2" attributes="0"/>
                  <Component id="answersLoaded" alignment="0" min="-2" max="-2" attributes="0"/>
                  <Component id="answersToLoad" alignment="0" min="-2" max="-2" attributes="0"/>
              </Group>
              <EmptySpace min="-2" pref="28" max="-2" attributes="0"/>
          </Group>
          <Component id="statusLabel" alignment="0" pref="574" max="32767" attributes="0"/>
          <Group type="102" alignment="0" attributes="0">
              <EmptySpace min="-2" pref="32" max="-2" attributes="0"/>
              <Component id="jLabel4" min="-2" max="-2" attributes="0"/>
              <EmptySpace pref="493" max="32767" attributes="0"/>
          </Group>
          <Group type="102" alignment="0" attributes="0">
              <EmptySpace max="-2" attributes="0"/>
              <Component id="jScrollPane1" pref="534" max="32767" attributes="0"/>
              <EmptySpace max="-2" attributes="0"/>
          </Group>
      </Group>
    </DimensionLayout>
    <DimensionLayout dim="1">
      <Group type="103" groupAlignment="0" attributes="0">
          <Group type="102" alignment="0" attributes="0">
              <EmptySpace max="-2" attributes="0"/>
              <Group type="103" groupAlignment="0" attributes="0">
                  <Group type="102" alignment="1" attributes="0">
                      <Component id="answersLoaded" min="-2" max="-2" attributes="0"/>
                      <EmptySpace max="-2" attributes="0"/>
                      <Component id="answersToLoad" min="-2" max="-2" attributes="0"/>
                  </Group>
                  <Group type="102" alignment="1" attributes="0">
                      <Component id="jLabel1" min="-2" max="-2" attributes="0"/>
                      <EmptySpace max="-2" attributes="0"/>
                      <Component id="jLabel2" min="-2" max="-2" attributes="0"/>
                  </Group>
              </Group>
              <EmptySpace max="-2" attributes="0"/>
              <Group type="103" groupAlignment="0" attributes="0">
                  <Component id="dataRequestButton" alignment="0" min="-2" max="-2" attributes="0"/>
                  <Component id="downloadButton" alignment="0" min="-2" max="-2" attributes="0"/>
              </Group>
              <EmptySpace type="separate" max="-2" attributes="0"/>
              <Component id="jLabel4" min="-2" max="-2" attributes="0"/>
              <EmptySpace max="-2" attributes="0"/>
              <Component id="jScrollPane1" pref="316" max="32767" attributes="0"/>
              <EmptySpace type="unrelated" max="-2" attributes="0"/>
              <Component id="statusLabel" min="-2" max="-2" attributes="0"/>
          </Group>
      </Group>
    </DimensionLayout>
  </Layout>
  <SubComponents>
    <Component class="javax.swing.JLabel" name="jLabel1">
      <Properties>
        <Property name="text" type="java.lang.String" value="Answer data loaded until"/>
      </Properties>
    </Component>
    <Component class="javax.swing.JLabel" name="answersLoaded">
      <Properties>
        <Property name="text" type="java.lang.String" value="&lt;nothing loaded&gt;"/>
      </Properties>
    </Component>
    <Component class="javax.swing.JLabel" name="jLabel2">
      <Properties>
        <Property name="text" type="java.lang.String" value="Unloaded answers at the server"/>
      </Properties>
    </Component>
    <Component class="javax.swing.JLabel" name="answersToLoad">
      <Properties>
        <Property name="text" type="java.lang.String" value="&lt;nothing available&gt;"/>
      </Properties>
    </Component>
    <Component class="javax.swing.JButton" name="downloadButton">
      <Properties>
        <Property name="text" type="java.lang.String" value="Download ready data"/>
      </Properties>
      <Events>
        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="downloadButtonActionPerformed"/>
      </Events>
    </Component>
    <Component class="javax.swing.JLabel" name="statusLabel">
      <Properties>
        <Property name="text" type="java.lang.String" value="Ready"/>
        <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
          <Border info="org.netbeans.modules.form.compat2.border.EtchedBorderInfo">
            <EtchetBorder/>
          </Border>
        </Property>
      </Properties>
    </Component>
    <Component class="javax.swing.JButton" name="dataRequestButton">
      <Properties>
        <Property name="text" type="java.lang.String" value="Request data"/>
      </Properties>
      <Events>
        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="dataRequestButtonActionPerformed"/>
      </Events>
    </Component>
    <Container class="javax.swing.JScrollPane" name="jScrollPane1">

      <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
      <SubComponents>
        <Component class="javax.swing.JTable" name="engineTable">
          <Properties>
            <Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.editors2.TableModelEditor">
              <Table columnCount="4" rowCount="4">
                <Column editable="true" title="Title 1" type="java.lang.Object"/>
                <Column editable="true" title="Title 2" type="java.lang.Object"/>
                <Column editable="true" title="Title 3" type="java.lang.Object"/>
                <Column editable="true" title="Title 4" type="java.lang.Object"/>
              </Table>
            </Property>
            <Property name="columnModel" type="javax.swing.table.TableColumnModel" editor="org.netbeans.modules.form.editors2.TableColumnModelEditor">
              <TableColumnModel selectionModel="0">
                <Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
                  <Title/>
                  <Editor/>
                  <Renderer/>
                </Column>
                <Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
                  <Title/>
                  <Editor/>
                  <Renderer/>
                </Column>
                <Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
                  <Title/>
                  <Editor/>
                  <Renderer/>
                </Column>
                <Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
                  <Title/>
                  <Editor/>
                  <Renderer/>
                </Column>
              </TableColumnModel>
            </Property>
            <Property name="tableHeader" type="javax.swing.table.JTableHeader" editor="org.netbeans.modules.form.editors2.JTableHeaderEditor">
              <TableHeader reorderingAllowed="true" resizingAllowed="true"/>
            </Property>
          </Properties>
        </Component>
      </SubComponents>
    </Container>
    <Component class="javax.swing.JLabel" name="jLabel4">
      <Properties>
        <Property name="text" type="java.lang.String" value="Engines"/>
      </Properties>
    </Component>
  </SubComponents>
</Form>

Thanks a lot.

非常感谢。

1 个解决方案

#1


6  

IntelliJ IDEA doesn't support NetBeans forms, you can try to use the create snapshot feature that can save IDEA form file from a dialog of the running application.

IntelliJ IDEA不支持NetBeans表单,你可以尝试使用create snapshot特性,它可以从正在运行的应用程序的一个对话框中保存IDEA表单文件。

However, much more convenient solution would be to use JFormDesigner which has IntelliJ IDEA plug-in and can convert NetBeans form files. Note that this tool is commercial and will cost you money, but it's free to try.

但是,更方便的解决方案是使用具有IntelliJ IDEA插件的JFormDesigner,并且可以转换NetBeans表单文件。注意,这个工具是商业的,会让你花钱,但是它是免费的。

#1


6  

IntelliJ IDEA doesn't support NetBeans forms, you can try to use the create snapshot feature that can save IDEA form file from a dialog of the running application.

IntelliJ IDEA不支持NetBeans表单,你可以尝试使用create snapshot特性,它可以从正在运行的应用程序的一个对话框中保存IDEA表单文件。

However, much more convenient solution would be to use JFormDesigner which has IntelliJ IDEA plug-in and can convert NetBeans form files. Note that this tool is commercial and will cost you money, but it's free to try.

但是,更方便的解决方案是使用具有IntelliJ IDEA插件的JFormDesigner,并且可以转换NetBeans表单文件。注意,这个工具是商业的,会让你花钱,但是它是免费的。