Der in intelliJ IDEA eingebaute GUI-Editor erleichtert die Erstellung einer Form für die grafische Oberfläche sehr. Allerdings kann das Programm später nur in intelliJ IDEA kompiliert werden, da die Elemente der Form nur dort gelesen werden können.
Auch wenn die Form-Datei im XML-Format aufgebaut ist kann sie dennoch von anderen Entwicklungsumgebungen wie Eclipse nicht verarbeitet werden. Es gibt aber einen Weg, eine Oberfläche in Eclipse zu exportieren und dort zu starten, nämlich über eine besondere Speicherungsform der Form.
Bitte beachtet aber schon an dieser Stelle meinen Hinweis: Ihr könnt die Form zwar exportieren, aber sie kann in Eclipse nicht weiter bearbeitet werden (das Java-Programm selber kann selbstverständlich noch modifiziert werden).
Für den Export sind zwei Schritte notwendig:
Schritt 1: Ihr stellt in den Settings (Hauptmenü – „File“ – „Settings…“ im Punkt „Editor“ – „GUI Designer“ den Punkt „Generate GUI into:“ auf „Java source code“ um und speichert die Einstellung.
Nach dem nächsten Build erscheint die Form unterhalb des Java-Programms, hier einmal der Quellcode des TextPane Basic-Beispiels:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
/* * Herkunft/Origin: http://java-crypto.bplaced.net/ * Programmierer/Programmer: Michael Fehr * Copyright/Copyright: frei verwendbares Programm (Public Domain) * Copyright: This is free and unencumbered software released into the public domain. * Lizenttext/Licence: <http://unlicense.org> * getestet mit/tested with: Java Runtime Environment 11.0.5 x64 * verwendete IDE/used IDE: intelliJ IDEA 2019.3.1 * Datum/Date (dd.mm.jjjj): 11.01.2020 * Funktion: TextPane Basic Eclipse Export = laden und speichern einer Textdatei, * die Form wird in der Java-Datei abgespeichert * Function: TextPane Basic Eclipse Export = load and save a textfile * the form is save in the java-file * * Hinweis/Notice * Sie benoetigen intelliJ um das Programm uebersetzen und ausfuehren zu koennen * You need intelliJ to build and run the program * * Sie benoetigen die Datei forms_rt.jar zur Nutzung in Eclipse. * You need the file forms_rt.jar to use this program in Eclipse */ import com.intellij.uiDesigner.core.GridConstraints; import com.intellij.uiDesigner.core.GridLayoutManager; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.*; public class TextPane { private JPanel panelMain; private JPanel panelButtons; private JButton buttonLoad; private JScrollPane scrollPane; private JTextPane textPane; private JButton buttonSave; public TextPane() { buttonLoad.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { FileReader reader = null; try { reader = new FileReader("textpane_basic.txt"); textPane.read(reader, "textpane_basic.txt"); } catch (IOException e) { e.printStackTrace(); } } }); buttonSave.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { FileWriter writer = null; try { writer = new FileWriter("textpane_basic.txt"); textPane.write(writer); } catch (IOException e) { e.printStackTrace(); } } }); } public static void main(String[] args) { JFrame frame = new JFrame(); frame.setContentPane(new TextPane().panelMain); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setTitle("TextPane Basic Eclipse Export"); frame.setSize(500, 300); frame.setVisible(true); } { // GUI initializer generated by IntelliJ IDEA GUI Designer // >>> IMPORTANT!! <<< // DO NOT EDIT OR ADD ANY CODE HERE! $$$setupUI$$$(); } /** * Method generated by IntelliJ IDEA GUI Designer * >>> IMPORTANT!! <<< * DO NOT edit this method OR call it in your code! * * @noinspection ALL */ private void $$$setupUI$$$() { panelMain = new JPanel(); panelMain.setLayout(new GridLayoutManager(2, 1, new Insets(10, 10, 10, 10), -1, -1)); panelButtons = new JPanel(); panelButtons.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 0), -1, -1)); panelMain.add(panelButtons, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false)); buttonLoad = new JButton(); buttonLoad.setText("load"); panelButtons.add(buttonLoad, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); buttonSave = new JButton(); buttonSave.setText("save"); panelButtons.add(buttonSave, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); scrollPane = new JScrollPane(); panelMain.add(scrollPane, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false)); textPane = new JTextPane(); scrollPane.setViewportView(textPane); } /** * @noinspection ALL */ public JComponent $$$getRootComponent$$$() { return panelMain; } } |
Beachtet den Quellcode ab Zeile 78, dort wird die Form abgebildet. Allerdings wird es gleich dicke Fehlermeldungen hageln, denn zur weiteren Nutzung in intelliJ IDEA oder auch Eclipse muss zwingend eine externe Bibliothek in den Kompiliervorgang eingebunden werden, nämlich die Library „forms_rt.jar“.
Schritt 2: Einbindung der Datei „forms_rt.jar“.
Unter Windows findet Ihr die Datei am einfachsten mit dem Explorer: in das Programmverzeichnis von intelliJ IDEA gehen, oben rechts in das Suchfeld „forms_rt.jar“ eintippen und Ihr erhaltet den Ort der Speicherung:
Kopiert Euch diese Datei in das Projektverzeichnis und bindet die Datei entweder in intelliJ IDEA oder z.B. Eclipse und genießt die Ausführung – hier die Ansicht innerhalb von Eclipse:
Alle Quellcodes zu intelliJ IDEA findet Ihr zum Download in meinem Github-Repository, welches Ihr über diesen Link erreicht: https://github.com/java-crypto/intelliJ-IDEA. Alle Programme sind unter Java 11 lauffähig (vermutlich auch unter Java 8) und wurden mit intelliJ IDEA entwickelt, welches für das eigene „Spielen“ notwendig ist.
Die Lizenz zum obigen Beispiel findet Ihr auf der eigenen Lizenz-Seite.
Letzte Bearbeitung: 11.01.2020