Guest User

Untitled

a guest
Jul 15th, 2018
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.22 KB | None | 0 0
  1. /*
  2. * Class TestMaskFormatter.java
  3. *
  4. */
  5.  
  6. package gui;
  7.  
  8. import javax.swing.JFormattedTextField;
  9. import javax.swing.text.MaskFormatter;
  10.  
  11. /**
  12. *
  13. * @author mehdi
  14. */
  15. public class TestMaskFormatter extends javax.swing.JFrame {
  16.  
  17. private MaskFormatter userCodeFormatter;
  18. private final byte USERNAME_MIN_LENGTH = 6; // do not use magic numbers, here just as example
  19.  
  20. public TestMaskFormatter() {
  21. this.setTitle("New User");
  22. try {
  23.  
  24. userCodeFormatter = new MaskFormatter("AAAAAA##"); // pattern for 6 characters from A to Z + two numbers
  25. userCodeFormatter.setPlaceholderCharacter('_');
  26. } catch (java.text.ParseException ex) {
  27. // Should make sure to pass correct params to MaskFormatter
  28. }
  29.  
  30. initComponents();
  31. }
  32.  
  33. public void showDialog() {
  34. this.setVisible(true);
  35. }
  36.  
  37. private void jCancelButtonActionPerformed(java.awt.event.ActionEvent evt) {
  38. closeDialog();
  39. }
  40.  
  41. private void jSaveButtonActionPerformed(java.awt.event.ActionEvent evt) {
  42. // Should use a generic form validator instead
  43. if (jUserNameTextField.getText().length() == USERNAME_MIN_LENGTH) {
  44. //save user details
  45. } else {
  46. // Prompt message to type a Username containing the right amount of characters
  47. }
  48. }
  49.  
  50. private void closeDialog() {
  51. this.setVisible(false);
  52. this.dispose();
  53. }
  54.  
  55.  
  56. /*
  57. * Gui init code
  58. */
  59. @SuppressWarnings("unchecked")
  60. private void initComponents() {
  61.  
  62. jTitlePanel = new javax.swing.JPanel();
  63. jTitleLabel = new javax.swing.JLabel();
  64. jUserDetailsPanel = new javax.swing.JPanel();
  65. jUserNameLabel = new javax.swing.JLabel();
  66. jUserNameTextField = new JFormattedTextField(userCodeFormatter);
  67. jPasswordLabel = new javax.swing.JLabel();
  68. jPasswordField = new javax.swing.JPasswordField();
  69. jControlPanel = new javax.swing.JPanel();
  70. jSaveButton = new javax.swing.JButton();
  71. jCancelButton = new javax.swing.JButton();
  72.  
  73. setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
  74. setName("Form");
  75.  
  76. jTitlePanel.setName("jTitlePanel");
  77.  
  78. jTitleLabel.setFont(jTitleLabel.getFont().deriveFont(jTitleLabel.getFont().getStyle() | java.awt.Font.BOLD, jTitleLabel.getFont().getSize()+6));
  79. jTitleLabel.setText("Enter User details");
  80.  
  81. javax.swing.GroupLayout jTitlePanelLayout = new javax.swing.GroupLayout(jTitlePanel);
  82. jTitlePanel.setLayout(jTitlePanelLayout);
  83. jTitlePanelLayout.setHorizontalGroup(
  84. jTitlePanelLayout.createParallelGroup(javax.swing.GroupLayout.LEADING)
  85. .add(jTitlePanelLayout.createSequentialGroup()
  86. .addContainerGap()
  87. .add(jTitleLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 222, javax.swing.GroupLayout.PREFERRED_SIZE)
  88. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  89. );
  90. jTitlePanelLayout.setVerticalGroup(
  91. jTitlePanelLayout.createParallelGroup(javax.swing.GroupLayout.LEADING)
  92. .add(jTitlePanelLayout.createSequentialGroup()
  93. .addContainerGap()
  94. .add(jTitleLabel)
  95. .addContainerGap())
  96. );
  97.  
  98. jUserDetailsPanel.setName("jUserDetailsPanel");
  99.  
  100. jUserNameLabel.setFont(jUserNameLabel.getFont().deriveFont(jUserNameLabel.getFont().getStyle() & ~java.awt.Font.BOLD));
  101. jUserNameLabel.setText("Username :");
  102.  
  103. jUserNameTextField.setFont(jUserNameTextField.getFont().deriveFont(jUserNameTextField.getFont().getStyle() & ~java.awt.Font.BOLD));
  104. jUserNameTextField.setToolTipText("Enter a user name, containing 6 characters + 2 numbers");
  105.  
  106. jPasswordLabel.setFont(jPasswordLabel.getFont().deriveFont(jPasswordLabel.getFont().getStyle() & ~java.awt.Font.BOLD));
  107. jPasswordLabel.setText("Password :");
  108.  
  109. jPasswordField.setFont(jPasswordField.getFont().deriveFont(jPasswordField.getFont().getStyle() & ~java.awt.Font.BOLD));
  110. jPasswordField.setToolTipText("Enter password, minimum 6 characters");
  111.  
  112. javax.swing.GroupLayout jUserDetailsPanelLayout = new javax.swing.GroupLayout(jUserDetailsPanel);
  113. jUserDetailsPanel.setLayout(jUserDetailsPanelLayout);
  114. jUserDetailsPanelLayout.setHorizontalGroup(
  115. jUserDetailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.LEADING)
  116. .add(jUserDetailsPanelLayout.createSequentialGroup()
  117. .addContainerGap()
  118. .add(jUserDetailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.LEADING)
  119. .add(javax.swing.GroupLayout.TRAILING, jUserNameLabel)
  120. .add(javax.swing.GroupLayout.TRAILING, jPasswordLabel))
  121. .addPreferredGap(javax.swing.LayoutStyle.RELATED)
  122. .add(jUserDetailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.LEADING, false)
  123. .add(jPasswordField)
  124. .add(jUserNameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 126, javax.swing.GroupLayout.PREFERRED_SIZE))
  125. .addContainerGap())
  126. );
  127. jUserDetailsPanelLayout.setVerticalGroup(
  128. jUserDetailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.LEADING)
  129. .add(jUserDetailsPanelLayout.createSequentialGroup()
  130. .addContainerGap()
  131. .add(jUserDetailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.BASELINE)
  132. .add(jUserNameLabel)
  133. .add(jUserNameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  134. .addPreferredGap(javax.swing.LayoutStyle.RELATED)
  135. .add(jUserDetailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.BASELINE)
  136. .add(jPasswordLabel)
  137. .add(jPasswordField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
  138. );
  139.  
  140. jControlPanel.setName("jControlPanel");
  141.  
  142. jSaveButton.setFont(jSaveButton.getFont());
  143. jSaveButton.setText("Save");
  144. jSaveButton.setName("jSaveButton");
  145. jSaveButton.addActionListener(new java.awt.event.ActionListener() {
  146. public void actionPerformed(java.awt.event.ActionEvent evt) {
  147. jSaveButtonActionPerformed(evt);
  148. }
  149. });
  150.  
  151. jCancelButton.setFont(jCancelButton.getFont());
  152. jCancelButton.setText("Cancel");
  153. jCancelButton.setName("jCancelButton");
  154. jCancelButton.addActionListener(new java.awt.event.ActionListener() {
  155. public void actionPerformed(java.awt.event.ActionEvent evt) {
  156. jCancelButtonActionPerformed(evt);
  157. }
  158. });
  159.  
  160. javax.swing.GroupLayout jControlPanelLayout = new javax.swing.GroupLayout(jControlPanel);
  161. jControlPanel.setLayout(jControlPanelLayout);
  162. jControlPanelLayout.setHorizontalGroup(
  163. jControlPanelLayout.createParallelGroup(javax.swing.GroupLayout.LEADING)
  164. .add(jControlPanelLayout.createSequentialGroup()
  165. .addContainerGap()
  166. .add(jSaveButton)
  167. .addPreferredGap(javax.swing.LayoutStyle.RELATED)
  168. .add(jCancelButton)
  169. .addContainerGap())
  170. );
  171. jControlPanelLayout.setVerticalGroup(
  172. jControlPanelLayout.createParallelGroup(javax.swing.GroupLayout.LEADING)
  173. .add(jControlPanelLayout.createSequentialGroup()
  174. .addContainerGap()
  175. .add(jControlPanelLayout.createParallelGroup(javax.swing.GroupLayout.BASELINE)
  176. .add(jCancelButton)
  177. .add(jSaveButton))
  178. .addContainerGap())
  179. );
  180.  
  181. javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  182. getContentPane().setLayout(layout);
  183. layout.setHorizontalGroup(
  184. layout.createParallelGroup(javax.swing.GroupLayout.LEADING)
  185. .add(layout.createSequentialGroup()
  186. .addContainerGap()
  187. .add(layout.createParallelGroup(javax.swing.GroupLayout.LEADING)
  188. .add(jUserDetailsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  189. .add(jTitlePanel, javax.swing.GroupLayout.PREFERRED_SIZE, 197, javax.swing.GroupLayout.PREFERRED_SIZE))
  190. .addContainerGap())
  191. .add(javax.swing.GroupLayout.TRAILING, layout.createSequentialGroup()
  192. .addContainerGap(132, Short.MAX_VALUE)
  193. .add(jControlPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  194. );
  195. layout.setVerticalGroup(
  196. layout.createParallelGroup(javax.swing.GroupLayout.LEADING)
  197. .add(layout.createSequentialGroup()
  198. .addContainerGap()
  199. .add(jTitlePanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  200. .addPreferredGap(javax.swing.LayoutStyle.RELATED)
  201. .add(jUserDetailsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  202. .addPreferredGap(javax.swing.LayoutStyle.RELATED, 18, Short.MAX_VALUE)
  203. .add(jControlPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  204. );
  205.  
  206. pack();
  207. }
  208.  
  209. // Gui Variables declaration
  210. private javax.swing.JButton jCancelButton;
  211. private javax.swing.JPanel jControlPanel;
  212. private javax.swing.JPasswordField jPasswordField;
  213. private javax.swing.JLabel jPasswordLabel;
  214. private javax.swing.JButton jSaveButton;
  215. private javax.swing.JLabel jTitleLabel;
  216. private javax.swing.JPanel jTitlePanel;
  217. private javax.swing.JPanel jUserDetailsPanel;
  218. private javax.swing.JLabel jUserNameLabel;
  219. private javax.swing.JTextField jUserNameTextField;
  220. // End of Gui variables declaration
  221.  
  222. }
Add Comment
Please, Sign In to add comment