JFormCreator
Download latest version here
Older versions can be found here
Overview:
JFormCreator is a program that I wrote during a week-long strike at my university in February 2012. I had actually intended to write something else but found myself getting flustered with Java's built-in layout managers so decided to write a GUI creator. Thus JGuiMaker was born (later renamed to JFormCreator). Since then, I have been adding small features and fixing many, many bugs. In retrospect, the program is actually fairly poorly written however since it was made for personal use a re-write is not justifiable. Regardless, I learned a lot embarking on (at the time) such an ambitious project. I didn't know if I'd be able to translate the idea I had into a fully working program when I started, and actually managed to surprise myself.
Feature List:
- Drag-and-drop form/GUI creation
- Quickly create forms with labels, buttons, text fields and more
- Save form templates and load them later for editing
- Generate source code that creates your form, which you can then add functionality to
Changelog:
v1.25b
-Application renamed to JFormCreator
-Multiple selected components can no longer be moved out of bounds
-Removed the check for upper-case Class names in generated source, since this isn't strictly enforced in java
v1.2b
-copy, cut and paste functions added to context menu
-edit menu added, has the same functionality as the context menu
-deleted components are now also moved far off-screen to prevent unwanted interaction w.r.t drag-select
-copies of text fields now have borders
v1.12b
-fixed an oversight that resulted in check boxes being unselectable in drag-select
-fixed certain components being unselectable in drag-mode on template load
v1.1b
-added a context menu to components
-can now select multiple components by dragging the mouse on the main panel
-Removed delete mode as it's easier to drag-select then click delete
-fixed a graphical glitch that caused phantom rectangles to appear on screen
v1.0b
-beta release
-fixed drag functionality
-added the option to force event code generation
-template version checking is now enforced
-removed the cancel option from all confirmation dialogs
-fixed a few typos
-fixed the main panel being out of position when starting a new template after resizing it
v0.95a
-can no longer create components out of bounds
-can no longer include apostrophe's or backslashes in component text
-decreased maximum component size by 4 pixels to fix a bug
-can no longer set component text such that the component is out of bounds
-can no longer "lose" labels by setting their text to nothing
v0.9a
-can now no longer set the width/height of a component such that it falls outside the bounds of the main panel
-new template now restores main panel to maximum size
-added a crosshair to assist with component placement
-minimum frame size of (100,100) enforced
-fixed multiple issues involving the creation of null components
-offset generated frame height by 30 pixels (unknown cause of original issue) *I now know that this is the height of the frame's title bar
v0.81a
-the main panel (virtual frame) is now resizable
-components now scale with any change in the size of the main panel
-program window resized to full-screen, and is no longer resizable by the user
-fixed the incorrect calculation of the main panel's center point
-fixed a bug involving null button creation
-adjusted border on the utilities panel
v0.75a
-fixed an oversight where null labels were possible
v0.74a
-program window is now resizable
-component text can now no longer contain quotation marks (preventing code injection)
-fixed a bug where component text values persisted for text fields/areas
-fixed an issue where check box text wouldn't update
v0.7a
-added support for combo boxes
-added additional trace lines to help component positioning
-text areas now have borders
-fixed checkbox height being below minimum allowed component size
-fixed an oversight where components loaded from templates weren't disabled
-removed unneccessary import of event libraries when no event code is needed
-generated frame now grabs focus on program launch
-generated code now imports the java.awt library
v0.62a
-fixed two bugs that prevented the current template from being entirely discarded
-fixed a bug where lower-case labels undercut the minimum component size
v0.6a
-support for check boxes added
v0.5a
-added "delete mode" which is activatable by clicking delete with no components selected
-focus is now always transferred away from created components. This prevents typing in text boxes or text areas
-fixed incorrect parameter checking on some confirmation dialogs
-fixed a bug where deleted components weren't removed from the ArrayList
-fixed a typo in a confirmation dialog
-program now automatically determines if event handler code is needed in generated code
v0.4a
-added functionality for saving and loading templates, stored as .tmp files
-significantly improved code readability
-drawn rectangle when creating text field height changed from 20 to 25 (minimum component size)
v0.3a
-smoothed out component dragging by separating stages of x and y calculations
-can no longer set component parameters out of bounds (resets to center)
-label and text field initial height set to minimum component size
-error message is now displayed when trying to add an actionListener to a component that doesn't support it
-property fields now restore component parameters upon invalid input
-deleted components now have their native screen resource destroyed
v0.22a
-generated frame is no longer resizable
-resized generated frame to more closely match its virtual counterpart
v0.2a
-minimum size now enforced even when changing parameters using the properties panel
-main frame is no longer resizable
-flag for event code is now stored in the component name
-can now only add ActionListeners to buttons
-a message dialog is now shown on successful code generation
v0.13a
-minimum component size of (25, 25) enforced
-unlabeled Labels now have a default text
v0.1a
-initial release
-support for buttons, labels, text fields and text areas added