参考代码: https://github.com/kenglxn/JMSUtility/commit/4164296182c8efc3f0c97be8f5be1a7a1f2cdeb3
用IntelliJ IDEA的GUI Designer開發Swing程式 http://jdev.tw/blog/3823/intellij-idea-gui-designer-swing-form
1.建立一个工程,使用Maven管理方式, 不选择任何archetype.
2.在pom.xml增加需要的依赖包
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>CodeGenerator</groupId> <artifactId>CodeGenerator</artifactId> <version>1.0</version> <dependencies> <dependency> <groupId>com.jgoodies</groupId> <artifactId>forms</artifactId> <version>1.2.1</version> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-core</artifactId> <version>5.7.0</version> </dependency> <dependency> <groupId>com.intellij</groupId> <artifactId>forms_rt</artifactId> <version>7.0.3</version> </dependency> <!-- TEST SCOPE --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.7</version> <scope>test</scope> </dependency> </dependencies> </project>
3.新建package, 新建一个GUI Form, 叫做TestForm.java, 然后随便拖放一些控件, 增加一些事件. 这里注意, 一开始得到的layout, 看看左边的UI Disgner导航.
-Form
-JPanel(这个地方, 是提示说这个Form下面,应该增加一个JPanel控件, 然后在这个JPanel上增加Form, 假如你没有增加JPanel控件, 那么得到的java代码, 可能有问题.)
4.增加main方法: 点右键--generate for main方法, 得到的代码:
public static void main(String[] args) { JFrame frame = new JFrame("TestForm"); frame.setContentPane(new TestForm().panel1); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); }
或者
手写代码:
public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); } private static void createAndShowGUI() { JFrame frame = new JFrame("JMSUtilForm"); frame.setContentPane(new TestForm().panel1); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); }
5. 运行, 点右键,运行TestForm.main();
这个时候会在java上面自动产生部分代码:
{ // 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$$$() { panel1 = new JPanel(); panel1.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1)); final JPanel panel2 = new JPanel(); panel2.setLayout(new GridLayoutManager(2, 1, new Insets(0, 0, 0, 0), -1, -1)); panel1.add(panel2, 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)); button1 = new JButton(); button1.setText("Button"); panel2.add(button1, 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)); final Spacer spacer1 = new Spacer(); panel2.add(spacer1, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false)); } /** * @noinspection ALL */ public JComponent $$$getRootComponent$$$() { return panel1; }
6.运行成功