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



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

我有一些在NetBeans中创建的UI代码。不幸的是,我不知道使用的是哪个版本。我的理解是IntelliJ IDEA (v11在我的情况下)不支持NetBeans表单。

我可以将表单转换为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>

IntelliJ IDEA不支持NetBeans表单,您可以尝试使用创建快照功能,可以从正在运行的应用程序的对话框中保存IDEA表单文件。

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

我已经取得了完美的成功,只需打开NetBeans表单编辑器中的Source选项卡,在那里我创建了表单,并将整个代码复制到IntelilJ的新类中,然后简单地添加新的JFrame及其代码的代码,并将(this)传递到initComponentsGui方法底部的Panel参数。

:

public class ConvertedGui extends Panel { // my new class
private void initComponents()... // copied code
        // >>> the copied code here >>>
        JFrame frame = new JFrame("Title For JFrame");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(1440, 900);// or your preferred size
        frame.add(this);
        frame.setVisible(true);`
} 
// >>> More copied code for all the actionListeners etc.>>>

相关内容

  • 没有找到相关文章

最新更新