Vraag Hoe converteer ik het NetBeans-formulier en de bijbehorende klasse naar iets dat bruikbaar is in de IntelliJ IDEA-editor?


Mijn excuses voor een misschien naïeve vraag, maar ik kon geen antwoord online vinden.

Ik heb een gebruikersinterface die is gemaakt in NetBeans. Helaas weet ik niet welke versie is gebruikt. Ik heb begrepen dat IntelliJ IDEA (v11 in mijn geval) geen NetBeans-formulieren ondersteunt.

Kan ik het formulier converteren naar iets dat bruikbaar is in de formuliereneditor van IDEA? De inhoud van het XML-bestand van het formulier lijkt dit te zijn:

<?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>

Hartelijk bedankt.


12
2017-12-07 10:16


oorsprong


antwoorden:


IntelliJ IDEA ondersteunt geen NetBeans-formulieren, u kunt proberen het te gebruiken maak een momentopname functie die het IDEA-formulierbestand kan opslaan vanuit een dialoogvenster van de actieve toepassing.

Een veel gemakkelijkere oplossing zou echter zijn om te gebruiken JFormDesigner met IntelliJ IDEA plug-in en kan NetBeans-formulierbestanden converteren. Merk op dat deze tool commercieel is en je geld zal kosten, maar het is gratis om te proberen.


6
2017-12-07 11:58