You can buy this project and download/modify it how often you want.
form/swing javax.swing.JDialog java.awt.BorderLayout title Edit Test Rig javax.swing.JPanel java.awt.BorderLayout border dialogPane javax.swing.JPanel com.jgoodies.forms.layout.FormLayout $columnSpecs right:45dlu, labelcompgap, 78dlu, labelcompgap, 203dlu:grow, labelcompgap, 55dlu $rowSpecs default, linegap, default, linegap, 93dlu, linegap, default contentPanel javax.swing.JRadioButton text Text: $buttonGroup buttonGroup1 textTestRadio com.jgoodies.forms.layout.CellConstraints gridX 1 javax.swing.JScrollPane javax.swing.JScrollPane scrollPane1 javax.swing.JTextPane testTextArea com.jgoodies.forms.layout.CellConstraints gridX 3 gridWidth 5 gridHeight 5 javax.swing.JRadioButton text Class: $buttonGroup buttonGroup1 classTestRadio com.jgoodies.forms.layout.CellConstraints gridY 7 insets 0 0 0 5 javax.swing.JTextField testClassField com.jgoodies.forms.layout.CellConstraints gridX 3 gridY 7 gridWidth 5 java.lang.String value West javax.swing.JPanel com.jgoodies.forms.layout.FormLayout $columnSpecs glue, button, relgap, button $rowSpecs pref border buttonBar javax.swing.JButton text OK okButton com.jgoodies.forms.layout.CellConstraints gridX 2 gridY 1 javax.swing.JButton text Cancel cancelButton com.jgoodies.forms.layout.CellConstraints gridX 4 gridY 1 java.lang.String value South java.lang.String value West this location 5 0 size 625 315 javax.swing.JTextField testClassHiddenField location 90 370 size 115 22 javax.swing.ButtonGroup buttonGroup1 location 0 350