Advertisement
Guest User

JavaGuiCodeCreator.java

a guest
Apr 6th, 2012
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 156.86 KB | None | 0 0
  1. JavaGuiCodeCreator.java
  2.  
  3. /* JavaGuiCodeCreator.java
  4.  *  
  5.  *  Il codice è commentato e suddiviso "logicamente" per una più facile comprensione
  6.  *  e modifica.
  7.  *  
  8.  *  @author int0x80
  9.  *  
  10.  */
  11.  
  12. package gui.code.creator;
  13.  
  14. /* inizio import per il progetto */
  15.     import java.awt.EventQueue;
  16.     import javax.swing.JFrame;
  17.     import javax.swing.JOptionPane;
  18.     import javax.swing.JPanel;
  19.     import javax.swing.JButton;
  20.     import javax.swing.UIManager;
  21.     import javax.swing.border.LineBorder;
  22.     import java.awt.Color;
  23.     import javax.swing.ImageIcon;
  24.     import javax.swing.SwingConstants;
  25.     import java.awt.event.ActionListener;
  26.     import java.awt.event.ActionEvent;
  27.  
  28. /* fine import per il progetto */
  29.  
  30. public class JavaGuiCodeCreator extends JFrame /* classe contente la grafica del programma */
  31. {
  32.  
  33.     private JPanel contentPane; /* variabile privata di tipo JPanel */
  34.     private int frameopened, buttonopened, labelopened, textfieldopened; /* variabile che verifica se una finestra è stata aperta o no */
  35.    
  36.     public static void main(String[] args) /* il programma inizia dalla funzione main() */
  37.     {
  38.         EventQueue.invokeLater(new Runnable() /* creo una nuova interfaccia di tipo Runnable */
  39.         {
  40.             public void run() /* creo il metodo che avvierà il programma */
  41.             {
  42.                 try /* mi assicuro che il programma venga eseguito correttamente, in caso contrario visualizza l'eventuale messaggio di errore */
  43.                 {
  44.                     UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); /* applico alla finestra il "tema£ del sistema operativo */
  45.                     JavaGuiCodeCreator frame = new JavaGuiCodeCreator(); /* istanzio la classe */
  46.                     frame.setVisible(true); /* rendo visibile il JFrame */
  47.                 } catch (Exception e) { e.printStackTrace(); } /* visualizzo l'errore all'utente */
  48.             }
  49.         }); /* fine programma */
  50.     }
  51.  
  52.     public JavaGuiCodeCreator() /* GUI */
  53.     {
  54.         initialize(); /* richiamo la funzione */
  55.     }
  56.    
  57.     private void initialize() /* metodo che inizializza i controlli */
  58.     {
  59.         ImageIcon buttonImage = new ImageIcon(getClass().getResource("/images/next.png")); /* variabile contente l'immagine dei bottoni */
  60.         /* Inizio scrittura codice relativa al form e al JPanl */
  61.             this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); /* quando l'utente farà click sulla X verrà liberata la memoria della finestra e si chiuderà */
  62.             this.setResizable(false); /* impedisco all'utente di ridimensionare la finestra */
  63.             this.setBounds(700, 300, 450, 300); /* imposto le coordinate x = 700, y = 300 e la grandezza della finestra : width = 450, height = 300 */
  64.             this.setTitle("Java GUI Code Creator - Main"); /* setto il titolo della finestra */
  65.             contentPane = new JPanel(); /* istanzio il JPanel */
  66.             contentPane.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bordi del JPanel */
  67.             this.setContentPane(contentPane); /* aggiungi il JPanel al form */
  68.             contentPane.setLayout(null); /* non setto nessuna Layout */
  69.         /* Fine scrittura codice relativa al form e al JPanel */
  70.        
  71.         /* Inizio scrittura codice relativa ai bottoni */
  72.                 /* Inizio scrittura codice relativa al primo JButton */
  73.                     JButton jframeButton = new JButton("JFrame"); /* istanzio un nuovo bottone e lo chiamo "JFrame" */
  74.                     jframeButton.addActionListener(new ActionListener() /* evento che viene eseguito quando il bottone viene cliccato */
  75.                     {
  76.                         public void actionPerformed(ActionEvent e) /* l'evento viene trattato come un metodo */
  77.                         {
  78.                             frameopened++; /* incremento la variabile di 1 */
  79.                             JFrameCodeCreator jframeCodeCreator = new JFrameCodeCreator(); /* istanzio la classe JFrameCodeCreator */
  80.                             if(frameopened > 1) /* verifico che la variabile sia maggiore di 1, se lo è mostra il messaggio */
  81.                             {
  82.                                 JOptionPane.showMessageDialog(null, "Hai già aperto questa finestra, non puoi aprirne altre", "Errore", JOptionPane.ERROR_MESSAGE); /* visualizzo il messaggio di errore */
  83.                                 frameopened = 0; /* azzero la variabile */
  84.                             }
  85.                             else /* altrimenti significa che la finestra non è stata aperta dunque la mostra */
  86.                                 jframeCodeCreator.main(null); /* richiamo la funzione main nella quale vi è il codice per mostrare la finestra passandogli come argomento NULL, la finestra viene visualizzata */
  87.                         }
  88.                     });
  89.                     jframeButton.setHorizontalAlignment(SwingConstants.LEFT); /* allineo il testo a sinistra */
  90.                     jframeButton.setIcon(new ImageIcon(buttonImage.getImage())); /* setto l'immagine del bottone */
  91.                     jframeButton.setToolTipText("Clicca per aprire la finestra relativa alla scrittura del codice per il JFrame"); /* quando l'utente lascerà il mouse sul bottone verrà visualizzato questo messaggio */
  92.                     jframeButton.setBounds(157, 12, 134, 36); /* imposto le coordinate x = 157, y = 12 e la grandezza della finestra : width = 134, height = 36 */
  93.                     contentPane.add(jframeButton); /* aggiungo il bottone sul JPanel */
  94.                 /* Fine scrittura codice relativa al primo JButton */
  95.        
  96.                 /* Inizio scrittura codice relativa al secondo JButton */
  97.                     JButton jbuttonButton = new JButton("JButton"); /* istanzio un nuovo bottone e lo chiamo "JButton" */
  98.                     jbuttonButton.addActionListener(new ActionListener() /* evento che viene eseguito quando il bottone viene cliccato */
  99.                     {
  100.                         public void actionPerformed(ActionEvent e) /* l'evento viene trattato come un metodo */
  101.                         {
  102.                             buttonopened++; /* incremento la variabile di 1 */
  103.                             JButtonCodeCreator jbuttonCodeCreator = new JButtonCodeCreator(); /* istanzio la classe JFrameCodeCreator */
  104.                             if(buttonopened > 1) /* verifico che la variabile sia maggiore di 1, se lo è mostra il messaggio */
  105.                             {
  106.                                 JOptionPane.showMessageDialog(null, "Hai già aperto questa finestra, non puoi aprirne altre", "Errore", JOptionPane.ERROR_MESSAGE); /* visualizzo il messaggio di errore */
  107.                                 buttonopened = 0; /* azzero la variabile */
  108.                             }
  109.                             else /* altrimenti significa che la finestra non è stata aperta dunque la mostra */
  110.                                 jbuttonCodeCreator.main(null); /* richiamo la funzione main nella quale vi è il codice per mostrare la finestra passandogli come argomento NULL, la finestra viene visualizzata */
  111.                         }
  112.                     });
  113.                     jbuttonButton.setHorizontalAlignment(SwingConstants.LEFT); /* allineo il testo a sinistra */
  114.                     jbuttonButton.setIcon(new ImageIcon(buttonImage.getImage())); /* setto l'immagine del bottone */
  115.                     jbuttonButton.setToolTipText("Clicca per aprire la finestra relativa alla scrittura del codice per il JButton"); /* quando l'utente lascerà il mouse sul bottone verrà visualizzato questo messaggio */
  116.                     jbuttonButton.setBounds(157, 60, 134, 36); /* imposto le coordinate x = 157, y = 60 e la grandezza della finestra : width = 134, height = 36 */
  117.                     contentPane.add(jbuttonButton); /* aggiungo il bottone sul JPanel */
  118.                 /* Fine scrittura codice relativa al secondo JButton */
  119.        
  120.                 /* Inizio scrittura codice relativa al terzo JButton */
  121.                     JButton jlabelButton = new JButton("JLabel"); /* istanzio un nuovo bottone e lo chiamo "JLabel" */
  122.                     jlabelButton.addActionListener(new ActionListener()
  123.                     {
  124.                         public void actionPerformed(ActionEvent e) /* l'evento viene trattato come un metodo */
  125.                         {
  126.                             labelopened++; /* incremento la variabile di 1 */
  127.                             JLabelCodeCreator jlabelCodeCreator = new JLabelCodeCreator(); /* istanzio la classe JLabelCodeCreator */
  128.                             if(labelopened > 1) /* verifico che la variabile sia maggiore di 1, se lo è mostra il messaggio */
  129.                             {
  130.                                 JOptionPane.showMessageDialog(null, "Hai già aperto questa finestra, non puoi aprirne altre", "Errore", JOptionPane.ERROR_MESSAGE); /* visualizzo il messaggio di errore */
  131.                                 labelopened = 0; /* azzero la variabile */
  132.                             }
  133.                             else /* altrimenti significa che la finestra non è stata aperta dunque la mostra */
  134.                                 jlabelCodeCreator.main(null); /* richiamo la funzione main nella quale vi è il codice per mostrare la finestra passandogli come argomento NULL, la finestra viene visualizzata */
  135.                         }
  136.                     });
  137.                     jlabelButton.setHorizontalAlignment(SwingConstants.LEFT); /* allineo il testo a sinistra */
  138.                     jlabelButton.setIcon(new ImageIcon(buttonImage.getImage())); /* setto l'immagine del bottone */
  139.                     jlabelButton.setToolTipText("Clicca per aprire la finestra relativa alla scrittura del codice per il JLabel"); /* quando l'utente lascerà il mouse sul bottone verrà visualizzato questo messaggio */
  140.                     jlabelButton.setBounds(157, 108, 134, 36); /* imposto le coordinate x = 157, y = 108 e la grandezza della finestra : width = 134, height = 36 */
  141.                     contentPane.add(jlabelButton); /* aggiungo il bottone sul JPanel */
  142.                 /* Fine scrittura codice relativa al terzo JButton */
  143.        
  144.                 /* Inizio scrittura codice relativa al quarto JButton */
  145.                     JButton jtextfieldButton = new JButton("JTextField"); /* istanzio un nuovo bottone e lo chiamo "JTextView" */
  146.                     jtextfieldButton.addActionListener(new ActionListener()
  147.                     {
  148.                         public void actionPerformed(ActionEvent e) /* l'evento viene trattato come un metodo */
  149.                         {
  150.                             textfieldopened++; /* incremento la variabile di 1 */
  151.                             JTextFieldCodeCreator jtextfieldCodeCreator = new JTextFieldCodeCreator(); /* istanzio la classe JTextFieldCodeCreator */
  152.                             if(textfieldopened > 1) /* verifico che la variabile sia maggiore di 1, se lo è mostra il messaggio */
  153.                             {
  154.                                 JOptionPane.showMessageDialog(null, "Hai già aperto questa finestra, non puoi aprirne altre", "Errore", JOptionPane.ERROR_MESSAGE); /* visualizzo il messaggio di errore */
  155.                                 textfieldopened = 0; /* azzero la variabile */
  156.                             }
  157.                             else /* altrimenti significa che la finestra non è stata aperta dunque la mostra */
  158.                                 jtextfieldCodeCreator.main(null); /* richiamo la funzione main nella quale vi è il codice per mostrare la finestra passandogli come argomento NULL, la finestra viene visualizzata */
  159.                         }
  160.                     });
  161.                     jtextfieldButton.setHorizontalAlignment(SwingConstants.LEFT); /* allineo il testo a sinistra */
  162.                     jtextfieldButton.setIcon(new ImageIcon(buttonImage.getImage())); /* setto l'immagine del bottone */
  163.                     jtextfieldButton.setToolTipText("Clicca per aprire la finestra relativa alla scrittura del codice per il JTextView"); /* quando l'utente lascerà il mouse sul bottone verrà visualizzato questo messaggio */
  164.                     jtextfieldButton.setBounds(157, 156, 134, 36); /* imposto le coordinate x = 157, y = 156 e la grandezza della finestra : width = 134, height = 36 */
  165.                     contentPane.add(jtextfieldButton); /* aggiungo il bottone sul JPanel */
  166.                 /* Fine scrittura codice relativa al quarto JButton */
  167.         /* Fine scrittura codice relativa ai bottoni */
  168.     }
  169. }
  170.  
  171. ______________________________________________________________________________________________
  172.  
  173. JButtonCodeCreator.java
  174.  
  175. package gui.code.creator;
  176.  
  177. /* inizio import per il progetto */
  178.     import java.awt.Color;
  179.     import java.awt.EventQueue;
  180.     import java.awt.Toolkit;
  181.     import java.awt.datatransfer.Clipboard;
  182.     import java.awt.datatransfer.StringSelection;
  183.     import java.awt.datatransfer.Transferable;
  184.     import java.awt.event.ActionEvent;
  185.     import java.awt.event.ActionListener;
  186.     import java.awt.event.ItemEvent;
  187.     import java.awt.event.ItemListener;
  188.     import javax.swing.ImageIcon;
  189.     import javax.swing.JButton;
  190.     import javax.swing.JCheckBox;
  191.     import javax.swing.JFrame;
  192.     import javax.swing.JLabel;
  193.     import javax.swing.JMenu;
  194.     import javax.swing.JMenuBar;
  195.     import javax.swing.JMenuItem;
  196.     import javax.swing.JPanel;
  197.     import javax.swing.JTextPane;
  198.     import javax.swing.SwingConstants;
  199.     import javax.swing.UIManager;
  200.     import javax.swing.border.EtchedBorder;
  201.     import javax.swing.border.LineBorder;
  202. /* fine import per il progetto */
  203.    
  204. public class JButtonCodeCreator extends JFrame /* classe contente la grafica del programma */
  205. {
  206.     private JPanel contentPane; /* variabile privata di tipo JPanel */
  207.     private boolean cbVisualizzaAnteprimaIsChecked = false; /* variabile privata di tipo boolean che verifica che sa la checkbox VisualizzaAnteprima è selezionata o no */
  208.     private boolean cbaddActionListenerIsChecked = false; /* variabile privata di tipo boolean che verifica che sa la checkbox addActionListener è selezionata o no */
  209.     private boolean cbsetHorizontalAlignmentIsChecked = false; /* variabile privata di tipo boolean che verifica che sa la checkbox setHorizontalAlignment è selezionata o no */
  210.     private boolean cbsetBoundsIsChecked = false; /* variabile privata di tipo boolean che verifica che sa la checkbox setBounds è selezionata o no */
  211.     private boolean cbsetTextIsChecked = false; /* variabile privata di tipo boolean che verifica che sa la checkbox setText è selezionata o no */
  212.     private String addActionListenerString, setHorizontalAlignmentString, setBoundsString, setTextString; /* variabile privata di tipo string */
  213.  
  214.     public static void main(String[] args) /* il programma inizia dalla funzione main() */
  215.     {
  216.         EventQueue.invokeLater(new Runnable() /* creo una nuova interfaccia di tipo Runnable */
  217.         {
  218.             public void run() /* creo il metodo che avvierà il programma */
  219.             {
  220.                 try /* mi assicuro che il programma venga eseguito correttamente, in caso contrario visualizza l'eventuale messaggio di errore */
  221.                 {
  222.                     UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); /* applico alla finestra il "tema£ del sistema operativo */
  223.                     JButtonCodeCreator window = new JButtonCodeCreator(); /* istanzio la classe */
  224.                     window.setVisible(true); /* rendo visibile il JFrame */
  225.                 } catch (Exception e) { e.printStackTrace(); } /* visualizzo l'errore all'utente */
  226.             }
  227.         }); /* fine programma */
  228.     }
  229.  
  230.     public JButtonCodeCreator() /* GUI */
  231.     {
  232.         initialize(); /* richiamo il metodo */
  233.     }
  234.  
  235.     private void initialize() /* metodo che inizializza i controlli */
  236.     {
  237.         /* Inizio scrittura codice relativa al form e al JPanel */
  238.             this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); /* quando l'utente farà click sulla X verrà liberata la memoria della finestra e si chiuderà */
  239.             this.setResizable(false); /* impedisco all'utente di ridimensionare la finestra */
  240.             this.setBounds(1150, 300, 450, 365); /* imposto le coordinate x = 1150, y = 300 e la grandezza della finestra : width = 450, height = 365 */
  241.             this.setTitle("Java GUI Code Creator - JButton"); /* setto il titolo della finestra */
  242.             contentPane = new JPanel(); /* istanzio il JPanel */
  243.             contentPane.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bordi del JPanel */
  244.             this.setContentPane(contentPane); /* aggiungi il JPanel al form */
  245.             contentPane.setLayout(null); /* non setto nessuna Layout */
  246.         /* Fine scrittura codice relativa al form e al JPanel */
  247.            
  248.             ImageIcon generateImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/genera.png")); /* varabile contenente l'immagine del bottone "Genera codice" */
  249.             ImageIcon copycodeImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/copy.png")); /* varabile contenente l'immagine del bottone "Copia codice" */
  250.            
  251.             JCheckBox cbVisualizzaAnteprima = new JCheckBox("Visualizza anteprima"); /* istanzio una nuova JCheckBox e la chiamo "Visualizza Anteprima" */
  252.             cbVisualizzaAnteprima.setBounds(264, 8, 174, 22); /* imposto le coordinate x = 264, y = 8 e la grandezza del controllo : width = 174, height = 22 */
  253.             contentPane.add(cbVisualizzaAnteprima); /* aggiungo il controllo al JPanel */
  254.            
  255.             JLabel lblMetodiJframe = new JLabel("Metodi JFrame"); /* istanzio una nuova JLabel e la chiamo "Metodi JFrame" */
  256.             lblMetodiJframe.setBounds(86, 12, 112, 14); /* imposto le coordinate x = 86, y = 12 e la grandezza del controllo : width = 112, height = 14 */
  257.             contentPane.add(lblMetodiJframe); /* aggiungo il controllo al JPanel */
  258.            
  259.             final JLabel lblAnteprima = new JLabel("Anteprima"); /* istanzio una nuova JLabel e la chiamo "Anteprima" */
  260.             lblAnteprima.setBounds(334, 38, 82, 14); /* imposto le coordinate x = 334, y = 38 e la grandezza del controllo : width = 82, height = 14 */
  261.             lblAnteprima.setVisible(false); /* rendo invisibile la label */
  262.             contentPane.add(lblAnteprima); /* aggiungo il controllo al JPanel */
  263.            
  264.             JPanel panelMetodiJFrame = new JPanel(); /* istanzio un nuov JPanel */
  265.             panelMetodiJFrame.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bord del JPanel */
  266.             panelMetodiJFrame.setBounds(12, 27, 252, 120); /* imposto le coordinate x = 12, y = 27 e la grandezza del controllo : width = 252, height = 120 */
  267.             contentPane.add(panelMetodiJFrame); /* aggiungo il controllo al JPanel */
  268.            
  269.             JCheckBox cbaddActionListener = new JCheckBox(".addActionListener(args)           "); /* istanzio una nuovo JCheckBox e la chiamo ".addActionListener(arg)" */
  270.             cbaddActionListener.setToolTipText("Spuntando questo campo l'utente potrà scrivere il codice da eseguire"); /* setto il Tooltip del controllo */
  271.             panelMetodiJFrame.add(cbaddActionListener); /* aggiungo il controllo al panel contenente i metodi del JFrame */
  272.            
  273.             JCheckBox cbsetHorizontalAlignment = new JCheckBox(".setHorizontalAlignment(args)  "); /* istanzio una nuovo JCheckBox e la chiamo ".setHorizontalAlignment(args)", gli spazi sono per allineare la checkbox con le altre */
  274.             cbsetHorizontalAlignment.setHorizontalAlignment(SwingConstants.LEFT); /* setto l'allineamento verso sinistra  */
  275.             cbsetHorizontalAlignment.setToolTipText("Spuntando questo campo l'utente potrà scegliere l'allineamento del testo del bottone"); /* setto il Tooltip del controllo */
  276.             panelMetodiJFrame.add(cbsetHorizontalAlignment); /* aggiungo il controllo al al panel contenente i metodi del JFrame */
  277.            
  278.             JCheckBox cbsetBounds = new JCheckBox(".setBounds(x, y, width, height) "); /* istanzio una nuovo JCheckBox e la chiamo ".setBounds(x, y, width, height)", gli spazi sono per allineare la checkbox con le altre */
  279.             cbsetBounds.setToolTipText("Sputando questo campo l'utente può scegliere la posizione X, Y, la larghezza e l'altezza della finestra"); /* setto il Tooltip del controllo */
  280.             panelMetodiJFrame.add(cbsetBounds); /* aggiungo il controllo al al panel contenente i metodi del JFrame */
  281.            
  282.             JCheckBox cbsetText = new JCheckBox(".setText(testo)                             "); /* istanzio una nuovo JCheckBox e la chiamo ".setText(testo)", gli spazi sono per allineare la checkbox con le altre */
  283.             cbsetText.setToolTipText("Spuntando questo campo l'utente potrà scegliere il testo da attribuire al bottone"); /* setto il Tooltip del controllo */
  284.             cbsetText.setHorizontalAlignment(SwingConstants.LEFT); /* setto l'allineamento verso sinistra  */
  285.             panelMetodiJFrame.add(cbsetText); /* aggiungo il controllo al al panel contenente i metodi del JFrame */
  286.            
  287.             final JPanel panelAnteprima = new JPanel(); /* istazio un nuovo JPanel */
  288.             panelAnteprima.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bordi del JPanel */
  289.             panelAnteprima.setBounds(314, 52, 120, 82); /* imposto le coordinate x = 314, y = 52 e la grandezza del controllo : width = 120, height = 82 */
  290.             panelAnteprima.setVisible(false); /* rendo invisibile il JPanel */
  291.             contentPane.add(panelAnteprima);
  292.            
  293.             final JButton btnAnteprima = new JButton("Anteprima"); /* istanzio un nuovo JButton e lo chiamo "Anteprima" */
  294.             panelAnteprima.add(btnAnteprima);/* aggiungo il controllo al JPanel */
  295.            
  296.             JLabel lblCodiceGenerato = new JLabel("Codice generato"); /* istanzio una nuova JLabel e la chiamo "Codice generato" */
  297.             lblCodiceGenerato.setBounds(75, 170, 120, 14); /* imposto le coordinate x = 75, y = 170 e la grandezza del controllo : width = 120, height = 14 */
  298.             contentPane.add(lblCodiceGenerato); /* aggiungo il controllo al JPanel */
  299.            
  300.             final JTextPane txtCodice = new JTextPane(); /* istanzio un nuovo JTextPane */
  301.             txtCodice.setForeground(Color.RED); /* setto il colore del testo */
  302.             txtCodice.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null)); /* setto i bordi del controllo */
  303.             txtCodice.setBounds(12, 187, 252, 122); /* imposto le coordinate x = 12, y = 187 e la grandezza del controllo : width = 252, height = 122 */
  304.             contentPane.add(txtCodice); /* aggiungo il controllo al JPanel */
  305.            
  306.             JButton btnGeneraCodice = new JButton("Genera codice"); /* istanzio un nuovo JButton e lo chiamo "Genera codice" */
  307.             btnGeneraCodice.addActionListener(new ActionListener() /* aggiungo l'evento che genera il codice prendendo le informazioni dagli altri form in cui l'utente ha scelto gli argomenti */
  308.             {
  309.                 public void actionPerformed(ActionEvent e) /* l'evento viene trattato come un metodo */
  310.                 {
  311.                     JButtonaddActionListenerWindow addactionlistener = new JButtonaddActionListenerWindow(); /* istanzio la classe JButtonaddActionListenerWindow */
  312.                     addActionListenerString = txtCodice.getText().toString() + addactionlistener.getArgument(); /* la variabile "addActionListenerString" conterrà il codice */
  313.                     txtCodice.setText(addActionListenerString); /* setto il testo del JTextPane */
  314.                    
  315.                     JButtonsetHorizontalAlignmentWindow sethotizontalalignment = new JButtonsetHorizontalAlignmentWindow(); /* istanzio la classe JButtonsetHorizontalAlignmentWindow */
  316.                     setHorizontalAlignmentString = txtCodice.getText().toString() + ".setHorizontalAlignment(" + sethotizontalalignment.getArgument() + ");" + "\n"; /* la variabile "addActionListenerString" conterrà il codice */
  317.                     txtCodice.setText(setHorizontalAlignmentString); /* setto il testo del JTextPane */
  318.                    
  319.                     JButtonsetBoundsWindow setbounds = new JButtonsetBoundsWindow(); /* istanzio la classe JButtonsetBoundsWindow */
  320.                     setBoundsString = txtCodice.getText().toString() + ".setBounds(" + setbounds.getArgument() + ");" + "\n"; /* la variabile "setBoundsString" conterrà il codice */
  321.                     txtCodice.setText(setBoundsString); /* setto il testo del JTextPane */
  322.                    
  323.                     JButtonsetTextWindow settext = new JButtonsetTextWindow(); /* istanzio la classe JButtonsetTextWindow */
  324.                     setTextString = txtCodice.getText().toString() + ".setText(" + settext.getArgument() + ");" + "\n"; /* la variabile "setTextString" conterrà il codice */
  325.                     txtCodice.setText(setTextString); /* setto il testo del JTextPane */
  326.                 }
  327.             });
  328.             btnGeneraCodice.setHorizontalAlignment(SwingConstants.LEFT); /* setto l'allineamento verso sinistra  */
  329.             btnGeneraCodice.setIcon(new ImageIcon(generateImage.getImage())); /* setto l'immagine del bottone */
  330.             btnGeneraCodice.setBounds(276, 209, 162, 24); /* imposto le coordinate x = 276, y = 209 e la grandezza del controllo : width = 162, height = 24 */
  331.             contentPane.add(btnGeneraCodice); /* aggiungo il controllo al JPanel */
  332.            
  333.             JButton btnCopiaCodice = new JButton("Copia codice"); /* istanzio un nuovo JButton e lo chiamo "Copia codice" */
  334.             btnCopiaCodice.addActionListener(new ActionListener() /* aggiungo l'evento che copia il codice negli appunti */
  335.             {
  336.                 public void actionPerformed(ActionEvent e) /* l'evento viene trattato come un metodo */
  337.                 {
  338.                     Clipboard copy = Toolkit.getDefaultToolkit().getSystemClipboard(); /* rilevo la Clipboard */
  339.                     copy.setContents ((Transferable) new StringSelection (txtCodice.getText().toString()), null); /* inserisco in memoria quello che c'è scritto nel JTextPane */
  340.                 }
  341.             });
  342.             btnCopiaCodice.setHorizontalAlignment(SwingConstants.LEFT); /* setto l'allineamento verso sinistra  */
  343.             btnCopiaCodice.setIcon(new ImageIcon(copycodeImage.getImage())); /* setto l'immagine del bottone */
  344.             btnCopiaCodice.setBounds(276, 256, 162, 24); /* imposto le coordinate x = 276, y = 256 e la grandezza del controllo : width = 162, height = 24 */
  345.             contentPane.add(btnCopiaCodice);/* aggiungo il controllo al JPanel */
  346.         /* Fine scrittura codice relativa al form e al JPanel */
  347.        
  348.         /* Inizio scrittura codice relativo al JMenuBar */
  349.             ImageIcon firstmenuItemImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/clear.png")); /* variabile contenente l'immagine del primo item della barra dei menù */
  350.             ImageIcon secondmenuItemImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/exit.png")); /* variabile contenente l'immagine del secondo item della barra dei menù */
  351.        
  352.             JMenuBar menuBar = new JMenuBar(); /* inizializzo la barra dei menù */
  353.             menuBar.setBounds(224, 290, 129, 21); /* imposto le coordinate x = 224, y = 290 e la grandezza del barra menu : width = 129, height = 21 */
  354.        
  355.             JMenu menu = new JMenu("File"); /* inizializzo un nuovo menu e lo chiamo "JFile" */
  356.             menuBar.add(menu); /* aggiungo il menu alla barra dei menù */
  357.  
  358.             JMenuItem firstItem = new JMenuItem("Pulisci", firstmenuItemImage); /* inizializzo un nuovo item della menubar chiamandolo "Pulisci" e associandogli la relativa immagine */
  359.             JMenuItem secondItem = new JMenuItem("Chiudi", secondmenuItemImage); /* inizializzo un nuovo item della menubar chiamandolo "Chiudi" e associandogli la relativa immagine */
  360.             firstItem.setHorizontalAlignment(SwingConstants.CENTER); /* imposto la scritta del primo item al centro */
  361.             secondItem.setHorizontalAlignment(SwingConstants.CENTER); /* imposto la scritta del secondo item al centro */
  362.             menu.add(firstItem); /* aggiungo il primo item al menu */
  363.             menu.add(secondItem); /* aggiungo il secondo item al menu */
  364.        
  365.             this.setJMenuBar(menuBar); /* setto come JMenuBar la barra dei menu finora creata */
  366.         /* Fine scrittura codice relativo al JMenuBar */
  367.        
  368.         /* Inizio scrittura codice relativo al click degli item dalla barra dei menu */
  369.             firstItem.addActionListener(new ActionListener() /* quando l'utente clicca su "Pulisci" viene pulita la JTextField */
  370.             {
  371.                 public void actionPerformed(ActionEvent e) /* l'evento viene trattato come metodo */
  372.                 {
  373.                     txtCodice.setText(""); /* setto il testo della JTextPane come "vuoto" */
  374.                 }
  375.             });
  376.        
  377.             secondItem.addActionListener(new ActionListener() /* quando l'utente clicca su "Chiudi" il programma termina */
  378.             {
  379.                 public void actionPerformed(ActionEvent e) /* l'evento viene trattato come metodo */
  380.                 {
  381.                     System.exit(0); /* restituisce 0 al sistema per indicare che l'applicazione è stata chiusa correttamente e la memoria è stata deallocata */
  382.                 }
  383.             });
  384.         /* Fine scrittura codice relativo al click degli item dalla barra dei menu */
  385.            
  386.         /* Inizio scrittura codice relativa allo stato ( checked, unchecked ) di tutte le CheckBox */
  387.             cbVisualizzaAnteprima.addItemListener(new ItemListener() /* aggiungo l'evento che verifica se la cbVisualizzaAnteprima è spuntata o no */
  388.             {
  389.                 public void itemStateChanged(ItemEvent item) /* l'evento viene trattato come un metodo */
  390.                 {
  391.                     cbVisualizzaAnteprimaIsChecked = (item.getStateChange() == ItemEvent.SELECTED); /* cbVisualizzaAnteprimaIsChecked sarà TRUE se la checkbox è spuntata, FALSE se non lo è */
  392.                     if(cbVisualizzaAnteprimaIsChecked) /* equivale a = if( cbVisualizzaAnteprimaIsChecked == true), se la checkbox è stata spuntata visualizza la label e il JPanel */
  393.                     {
  394.                         lblAnteprima.setVisible(true); /* rendo visibile la label */
  395.                         panelAnteprima.setVisible(true); /* rendo visibile il JPanel */
  396.                     }
  397.                     else /* altrimenti se non è spuntata li nasconde */
  398.                     {
  399.                         lblAnteprima.setVisible(false); /* rendo invisibile la label */
  400.                         panelAnteprima.setVisible(false); /* rendo invisibile il JPanel */
  401.                         btnAnteprima.setVisible(false); /* nascondo il bottone relativo all'anteprima */
  402.                     }
  403.                 }
  404.             });
  405.            
  406.             cbaddActionListener.addItemListener(new ItemListener() /* aggiungo l'evento che verifica se la cbsetDefaultCloseOperation è spuntata o no */
  407.             {
  408.                 public void itemStateChanged(ItemEvent item) /* l'evento viene trattato come un metodo */
  409.                 {
  410.                     cbaddActionListenerIsChecked = (item.getStateChange() == ItemEvent.SELECTED); /* cbaddActionListenerIsChecked sarà TRUE se la checkbox è spuntata, FALSE se non lo è */
  411.                     if(cbaddActionListenerIsChecked) /* equivale a = if( cbaddActionListenerIsChecked == true), se la checkbox è stata spuntata visualizza la finestra relativa al metodo setDefaultCloseOperation */
  412.                     {
  413.                         JButtonaddActionListenerWindow addactionlistenerwindow = new JButtonaddActionListenerWindow(); /* istanzio la classe JButtonaddActionListenerWindow */
  414.                         addactionlistenerwindow.main(null); /* richiamo la funzione main nella quale vi è il codice per mostrare la finestra passandogli come argomento NULL, la finestra viene visualizzata */
  415.                     }
  416.                 }
  417.             });
  418.            
  419.             cbsetHorizontalAlignment.addItemListener(new ItemListener() /* aggiungo l'evento che verifica se la cbsetResizable è spuntata o no */
  420.             {
  421.                 public void itemStateChanged(ItemEvent item) /* l'evento viene trattato come un metodo */
  422.                 {
  423.                     cbsetHorizontalAlignmentIsChecked = (item.getStateChange() == ItemEvent.SELECTED); /* cbsetResizableIsChecked sarà TRUE se la checkbox è spuntata, FALSE se non lo è */
  424.                     if(cbsetHorizontalAlignmentIsChecked) /* equivale a = if( cbaddActionListenerIsChecked == true), se la checkbox è stata spuntata visualizza la finestra relativa al metodo setResizable */
  425.                     {
  426.                         JButtonsetHorizontalAlignmentWindow sethorizontalalignmentwindow = new JButtonsetHorizontalAlignmentWindow(); /* istanzio la classe JButtonsetHorizontalAlignmentWindow */
  427.                         sethorizontalalignmentwindow.main(null); /* richiamo la funzione main nella quale vi è il codice per mostrare la finestra passandogli come argomento NULL, la finestra viene visualizzata */
  428.                     }
  429.                 }
  430.             });
  431.            
  432.             cbsetBounds.addItemListener(new ItemListener() /* aggiungo l'evento che verifica se la cbsetBounds è spuntata o no */
  433.             {
  434.                 public void itemStateChanged(ItemEvent item) /* l'evento viene trattato come un metodo */
  435.                 {
  436.                     cbsetBoundsIsChecked = (item.getStateChange() == ItemEvent.SELECTED); /* cbsetBoundsIsChecked sarà TRUE se la checkbox è spuntata, FALSE se non lo è */
  437.                     if(cbsetBoundsIsChecked) /* equivale a = if( cbsetBoundsIsChecked == true), se la checkbox è stata spuntata visualizza la finestra relativa al metodo setBounds */
  438.                     {
  439.                         JButtonsetBoundsWindow setboundswindow = new JButtonsetBoundsWindow(); /* istanzio la classe JButtonsetBoundsWindow */
  440.                         setboundswindow.main(null); /* richiamo la funzione main nella quale vi è il codice per mostrare la finestra passandogli come argomento NULL, la finestra viene visualizzata */
  441.                     }
  442.                 }
  443.             });
  444.            
  445.             cbsetText.addItemListener(new ItemListener() /* aggiungo l'evento che verifica se la cbsetTitle è spuntata o no */
  446.             {
  447.                 public void itemStateChanged(ItemEvent item) /* l'evento viene trattato come un metodo */
  448.                 {
  449.                     cbsetTextIsChecked = (item.getStateChange() == ItemEvent.SELECTED); /* cbsetTitleIsChecked sarà TRUE se la checkbox è spuntata, FALSE se non lo è */
  450.                     if(cbsetTextIsChecked) /* equivale a = if( cbsetTitleIsChecked == true), se la checkbox è stata spuntata visualizza la finestra relativa al metodo setTitle */
  451.                     {
  452.                         JButtonsetTextWindow settextwindow = new JButtonsetTextWindow(); /* istanzio la classe JButtonsetTextWindow */
  453.                         settextwindow.main(null); /* richiamo la funzione main nella quale vi è il codice per mostrare la finestra passandogli come argomento NULL, la finestra viene visualizzata */
  454.                     }
  455.                 }
  456.             });
  457.         /* Fine scrittura codice relativa allo stato ( checked, unchecked ) di tutte le CheckBox */
  458.     }
  459. }
  460.  
  461. ______________________________________________________________________________________________
  462.  
  463. JButtonaddActionListenerWindow.java
  464.  
  465. package gui.code.creator;
  466.  
  467. /* inizio import per il progetto */
  468.     import java.awt.Color;
  469.     import java.awt.EventQueue;
  470.     import javax.swing.ImageIcon;
  471.     import javax.swing.JFrame;
  472.     import javax.swing.JOptionPane;
  473.     import javax.swing.JPanel;
  474.     import javax.swing.UIManager;
  475.     import javax.swing.border.EtchedBorder;
  476.     import javax.swing.border.LineBorder;
  477.     import javax.swing.JLabel;
  478.     import java.awt.Font;
  479.     import javax.swing.JTextPane;
  480.     import javax.swing.JButton;
  481.     import java.awt.event.ActionListener;
  482.     import java.awt.event.ActionEvent;
  483. /* fine import per il progetto */
  484.  
  485. public class JButtonaddActionListenerWindow extends JFrame /* classe contente la grafica del programma */
  486. {
  487.     private JPanel contentPane; /* variabile privata di tipo JPanel */
  488.     private static String argument; /* variabile privata di tipo stringa contenente la scelta dell'utente */
  489.  
  490.     public static void main(String[] args) /* il programma inizia dalla funzione main() */
  491.     {
  492.         EventQueue.invokeLater(new Runnable() /* creo una nuova interfaccia di tipo Runnable */
  493.         {
  494.             public void run() /* creo il metodo che avvierà il programma */
  495.             {
  496.                 try /* mi assicuro che il programma venga eseguito correttamente, in caso contrario visualizza l'eventuale messaggio di errore */
  497.                 {
  498.                     UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); /* applico alla finestra il "tema£ del sistema operativo */
  499.                     JButtonaddActionListenerWindow window = new JButtonaddActionListenerWindow(); /* istanzio la classe */
  500.                     window.setVisible(true); /* rendo visibile il JFrame */
  501.                 } catch (Exception e) { e.printStackTrace(); } /* visualizzo l'errore all'utente */
  502.             }
  503.         }); /* fine programma */
  504.     }
  505.  
  506.     public JButtonaddActionListenerWindow() /* GUI */
  507.     {
  508.         initialize(); /* richiamo il metodo */
  509.     }
  510.  
  511.     static String getArgument() /* creo un metodo che mi restituisce la stringa argument */
  512.     {
  513.         return argument; /* ritorno la stringa */
  514.     }
  515.    
  516.     private void initialize() /* metodo che inizializza i controlli */
  517.     {
  518.         ImageIcon buttonImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/ok.gif")); /* variabile contenente l'immagine del bottone */
  519.        
  520.         /* Inizio scrittura codice relativa al form e al JPanel */
  521.             this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); /* quando l'utente farà click sulla X verrà liberata la memoria della finestra e si chiuderà */
  522.             this.setResizable(false); /* impedisco all'utente di ridimensionare la finestra */
  523.             this.setBounds(700, 300, 450, 320); /* imposto le coordinate x = 700, y = 300 e la grandezza della finestra : width = 450, height = 300 */
  524.             this.setTitle("Java GUI Code Creator - .addActionListener"); /* setto il titolo della finestra */
  525.             contentPane = new JPanel(); /* istanzio il JPanel */
  526.             contentPane.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bordi del JPanel */
  527.             this.setContentPane(contentPane); /* aggiungi il JPanel al form */
  528.             contentPane.setLayout(null); /* non setto nessuna Layout */
  529.            
  530.             JLabel lbladdActionListener = new JLabel(".addActionListener(new ActionListener()"); /* istanzio una nuova JLabel e la chiamo ".addActionListener(new ActionListener()" */
  531.             lbladdActionListener.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  532.             lbladdActionListener.setBounds(12, 12, 335, 14); /* imposto le coordinate x = 12, y = 12 e la grandezza della finestra : width = 335, height = 14 */
  533.             contentPane.add(lbladdActionListener); /* aggiungo il controllo al JPanel */
  534.            
  535.             JLabel lblParentesi1 = new JLabel("{"); /* istanzio una nuova JLabel e la chiamo "{" */
  536.             lblParentesi1.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  537.             lblParentesi1.setBounds(12, 38, 70, 14); /* imposto le coordinate x = 12, y = 38 e la grandezza della finestra : width = 70, height = 14 */
  538.             contentPane.add(lblParentesi1); /* aggiungo il controllo al JPanel */
  539.            
  540.             final JTextPane txtCodiceUtente = new JTextPane(); /* istanzio un nuovo JTextPane */
  541.             txtCodiceUtente.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null)); /* setto i bordi del controllo */
  542.             txtCodiceUtente.setForeground(Color.RED); /* setto il colore del testo */
  543.             txtCodiceUtente.setBounds(36, 103, 379, 115); /* imposto le coordinate x = 35, y = 103 e la grandezza della finestra : width = 379, height = 115 */
  544.             contentPane.add(txtCodiceUtente); /* aggiungo il controllo al JPanel */
  545.            
  546.             JLabel lblParentesi2 = new JLabel("}"); /* istanzio una nuova JLabel e la chiamo "}" */
  547.             lblParentesi2.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  548.             lblParentesi2.setBounds(12, 264, 10, 14); /* imposto le coordinate x = 12, y = 264 e la grandezza della finestra : width = 10, height = 14 */
  549.             contentPane.add(lblParentesi2); /* aggiungo il controllo al JPanel */
  550.            
  551.             JLabel lblPublicVoidActionperformedactionevent = new JLabel("public void actionPerformed(ActionEvent e)"); /* istanzio una nuova JLabel e la chiamo "public void actionPerformed(ActionEvent e)" */
  552.             lblPublicVoidActionperformedactionevent.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  553.             lblPublicVoidActionperformedactionevent.setBounds(22, 64, 343, 14); /* imposto le coordinate x = 22, y = 64 e la grandezza della finestra : width = 343, height = 14 */
  554.             contentPane.add(lblPublicVoidActionperformedactionevent); /* aggiungo il controllo al JPanel */
  555.            
  556.             JLabel lblParentesi3 = new JLabel("  {"); /* istanzio una nuova JLabel e la chiamo "{" */
  557.             lblParentesi3.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  558.             lblParentesi3.setBounds(12, 90, 70, 14); /* imposto le coordinate x = 12, y = 90 e la grandezza della finestra : width = 70, height = 14 */
  559.             contentPane.add(lblParentesi3); /* aggiungo il controllo al JPanel */
  560.            
  561.             JLabel lblParentesi4 = new JLabel("  }"); /* istanzio una nuova JLabel e la chiamo "}" */
  562.             lblParentesi4.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  563.             lblParentesi4.setBounds(12, 230, 70, 14); /* imposto le coordinate x = 12, y = 230 e la grandezza della finestra : width = 70, height = 14 */
  564.             contentPane.add(lblParentesi4); /* aggiungo il controllo al JPanel */
  565.              
  566.             JButton btnOk = new JButton("Ok"); /* istanzio un nuovo JButton e lo chiamo "Ok" */
  567.             btnOk.addActionListener(new ActionListener() /* aggiungo l'evento che memorizza il codice scritto dall'utente */
  568.             {
  569.                 public void actionPerformed(ActionEvent e) /* l'evento è trattato come un metodo */
  570.                 {
  571.                     argument = ".addActionListener(new ActionListener()\n{\n" + "public void actionPerformed(ActionEvent e)\n{\n" + "\t" + txtCodiceUtente.getText().toString() + "\n" + "}" + "\n" + "}" + "\n" + "});"; /* la variabile "argument" conterrà il codice scritto dall'utente più quello di "default" */
  572.                 }
  573.             });
  574.             btnOk.setIcon(new ImageIcon(buttonImage.getImage())); /* setto l'immagine del bottone */
  575.             btnOk.setBounds(323, 259, 92, 24); /* imposto le coordinate x = 323, y = 259 e la grandezza della finestra : width = 92, height = 24 */
  576.             contentPane.add(btnOk); /* aggiungo il controllo al JPanel */
  577.         /* Fine scrittura codice relativa al form e al JPanel */
  578.     }
  579. }
  580.  
  581. ______________________________________________________________________________________________
  582.  
  583. JButtonsetBoundsWindow.java
  584.  
  585. package gui.code.creator;
  586.  
  587. /* inizio import per il progetto */
  588.     import java.awt.Color;
  589.     import java.awt.EventQueue;
  590.     import javax.swing.ImageIcon;
  591.     import javax.swing.JFrame;
  592.     import javax.swing.JPanel;
  593.     import javax.swing.UIManager;
  594.     import javax.swing.border.LineBorder;
  595.     import javax.swing.JLabel;
  596.     import java.awt.Font;
  597.     import javax.swing.JTextField;
  598.     import javax.swing.JButton;
  599.     import java.awt.event.ActionListener;
  600.     import java.awt.event.ActionEvent;
  601. /* fine import per il progetto */
  602.  
  603. public class JButtonsetBoundsWindow extends JFrame /* classe contente la grafica del programma */
  604. {
  605.     private JPanel contentPane; /* variabile privata di tipo JPanel */
  606.     private JTextField txtX; /* controllo JTextField */
  607.     private JTextField txtY; /* controllo JTextField */
  608.     private JTextField txtWidth; /* controllo JTextField */
  609.     private JTextField txtHeight; /* controllo JTextField */
  610.     private JButton btnOk; /* controllo JButton */
  611.     private static String argument; /* variabile privata di tipo stringa contenente la scelta dell'utente */
  612.  
  613.     public static void main(String[] args) /* il programma inizia dalla funzione main() */
  614.     {
  615.         EventQueue.invokeLater(new Runnable() /* creo una nuova interfaccia di tipo Runnable */
  616.         {
  617.             public void run() /* creo il metodo che avvierà il programma */
  618.             {
  619.                 try /* mi assicuro che il programma venga eseguito correttamente, in caso contrario visualizza l'eventuale messaggio di errore */
  620.                 {
  621.                     UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); /* applico alla finestra il "tema£ del sistema operativo */
  622.                     JButtonsetBoundsWindow window = new JButtonsetBoundsWindow(); /* istanzio la classe */
  623.                     window.setVisible(true); /* rendo visibile il JFrame */
  624.                 } catch (Exception e) { e.printStackTrace(); } /* visualizzo l'errore all'utente */
  625.             }
  626.         }); /* fine programma */
  627.     }
  628.  
  629.     public JButtonsetBoundsWindow() /* GUI */
  630.     {
  631.         initialize(); /* richiamo il metodo */
  632.     }
  633.  
  634.     static String getArgument() /* creo un metodo che mi restituisce la stringa argument */
  635.     {
  636.         return argument; /* ritorno la stringa */
  637.     }
  638.    
  639.     private void initialize() /* metodo che inizializza i controlli */
  640.     {
  641.         ImageIcon buttonImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/ok.gif")); /* variabile contenente l'immagine del bottone */
  642.        
  643.         /* Inizio scrittura codice relativa al form e al JPanel */
  644.             this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); /* quando l'utente farà click sulla X verrà liberata la memoria della finestra e si chiuderà */
  645.             this.setResizable(false); /* impedisco all'utente di ridimensionare la finestra */
  646.             this.setBounds(650, 400, 380, 120); /* imposto le coordinate x = 700, y = 400 e la grandezza della finestra : width = 380, height = 120 */
  647.             this.setTitle("Java GUI Code Creator - .setBounds"); /* setto il titolo della finestra */
  648.             contentPane = new JPanel(); /* istanzio il JPanel */
  649.             contentPane.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bordi del JPanel */
  650.             this.setContentPane(contentPane); /* aggiungi il JPanel al form */
  651.             contentPane.setLayout(null); /* non setto nessuna Layout */
  652.            
  653.             JLabel lblsetBounds = new JLabel(".setBounds("); /* istanzio una nuova JLabel e la chiamo .setBounds( */
  654.             lblsetBounds.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  655.             lblsetBounds.setBounds(12, 23, 95, 14); /* imposto le coordinate x = 12, y = 23 e la grandezza della finestra : width = 95 height = 14 */
  656.             contentPane.add(lblsetBounds); /* aggiungo il controllo al JPanel */
  657.            
  658.             txtX = new JTextField(); /* istanzio una nuova JTextField */
  659.             txtX.setBounds(111, 21, 39, 18); /* imposto le coordinate x = 111, y = 21 e la grandezza della finestra : width = 39 height = 18 */
  660.             contentPane.add(txtX); /* aggiungo il controllo al JPanel */
  661.            
  662.             JLabel lblVirgola1 = new JLabel(","); /* istanzio una nuova JLabel a la chiamo "," */
  663.             lblVirgola1.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  664.             lblVirgola1.setBounds(151, 23, 11, 14); /* imposto le coordinate x = 151, y = 23 e la grandezza della finestra : width = 11 height = 14 */
  665.             contentPane.add(lblVirgola1); /* aggiungo il controllo al JPanel */
  666.            
  667.             txtY = new JTextField(); /* istanzio una nuova JTextField */
  668.             txtY.setBounds(161, 21, 39, 18); /* imposto le coordinate x = 161, y = 21 e la grandezza della finestra : width = 39 height = 18 */
  669.             contentPane.add(txtY); /* aggiungo il controllo al JPanel */
  670.            
  671.             JLabel lblVirgola2 = new JLabel(","); /* istanzio una nuova JLabel a la chiamo "," */
  672.             lblVirgola2.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  673.             lblVirgola2.setBounds(201, 23, 11, 14); /* imposto le coordinate x = 201, y = 23 e la grandezza della finestra : width = 11 height = 14 */
  674.             contentPane.add(lblVirgola2); /* aggiungo il controllo al JPanel */
  675.            
  676.             txtWidth = new JTextField(); /* istanzio una nuova JTextField */
  677.             txtWidth.setBounds(211, 21, 39, 18); /* imposto le coordinate x = 211, y = 21 e la grandezza della finestra : width = 39 height = 18 */
  678.             contentPane.add(txtWidth); /* aggiungo il controllo al JPanel */
  679.            
  680.             JLabel lblVirgola3 = new JLabel(","); /* istanzio una nuova JLabel a la chiamo "," */
  681.             lblVirgola3.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  682.             lblVirgola3.setBounds(253, 23, 11, 14); /* imposto le coordinate x = 253, y = 23 e la grandezza della finestra : width = 11 height = 14 */
  683.             contentPane.add(lblVirgola3); /* aggiungo il controllo al JPanel */
  684.            
  685.             txtHeight = new JTextField(); /* istanzio una nuova JTextField */
  686.             txtHeight.setBounds(263, 21, 39, 18); /* imposto le coordinate x = 263, y = 21 e la grandezza della finestra : width = 39 height = 18 */
  687.             contentPane.add(txtHeight); /* aggiungo il controllo al JPanel */
  688.            
  689.             JLabel lblParentesi = new JLabel(")"); /* istanzio una nuova JLabel a la chiamo ")" */
  690.             lblParentesi.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  691.             lblParentesi.setBounds(302, 23, 11, 14); /* imposto le coordinate x = 302, y = 23 e la grandezza della finestra : width = 11 height = 14 */
  692.             contentPane.add(lblParentesi); /* aggiungo il controllo al JPanel */
  693.            
  694.             btnOk = new JButton("Ok"); /* istanzio un nuovo JButton e lo chiamo "Ok" */
  695.             btnOk.addActionListener(new ActionListener() /* aggiungo l'evento che prenderà la scelta dell'utente dalle JTextField */
  696.             {
  697.                 public void actionPerformed(ActionEvent e) /* l'evento viene trattato come un metodo */
  698.                 {
  699.                     argument = txtX.getText().toString() + "," + txtY.getText().toString() + "," + txtWidth.getText().toString() + "," + txtHeight.getText().toString(); /* la variabile "argument" conterrà la scelta dell'utente */
  700.                 }
  701.             });
  702.             btnOk.setIcon(new ImageIcon(buttonImage.getImage())); /* setto l'immagine del bottone */
  703.             btnOk.setBounds(273, 51, 91, 24); /* imposto le coordinate x = 273, y = 51 e la grandezza della finestra : width = 91 height = 24 */
  704.             contentPane.add(btnOk); /* aggiungo il controllo al JPanel */
  705.         /* Fine scrittura codice relativa al form e al JPanel */
  706.     }
  707. }
  708.  
  709. JButtonsetHorizontalAlignmentWindow.java
  710.  
  711. package gui.code.creator;
  712.  
  713. /* inizio import per il progetto */
  714.     import java.awt.Color;
  715.     import java.awt.EventQueue;
  716.     import javax.swing.ImageIcon;
  717.     import javax.swing.JFrame;
  718.     import javax.swing.JPanel;
  719.     import javax.swing.UIManager;
  720.     import javax.swing.border.LineBorder;
  721.     import javax.swing.JLabel;
  722.     import java.awt.Font;
  723.     import javax.swing.JComboBox;
  724.     import javax.swing.JButton;
  725.     import java.awt.event.ActionListener;
  726.     import java.awt.event.ActionEvent;
  727. /* fine import per il progetto */
  728.  
  729. public class JButtonsetHorizontalAlignmentWindow extends JFrame /* classe contente la grafica del programma */
  730. {
  731.     private JPanel contentPane; /* variabile privata di tipo JPanel */
  732.     private static String argument; /* variabile privata di tipo stringa contenente la scelta dell'utente */
  733.  
  734.     public static void main(String[] args) /* il programma inizia dalla funzione main() */
  735.     {
  736.         EventQueue.invokeLater(new Runnable() /* creo una nuova interfaccia di tipo Runnable */
  737.         {
  738.             public void run() /* creo il metodo che avvierà il programma */
  739.             {
  740.                 try /* mi assicuro che il programma venga eseguito correttamente, in caso contrario visualizza l'eventuale messaggio di errore */
  741.                 {
  742.                     UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); /* applico alla finestra il "tema£ del sistema operativo */
  743.                     JButtonsetHorizontalAlignmentWindow window = new JButtonsetHorizontalAlignmentWindow(); /* istanzio la classe */
  744.                     window.setVisible(true); /* rendo visibile il JFrame */
  745.                 } catch (Exception e) { e.printStackTrace(); } /* visualizzo l'errore all'utente */
  746.             }
  747.         }); /* fine programma */
  748.     }
  749.  
  750.     public JButtonsetHorizontalAlignmentWindow() /* GUI */
  751.     {
  752.         initialize(); /* richiamo il metodo */
  753.     }
  754.    
  755.     static String getArgument() /* creo un metodo che mi restituisce la stringa argument */
  756.     {
  757.         return argument; /* ritorno la stringa */
  758.     }
  759.  
  760.     private void initialize() /* metodo che inizializza i controlli */
  761.     {
  762.         String[] args = {"LEFT", "CENTER", "RIGHT", "BOTTOM", "TOP" }; /* array di stringhe contenente gli argomenti */
  763.         ImageIcon buttonImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/ok.gif")); /* variabile contenente l'immagine del bottone */
  764.        
  765.         /* Inizio scrittura codice relativa al form e al JPanel */
  766.             this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); /* quando l'utente farà click sulla X verrà liberata la memoria della finestra e si chiuderà */
  767.             this.setResizable(false); /* impedisco all'utente di ridimensionare la finestra */
  768.             this.setBounds(650, 350, 500, 100); /* imposto le coordinate x = 700, y = 350 e la grandezza della finestra : width = 500, height = 100 */
  769.             this.setTitle("Java GUI Code Creator - setHorizontalAlignment"); /* setto il titolo della finestra */
  770.             contentPane = new JPanel(); /* istanzio il JPanel */
  771.             contentPane.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bordi del JPanel */
  772.             this.setContentPane(contentPane); /* aggiungi il JPanel al form */
  773.             contentPane.setLayout(null); /* non setto nessuna Layout */
  774.            
  775.             JLabel lblsetHorizontalAlignment = new JLabel(".setHorizontalAlignment(SwingConstants.");
  776.             lblsetHorizontalAlignment.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  777.             lblsetHorizontalAlignment.setBounds(13, 13, 335, 14); /* imposto le coordinate x = 13, y = 13 e la grandezza della finestra : width = 335, height = 14 */
  778.             contentPane.add(lblsetHorizontalAlignment); /* aggiungo il controllo al JPanel */
  779.            
  780.             final JComboBox cbArgument = new JComboBox(args);  /* istanzio una nuova JComboBox e passo l'array "args" come parametro aggiungendo i suoi elementi ad essa */
  781.             cbArgument.setBounds(341, 9, 85, 23); /* imposto le coordinate x = 341, y = 9 e la grandezza della finestra : width = 85, height = 23 */
  782.             contentPane.add(cbArgument); /* aggiungo il controllo al JPanel */
  783.            
  784.             JLabel lblParentesi = new JLabel(")"); /* istanzio una nuova JLabel e la chiamo ")" */
  785.             lblParentesi.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  786.             lblParentesi.setBounds(426, 13, 11, 14); /* imposto le coordinate x = 426, y = 13 e la grandezza della finestra : width = 11, height = 14 */
  787.             contentPane.add(lblParentesi); /* aggiungo il controllo al JPanel */
  788.            
  789.             JButton btnOk = new JButton("Ok"); /* istanzio un nuovo JButton e lo chiamo "Ok" */
  790.             btnOk.addActionListener(new ActionListener()/* aggiungo l'evento che prenderà la scelta dell'utente dalla JComboBox */
  791.             {
  792.                 public void actionPerformed(ActionEvent e) /* l'evento viene trattato come un metodo */
  793.                 {
  794.                     argument = cbArgument.getSelectedItem().toString(); /* la variabile "argument" conterrà la scelta dell'utente */
  795.                 }
  796.             });
  797.             btnOk.setIcon(new ImageIcon(buttonImage.getImage())); /* setto l'immagine del bottone */
  798.             btnOk.setBounds(399, 41, 85, 24); /* imposto le coordinate x = 399, y = 41 e la grandezza della finestra : width = 85, height = 24 */
  799.             contentPane.add(btnOk);/* aggiungo il controllo al JPanel */
  800.         /* Fine scrittura codice relativa al form e al JPanel */
  801.     }
  802. }
  803.  
  804. ______________________________________________________________________________________________
  805.  
  806. JButtonsetTextWindow.java
  807.  
  808. package gui.code.creator;
  809.  
  810. /* inizio import per il progetto */
  811.     import java.awt.Color;
  812.     import java.awt.EventQueue;
  813.     import javax.swing.ImageIcon;
  814.     import javax.swing.JFrame;
  815.     import javax.swing.JPanel;
  816.     import javax.swing.UIManager;
  817.     import javax.swing.border.LineBorder;
  818.     import javax.swing.JLabel;
  819.     import java.awt.Font;
  820.     import javax.swing.JTextField;
  821.     import javax.swing.JButton;
  822.     import java.awt.event.ActionListener;
  823.     import java.awt.event.ActionEvent;
  824. /* fine import per il progetto */
  825.  
  826. public class JButtonsetTextWindow extends JFrame /* classe contente la grafica del programma */
  827. {
  828.     private JPanel contentPane; /* controllo JPanel */
  829.     private JTextField txtTesto; /* controllo JTextField */
  830.     private JButton btnOk;/* variabile privata di tipo JPanel */
  831.     private static String argument; /* variabile privata di tipo stringa contenente la scelta dell'utente */
  832.  
  833.     public static void main(String[] args) /* il programma inizia dalla funzione main() */
  834.     {
  835.         EventQueue.invokeLater(new Runnable() /* creo una nuova interfaccia di tipo Runnable */
  836.         {
  837.             public void run() /* creo il metodo che avvierà il programma */
  838.             {
  839.                 try /* mi assicuro che il programma venga eseguito correttamente, in caso contrario visualizza l'eventuale messaggio di errore */
  840.                 {
  841.                     UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); /* applico alla finestra il "tema£ del sistema operativo */
  842.                     JButtonsetTextWindow window = new JButtonsetTextWindow(); /* istanzio la classe */
  843.                     window.setVisible(true); /* rendo visibile il JFrame */
  844.                 } catch (Exception e) { e.printStackTrace(); } /* visualizzo l'errore all'utente */
  845.             }
  846.         }); /* fine programma */
  847.     }
  848.  
  849.     public JButtonsetTextWindow() /* GUI */
  850.     {
  851.         initialize(); /* richiamo il metodo */
  852.     }
  853.  
  854.     static String getArgument() /* creo un metodo che mi restituisce la stringa argument */
  855.     {
  856.         return argument; /* ritorno la stringa */
  857.     }
  858.    
  859.     private void initialize() /* metodo che inizializza i controlli */
  860.     {  
  861.         ImageIcon buttonImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/ok.gif")); /* variabile contenente l'immagine del bottone */
  862.        
  863.         /* Inizio scrittura codice relativa al form e al JPanel */
  864.             this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); /* quando l'utente farà click sulla X verrà liberata la memoria della finestra e si chiuderà */
  865.             this.setResizable(false); /* impedisco all'utente di ridimensionare la finestra */
  866.             this.setBounds(650, 450, 380, 120); /* imposto le coordinate x = 700, y = 450 e la grandezza della finestra : width = 380, height = 120 */
  867.             this.setTitle("Java GUI Code Creator - .setText"); /* setto il titolo della finestra */
  868.             contentPane = new JPanel(); /* istanzio il JPanel */
  869.             contentPane.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bordi del JPanel */
  870.             this.setContentPane(contentPane); /* aggiungi il JPanel al form */
  871.             contentPane.setLayout(null); /* non setto nessuna Layout */
  872.            
  873.             JLabel lblSetTitle = new JLabel(".setText("); /* istanzio una nuova JLabel e la chiamo ".setTitle(" */
  874.             lblSetTitle.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  875.             lblSetTitle.setBounds(12, 12, 76, 14); /* imposto le coordinate x = 12, y = 12 e la grandezza della finestra : width = 76, height = 14 */
  876.             contentPane.add(lblSetTitle); /* aggiungo il controllo al JPanel */
  877.            
  878.             txtTesto = new JTextField(); /* istanzio una nuova JTextField */
  879.             txtTesto.setBounds(84, 10, 157, 18); /* imposto le coordinate x = 84, y = 10 e la grandezza della finestra : width = 157, height = 18 */
  880.             contentPane.add(txtTesto); /* aggiungo il controllo al JPanel */
  881.            
  882.             JLabel lblParentesi = new JLabel(")"); /* istanzio una nuova JLabel e la chiamo ")" */
  883.             lblParentesi.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  884.             lblParentesi.setBounds(243, 12, 76, 14); /* imposto le coordinate x = 243, y = 12 e la grandezza della finestra : width = 76, height = 14 */
  885.             contentPane.add(lblParentesi); /* aggiungo il controllo al JPanel */
  886.            
  887.             btnOk = new JButton("Ok"); /* istanzio un nuovo JButton e lo chiamo "Ok" */
  888.             btnOk.addActionListener(new ActionListener() /* aggiungo l'evento che prenderà la scelta dell'utente dalla JTextField */
  889.             {
  890.                 public void actionPerformed(ActionEvent e) /* l'evento viene trattato come un metodo */
  891.                 {
  892.                     argument = "\"" + txtTesto.getText().toString() + "\""; /* la variabile "argument" conterrà la scelta dell'utente */
  893.                 }
  894.             });
  895.             btnOk.setIcon(new ImageIcon(buttonImage.getImage())); /* setto l'immagine del bottone */
  896.             btnOk.setBounds(222, 40, 82, 24); /* imposto le coordinate x = 222, y = 40 e la grandezza della finestra : width = 82, height = 24 */
  897.             contentPane.add(btnOk); /* aggiungo il controllo al JPanel */
  898.            
  899.         /* Fine scrittura codice relativa al form e al JPanel */
  900.     }
  901. }
  902.  
  903. ______________________________________________________________________________________________
  904.  
  905. JFrameCodeCreator.java
  906.  
  907. package gui.code.creator;
  908.  
  909. /* inizio import per il progetto */
  910.     import java.awt.Color;
  911.     import java.awt.EventQueue;
  912.     import java.awt.Toolkit;
  913.     import java.awt.datatransfer.Clipboard;
  914.     import java.awt.datatransfer.StringSelection;
  915.     import java.awt.datatransfer.Transferable;
  916.     import java.awt.event.ActionEvent;
  917.     import java.awt.event.ActionListener;
  918.     import java.awt.event.ItemEvent;
  919.     import java.awt.event.ItemListener;
  920.     import javax.swing.JFrame;
  921.     import javax.swing.JPanel;
  922.     import javax.swing.border.LineBorder;
  923.     import javax.swing.ImageIcon;
  924.     import javax.swing.JMenu;
  925.     import javax.swing.JMenuBar;
  926.     import javax.swing.JMenuItem;
  927.     import javax.swing.SwingConstants;
  928.     import javax.swing.JCheckBox;
  929.     import javax.swing.JLabel;
  930.     import javax.swing.JButton;
  931.     import javax.swing.JTextPane;
  932.     import javax.swing.UIManager;
  933.     import javax.swing.border.EtchedBorder;
  934. /* fine import per il progetto */
  935.  
  936. public class JFrameCodeCreator extends JFrame /* classe contente la grafica del programma */
  937. {
  938.     private JPanel contentPane; /* variabile privata di tipo JPanel */
  939.     private boolean cbVisualizzaAnteprimaIsChecked = false; /* variabile privata di tipo boolean che verifica che sa la checkbox VisualizzaAnteprima è selezionata o no */
  940.     private boolean cbsetDefaultCloseOperationIsChecked = false; /* variabile privata di tipo boolean che verifica che sa la checkbox setDefaultCloseOperation è selezionata o no */
  941.     private boolean cbsetResizableIsChecked = false; /* variabile privata di tipo boolean che verifica che sa la checkbox setResizable è selezionata o no */
  942.     private boolean cbsetBoundsIsChecked = false; /* variabile privata di tipo boolean che verifica che sa la checkbox setBounds è selezionata o no */
  943.     private boolean cbsetTitleIsChecked = false; /* variabile privata di tipo boolean che verifica che sa la checkbox setTitle è selezionata o no */
  944.     private String setDefaultCloseOperationString, setResizableString, setBoundsString, setTitleString; /* variabili private di tipo string che contengono la scelta dell'utente */
  945.    
  946.     public static void main(String[] args) /* il programma inizia dalla funzione main() */
  947.     {
  948.         EventQueue.invokeLater(new Runnable() /* creo una nuova interfaccia di tipo Runnable */
  949.         {
  950.             public void run() /* creo il metodo che avvierà il programma */
  951.             {
  952.                 try /* mi assicuro che il programma venga eseguito correttamente, in caso contrario visualizza l'eventuale messaggio di errore */
  953.                 {
  954.                     UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); /* applico alla finestra il "tema" del sistema operativo */
  955.                     JFrameCodeCreator window = new JFrameCodeCreator(); /* istanzio la classe */
  956.                     window.setVisible(true); /* rendo visibile il JFrame */
  957.                 } catch (Exception e) { e.printStackTrace(); } /* visualizzo l'errore all'utente */
  958.             }
  959.         }); /* fine programma */
  960.     }
  961.  
  962.     public JFrameCodeCreator() /* GUI */
  963.     {
  964.         initialize(); /* richiamo il metodo */
  965.     }
  966.    
  967.     private void initialize() /* metodo che inizializza i controlli */
  968.     {      
  969.         /* Inizio scrittura codice relativa al form e al JPanel */
  970.             this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); /* quando l'utente farà click sulla X verrà liberata la memoria della finestra e si chiuderà */
  971.             this.setResizable(false); /* impedisco all'utente di ridimensionare la finestra */
  972.             this.setBounds(250, 300, 450, 365); /* imposto le coordinate x = 250, y = 300 e la grandezza della finestra : width = 450, height = 365 */
  973.             this.setTitle("Java GUI Code Creator - JFrame"); /* setto il titolo della finestra */
  974.             contentPane = new JPanel(); /* istanzio il JPanel */
  975.             contentPane.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bordi del JPanel */
  976.             this.setContentPane(contentPane); /* aggiungi il JPanel al form */
  977.             contentPane.setLayout(null); /* non setto nessuna layout */
  978.            
  979.             ImageIcon generateImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/genera.png")); /* varabile contenente l'immagine del bottone "Genera codice" */
  980.             ImageIcon copycodeImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/copy.png")); /* varabile contenente l'immagine del bottone "Copia codice" */
  981.            
  982.             JCheckBox cbVisualizzaAnteprima = new JCheckBox("Visualizza anteprima"); /* istanzio una nuova JCheckBox e la chiamo "Visualizza Anteprima" */
  983.             cbVisualizzaAnteprima.setBounds(264, 8, 174, 22); /* imposto le coordinate x = 264, y = 8 e la grandezza del controllo : width = 174, height = 22 */
  984.             contentPane.add(cbVisualizzaAnteprima); /* aggiungo il controllo al JPanel */
  985.            
  986.             JLabel lblMetodiJframe = new JLabel("Metodi JFrame"); /* istanzio una nuova JLabel e la chiamo "Metodi JFrame" */
  987.             lblMetodiJframe.setBounds(86, 12, 112, 14); /* imposto le coordinate x = 86, y = 12 e la grandezza del controllo : width = 112, height = 14 */
  988.             contentPane.add(lblMetodiJframe); /* aggiungo il controllo al JPanel */
  989.            
  990.             final JLabel lblAnteprima = new JLabel("Anteprima"); /* istanzio una nuova JLabel e la chiamo "Anteprima" */
  991.             lblAnteprima.setBounds(334, 38, 82, 14); /* imposto le coordinate x = 334, y = 38 e la grandezza del controllo : width = 82, height = 14 */
  992.             lblAnteprima.setVisible(false); /* rendo invisibile la label */
  993.             contentPane.add(lblAnteprima); /* aggiungo il controllo al JPanel */
  994.            
  995.             JPanel panelMetodiJFrame = new JPanel(); /* istanzio un nuov JPanel */
  996.             panelMetodiJFrame.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bord del JPanel */
  997.             panelMetodiJFrame.setBounds(12, 27, 252, 120); /* imposto le coordinate x = 12, y = 27 e la grandezza del controllo : width = 252, height = 120 */
  998.             contentPane.add(panelMetodiJFrame); /* aggiungo il controllo al JPanel */
  999.            
  1000.             JCheckBox cbsetDefaultCloseOperation = new JCheckBox(".setDefaultCloseOperation(arg)"); /* istanzio una nuovo JCheckBox e la chiamo ".setDefaultCloseOperation(arg)" */
  1001.             cbsetDefaultCloseOperation.setToolTipText("Spuntando questo campo quando l'utente cliccherà sulla X il programma si chiuderà correttamente"); /* setto il Tooltip del controllo */
  1002.             panelMetodiJFrame.add(cbsetDefaultCloseOperation); /* aggiungo il controllo al panel contenente i metodi del JFrame */
  1003.            
  1004.             JCheckBox cbsetResizable = new JCheckBox(".setResizable(true/false)            "); /* istanzio una nuovo JCheckBox e la chiamo ".setResizable(true/false)", gli spazi sono per allineare la checkbox con le altre */
  1005.             cbsetResizable.setHorizontalAlignment(SwingConstants.LEFT); /* setto l'allineamento verso sinistra  */
  1006.             cbsetResizable.setToolTipText("Spuntando questo campo l'utente potrà/non potrà ridimensionare la finestra"); /* setto il Tooltip del controllo */
  1007.             panelMetodiJFrame.add(cbsetResizable); /* aggiungo il controllo al al panel contenente i metodi del JFrame */
  1008.            
  1009.             JCheckBox cbsetBounds = new JCheckBox(".setBounds(x, y, width, height) "); /* istanzio una nuovo JCheckBox e la chiamo ".setBounds(x, y, width, height)", gli spazi sono per allineare la checkbox con le altre */
  1010.             cbsetBounds.setToolTipText("Sputando questo campo l'utente può scegliere la posizione X, Y, la larghezza e l'altezza della finestra"); /* setto il Tooltip del controllo */
  1011.             panelMetodiJFrame.add(cbsetBounds); /* aggiungo il controllo al al panel contenente i metodi del JFrame */
  1012.            
  1013.             JCheckBox cbsetTitle = new JCheckBox(".setTitle(titolo)                             "); /* istanzio una nuovo JCheckBox e la chiamo ".setTitle(titolo)", gli spazi sono per allineare la checkbox con le altre */
  1014.             cbsetTitle.setToolTipText("Spuntando questo campo l'utente potrà/non potrà ridimensionare la finestra"); /* setto il Tooltip del controllo */
  1015.             cbsetTitle.setHorizontalAlignment(SwingConstants.LEFT); /* setto l'allineamento verso sinistra  */
  1016.             panelMetodiJFrame.add(cbsetTitle); /* aggiungo il controllo al al panel contenente i metodi del JFrame */
  1017.            
  1018.             final JPanel panelAnteprima = new JPanel(); /* istazio un nuovo JPanel */
  1019.             panelAnteprima.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bordi del JPanel */
  1020.             panelAnteprima.setBounds(314, 52, 120, 82); /* imposto le coordinate x = 314, y = 52 e la grandezza del controllo : width = 120, height = 82 */
  1021.             panelAnteprima.setVisible(false); /* rendo invisibile il JPanel */
  1022.             contentPane.add(panelAnteprima);/* aggiungo il controllo al JPanel */
  1023.            
  1024.             JLabel lblCodiceGenerato = new JLabel("Codice generato"); /* istanzio una nuova JLabel e la chiamo "Codice generato" */
  1025.             lblCodiceGenerato.setBounds(75, 170, 120, 14); /* imposto le coordinate x = 75, y = 170 e la grandezza del controllo : width = 120, height = 14 */
  1026.             contentPane.add(lblCodiceGenerato); /* aggiungo il controllo al JPanel */
  1027.            
  1028.             final JTextPane txtCodice = new JTextPane(); /* istanzio un nuovo JTextPane */
  1029.             txtCodice.setForeground(Color.RED); /* setto il colore del testo */
  1030.             txtCodice.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null)); /* setto i bordi del controllo */
  1031.             txtCodice.setBounds(12, 187, 252, 122); /* imposto le coordinate x = 12, y = 187 e la grandezza del controllo : width = 252, height = 122 */
  1032.             contentPane.add(txtCodice); /* aggiungo il controllo al JPanel */
  1033.            
  1034.             JButton btnGeneraCodice = new JButton("Genera codice"); /* istanzio un nuovo JButton e lo chiamo "Genera codice" */
  1035.             btnGeneraCodice.addActionListener(new ActionListener() /* aggiungo l'evento che genera il codice prendendo le informazioni dagli altri form in cui l'utente ha scelto gli argomenti */
  1036.             {
  1037.                 public void actionPerformed(ActionEvent e) /* l'evento viene trattato come un metodo */
  1038.                 {
  1039.                     JFramesetDefaultCloseOperationWindow setdefaultcloseoperationwindow = new JFramesetDefaultCloseOperationWindow(); /* istanzio la classe JFramesetDefaultCloseOperationWindow */
  1040.                     setDefaultCloseOperationString = txtCodice.getText().toString() + "this.setDefaultCloseOperation(JFrame." + setdefaultcloseoperationwindow.getArgument() + ");" + "\n"; /* la variabile setDefaultCloseOperationString conterrà quanto scritto nel JTextPane + il codice preimpostato + quello che l'utente ha scelto quando si è aperto il form relativo alla scelta dell'argomento del metodo setDefaultCloseOperation */
  1041.                     txtCodice.setText(setDefaultCloseOperationString); /* inserisco nel JTextPane la stringa setDefaultCloseOperationString che corrisponde al codice */
  1042.                    
  1043.                     JFramesetResizableWindow setresizablewindow = new JFramesetResizableWindow(); /* istanzio la classe JFramesetResizableWindow */
  1044.                     setResizableString = txtCodice.getText().toString() + "this.setResizable(" + setresizablewindow.getArgument() + ");" + "\n"; /* la variabile setResizableString conterrà quanto scritto nel JTextPane + il codice preimpostato + quello che l'utente ha scelto quando si è aperto il form relativo alla scelta dell'argomento del metodo setResizable */
  1045.                     txtCodice.setText(setResizableString); /* inserisco nel JTextPane la stringa setResizableString che corrisponde al codice */
  1046.                    
  1047.                     JFramesetBoundsWindow setboundswindow = new JFramesetBoundsWindow(); /* istanzio la classe JFramesetBoundsWindow */
  1048.                     setBoundsString = txtCodice.getText().toString() + "this.setBounds(" + setboundswindow.getArgument() + ");" + "\n"; /* la variabile setBoundsString conterrà quanto scritto nel JTextPane + il codice preimpostato + quello che l'utente ha scelto quando si è aperto il form relativo alla scelta dell'argomento del metodo setBounds */
  1049.                     txtCodice.setText(setBoundsString); /* inserisco nel JTextPane la stringa setBoundsString che corrisponde al codice */
  1050.                    
  1051.                     JFramesetTitleWindow settitlewindow = new JFramesetTitleWindow(); /* istanzio la classe JFramesetTitleWindow */
  1052.                     setTitleString = txtCodice.getText().toString() + "this.setTitle(" + settitlewindow.getArgument() + ");" + "\n"; /* la variabile setTitleString conterrà quanto scritto nel JTextPane + il codice preimpostato + quello che l'utente ha scelto quando si è aperto il form relativo alla scelta dell'argomento del metodo setTitle */
  1053.                     txtCodice.setText(setTitleString); /* inserisco nel JTextPane la stringa setTitleString che corrisponde al codice */
  1054.                 }
  1055.             });
  1056.             btnGeneraCodice.setHorizontalAlignment(SwingConstants.LEFT); /* setto l'allineamento verso sinistra  */
  1057.             btnGeneraCodice.setIcon(new ImageIcon(generateImage.getImage())); /* setto l'immagine del bottone */
  1058.             btnGeneraCodice.setBounds(276, 209, 162, 24); /* imposto le coordinate x = 276, y = 209 e la grandezza del controllo : width = 162, height = 24 */
  1059.             contentPane.add(btnGeneraCodice); /* aggiungo il controllo al JPanel */
  1060.            
  1061.             JButton btnCopiaCodice = new JButton("Copia codice"); /* istanzio un nuovo JButton e lo chiamo "Copia codice" */
  1062.             btnCopiaCodice.addActionListener(new ActionListener() /* aggiungo l'evento che copia il codice negli appunti */
  1063.             {
  1064.                 public void actionPerformed(ActionEvent e) /* l'evento viene trattato come un metodo */
  1065.                 {
  1066.                     Clipboard copy = Toolkit.getDefaultToolkit ().getSystemClipboard(); /* rilevo la Clipboard */
  1067.                     copy.setContents ((Transferable) new StringSelection (txtCodice.getText().toString()), null); /* inserisco in memoria quello che c'è scritto nel JTextPane */
  1068.                 }
  1069.             });
  1070.             btnCopiaCodice.setHorizontalAlignment(SwingConstants.LEFT); /* setto l'allineamento verso sinistra  */
  1071.             btnCopiaCodice.setIcon(new ImageIcon(copycodeImage.getImage())); /* setto l'immagine del bottone */
  1072.             btnCopiaCodice.setBounds(276, 256, 162, 24); /* imposto le coordinate x = 276, y = 256 e la grandezza del controllo : width = 162, height = 24 */
  1073.             contentPane.add(btnCopiaCodice);/* aggiungo il controllo al JPanel */
  1074.         /* Fine scrittura codice relativa al form e al JPanel */
  1075.        
  1076.         /* Inizio scrittura codice relativo al JMenuBar */
  1077.             ImageIcon firstmenuItemImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/clear.png")); /* variabile contenente l'immagine del primo item della barra dei menù */
  1078.             ImageIcon secondmenuItemImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/exit.png")); /* variabile contenente l'immagine del secondo item della barra dei menù */
  1079.        
  1080.             JMenuBar menuBar = new JMenuBar(); /* inizializzo la barra dei menù */
  1081.             menuBar.setBounds(224, 290, 129, 21); /* imposto le coordinate x = 224, y = 290 e la grandezza del barra menu : width = 129, height = 21 */
  1082.        
  1083.             JMenu menu = new JMenu("File"); /* inizializzo un nuovo menu e lo chiamo "JFile" */
  1084.             menuBar.add(menu); /* aggiungo il menu alla barra dei menù */
  1085.  
  1086.             JMenuItem firstItem = new JMenuItem("Pulisci", firstmenuItemImage); /* inizializzo un nuovo item della menubar chiamandolo "Pulisci" e associandogli la relativa immagine */
  1087.             JMenuItem secondItem = new JMenuItem("Chiudi", secondmenuItemImage); /* inizializzo un nuovo item della menubar chiamandolo "Chiudi" e associandogli la relativa immagine */
  1088.             firstItem.setHorizontalAlignment(SwingConstants.CENTER); /* imposto la scritta del primo item al centro */
  1089.             secondItem.setHorizontalAlignment(SwingConstants.CENTER); /* imposto la scritta del secondo item al centro */
  1090.             menu.add(firstItem); /* aggiungo il primo item al menu */
  1091.             menu.add(secondItem); /* aggiungo il secondo item al menu */
  1092.        
  1093.             this.setJMenuBar(menuBar); /* setto come JMenuBar la barra dei menu finora creata */
  1094.         /* Fine scrittura codice relativo al JMenuBar */
  1095.        
  1096.         /* Inizio scrittura codice relativo al click degli item dalla barra dei menu */
  1097.             firstItem.addActionListener(new ActionListener() /* quando l'utente clicca su "Pulisci" viene pulita la JTextField */
  1098.             {
  1099.                 public void actionPerformed(ActionEvent e) /* l'evento viene trattato come metodo */
  1100.                 {
  1101.                     txtCodice.setText(""); /* setto il testo della JTextPane come "vuoto" */
  1102.                 }
  1103.             });
  1104.        
  1105.             secondItem.addActionListener(new ActionListener() /* quando l'utente clicca su "Chiudi" il programma termina */
  1106.             {
  1107.                 public void actionPerformed(ActionEvent e) /* l'evento viene trattato come metodo */
  1108.                 {
  1109.                     System.exit(0); /* restituisce 0 al sistema per indicare che l'applicazione è stata chiusa correttamente e la memoria è stata deallocata */
  1110.                 }
  1111.             });
  1112.         /* Fine scrittura codice relativo al click degli item dalla barra dei menu */
  1113.            
  1114.         /* Inizio scrittura codice relativa allo stato ( checked, unchecked ) di tutte le CheckBox */
  1115.             cbVisualizzaAnteprima.addItemListener(new ItemListener() /* aggiungo l'evento che verifica se la cbVisualizzaAnteprima è spuntata o no */
  1116.             {
  1117.                 public void itemStateChanged(ItemEvent item) /* l'evento viene trattato come un metodo */
  1118.                 {
  1119.                     cbVisualizzaAnteprimaIsChecked = (item.getStateChange() == ItemEvent.SELECTED); /* cbVisualizzaAnteprimaIsChecked sarà TRUE se la checkbox è spuntata, FALSE se non lo è */
  1120.                     if(cbVisualizzaAnteprimaIsChecked) /* equivale a = if( cbVisualizzaAnteprimaIsChecked == true), se la checkbox è stata spuntata visualizza la label e il JPanel */
  1121.                     {
  1122.                         lblAnteprima.setVisible(true); /* rendo visibile la label */
  1123.                         panelAnteprima.setVisible(true); /* rendo visibile il JPanel */
  1124.                     }
  1125.                     else /* altrimenti se non è spuntata li nasconde */
  1126.                     {
  1127.                         lblAnteprima.setVisible(false); /* rendo invisibile la label */
  1128.                         panelAnteprima.setVisible(false); /* rendo invisibile il JPanel */
  1129.                     }
  1130.                 }
  1131.             });
  1132.            
  1133.             cbsetDefaultCloseOperation.addItemListener(new ItemListener() /* aggiungo l'evento che verifica se la cbsetDefaultCloseOperation è spuntata o no */
  1134.             {
  1135.                 public void itemStateChanged(ItemEvent item) /* l'evento viene trattato come un metodo */
  1136.                 {
  1137.                     cbsetDefaultCloseOperationIsChecked = (item.getStateChange() == ItemEvent.SELECTED); /* cbsetDefaultCloseOperationIsChecked sarà TRUE se la checkbox è spuntata, FALSE se non lo è */
  1138.                     if(cbsetDefaultCloseOperationIsChecked) /* equivale a = if( cbsetDefaultCloseOperationIsChecked == true), se la checkbox è stata spuntata visualizza la finestra relativa al metodo setDefaultCloseOperation */
  1139.                     {
  1140.                         JFramesetDefaultCloseOperationWindow setdefaultcloseoperation = new JFramesetDefaultCloseOperationWindow(); /* istanzio la classe setDefaultCloseOperationWindow */
  1141.                         setdefaultcloseoperation.main(null); /* richiamo la funzione main nella quale vi è il codice per mostrare la finestra passandogli come argomento NULL, la finestra viene visualizzata */
  1142.                     }
  1143.                 }
  1144.             });
  1145.            
  1146.             cbsetResizable.addItemListener(new ItemListener() /* aggiungo l'evento che verifica se la cbsetResizable è spuntata o no */
  1147.             {
  1148.                 public void itemStateChanged(ItemEvent item) /* l'evento viene trattato come un metodo */
  1149.                 {
  1150.                     cbsetResizableIsChecked = (item.getStateChange() == ItemEvent.SELECTED); /* cbsetResizableIsChecked sarà TRUE se la checkbox è spuntata, FALSE se non lo è */
  1151.                     if(cbsetResizableIsChecked) /* equivale a = if( cbsetDefaultCloseOperationIsChecked == true), se la checkbox è stata spuntata visualizza la finestra relativa al metodo setResizable */
  1152.                     {
  1153.                         JFramesetResizableWindow setresizablewindow = new JFramesetResizableWindow(); /* istanzio la classe setResizableWindow */
  1154.                         setresizablewindow.main(null); /* richiamo la funzione main nella quale vi è il codice per mostrare la finestra passandogli come argomento NULL, la finestra viene visualizzata */
  1155.                     }
  1156.                 }
  1157.             });
  1158.            
  1159.             cbsetBounds.addItemListener(new ItemListener() /* aggiungo l'evento che verifica se la cbsetBounds è spuntata o no */
  1160.             {
  1161.                 public void itemStateChanged(ItemEvent item) /* l'evento viene trattato come un metodo */
  1162.                 {
  1163.                     cbsetBoundsIsChecked = (item.getStateChange() == ItemEvent.SELECTED); /* cbsetBoundsIsChecked sarà TRUE se la checkbox è spuntata, FALSE se non lo è */
  1164.                     if(cbsetBoundsIsChecked) /* equivale a = if( cbsetBoundsIsChecked == true), se la checkbox è stata spuntata visualizza la finestra relativa al metodo setBounds */
  1165.                     {
  1166.                         JFramesetBoundsWindow setboundswindow = new JFramesetBoundsWindow(); /* istanzio la classe setBoundsWindow */
  1167.                         setboundswindow.main(null); /* richiamo la funzione main nella quale vi è il codice per mostrare la finestra passandogli come argomento NULL, la finestra viene visualizzata */
  1168.                     }
  1169.                 }
  1170.             });
  1171.            
  1172.             cbsetTitle.addItemListener(new ItemListener() /* aggiungo l'evento che verifica se la cbsetTitle è spuntata o no */
  1173.             {
  1174.                 public void itemStateChanged(ItemEvent item) /* l'evento viene trattato come un metodo */
  1175.                 {
  1176.                     cbsetTitleIsChecked = (item.getStateChange() == ItemEvent.SELECTED); /* cbsetTitleIsChecked sarà TRUE se la checkbox è spuntata, FALSE se non lo è */
  1177.                     if(cbsetTitleIsChecked) /* equivale a = if( cbsetTitleIsChecked == true), se la checkbox è stata spuntata visualizza la finestra relativa al metodo setTitle */
  1178.                     {
  1179.                         JFramesetTitleWindow settitlewindow = new JFramesetTitleWindow(); /* istanzio la classe setTitleWindow */
  1180.                         settitlewindow.main(null); /* richiamo la funzione main nella quale vi è il codice per mostrare la finestra passandogli come argomento NULL, la finestra viene visualizzata */
  1181.                     }
  1182.                 }
  1183.             });
  1184.         /* Fine scrittura codice relativa allo stato ( checked, unchecked ) di tutte le CheckBox */
  1185.     }
  1186. }
  1187.  
  1188. ______________________________________________________________________________________________
  1189.  
  1190. JFramesetBoundsWindow.java
  1191.  
  1192. package gui.code.creator;
  1193.  
  1194. /* inizio import per il progetto */
  1195.     import java.awt.Color;
  1196.     import java.awt.EventQueue;
  1197.     import javax.swing.ImageIcon;
  1198.     import javax.swing.JFrame;
  1199.     import javax.swing.JPanel;
  1200.     import javax.swing.UIManager;
  1201.     import javax.swing.border.LineBorder;
  1202.     import javax.swing.JLabel;
  1203.     import java.awt.Font;
  1204.     import javax.swing.JTextField;
  1205.     import javax.swing.JButton;
  1206.     import java.awt.event.ActionListener;
  1207.     import java.awt.event.ActionEvent;
  1208. /* fine import per il progetto */
  1209.  
  1210. public class JFramesetBoundsWindow extends JFrame /* classe contente la grafica del programma */
  1211. {
  1212.     private JPanel contentPane; /* variabile privata di tipo JPanel */
  1213.     private JTextField txtX; /* controllo JTextField */
  1214.     private JTextField txtY; /* controllo JTextField */
  1215.     private JTextField txtWidth; /* controllo JTextField */
  1216.     private JTextField txtHeight; /* controllo JTextField */
  1217.     private JButton btnOk; /* controllo JButton */
  1218.     private static String argument; /* variabile privata di tipo stringa contenente la scelta dell'utente */
  1219.  
  1220.     public static void main(String[] args) /* il programma inizia dalla funzione main() */
  1221.     {
  1222.         EventQueue.invokeLater(new Runnable() /* creo una nuova interfaccia di tipo Runnable */
  1223.         {
  1224.             public void run() /* creo il metodo che avvierà il programma */
  1225.             {
  1226.                 try /* mi assicuro che il programma venga eseguito correttamente, in caso contrario visualizza l'eventuale messaggio di errore */
  1227.                 {
  1228.                     UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); /* applico alla finestra il "tema£ del sistema operativo */
  1229.                     JFramesetBoundsWindow window = new JFramesetBoundsWindow(); /* istanzio la classe */
  1230.                     window.setVisible(true); /* rendo visibile il JFrame */
  1231.                 } catch (Exception e) { e.printStackTrace(); } /* visualizzo l'errore all'utente */
  1232.             }
  1233.         }); /* fine programma */
  1234.     }
  1235.  
  1236.     public JFramesetBoundsWindow() /* GUI */
  1237.     {
  1238.         initialize(); /* richiamo il metodo */
  1239.     }
  1240.  
  1241.     static String getArgument() /* creo un metodo che mi restituisce la stringa argument */
  1242.     {
  1243.         return argument; /* ritorno la stringa */
  1244.     }
  1245.    
  1246.     private void initialize() /* metodo che inizializza i controlli */
  1247.     {
  1248.         ImageIcon buttonImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/ok.gif")); /* variabile contenente l'immagine del bottone */
  1249.        
  1250.         /* Inizio scrittura codice relativa al form e al JPanel */
  1251.             this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); /* quando l'utente farà click sulla X verrà liberata la memoria della finestra e si chiuderà */
  1252.             this.setResizable(false); /* impedisco all'utente di ridimensionare la finestra */
  1253.             this.setBounds(1150, 400, 380, 120); /* imposto le coordinate x = 1150, y = 400 e la grandezza della finestra : width = 380, height = 120 */
  1254.             this.setTitle("Java GUI Code Creator - .setBounds"); /* setto il titolo della finestra */
  1255.             contentPane = new JPanel(); /* istanzio il JPanel */
  1256.             contentPane.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bordi del JPanel */
  1257.             this.setContentPane(contentPane); /* aggiungi il JPanel al form */
  1258.             contentPane.setLayout(null); /* non setto nessuna Layout */
  1259.            
  1260.             JLabel lblsetBounds = new JLabel(".setBounds("); /* istanzio una nuova JLabel e la chiamo .setBounds( */
  1261.             lblsetBounds.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  1262.             lblsetBounds.setBounds(12, 23, 95, 14); /* imposto le coordinate x = 12, y = 23 e la grandezza della finestra : width = 95 height = 14 */
  1263.             contentPane.add(lblsetBounds); /* aggiungo il controllo al JPanel */
  1264.            
  1265.             txtX = new JTextField(); /* istanzio una nuova JTextField */
  1266.             txtX.setBounds(111, 21, 39, 18); /* imposto le coordinate x = 111, y = 21 e la grandezza della finestra : width = 39 height = 18 */
  1267.             contentPane.add(txtX); /* aggiungo il controllo al JPanel */
  1268.            
  1269.             JLabel lblVirgola1 = new JLabel(","); /* istanzio una nuova JLabel a la chiamo "," */
  1270.             lblVirgola1.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  1271.             lblVirgola1.setBounds(151, 23, 11, 14); /* imposto le coordinate x = 151, y = 23 e la grandezza della finestra : width = 11 height = 14 */
  1272.             contentPane.add(lblVirgola1); /* aggiungo il controllo al JPanel */
  1273.            
  1274.             txtY = new JTextField(); /* istanzio una nuova JTextField */
  1275.             txtY.setBounds(161, 21, 39, 18); /* imposto le coordinate x = 161, y = 21 e la grandezza della finestra : width = 39 height = 18 */
  1276.             contentPane.add(txtY); /* aggiungo il controllo al JPanel */
  1277.            
  1278.             JLabel lblVirgola2 = new JLabel(","); /* istanzio una nuova JLabel a la chiamo "," */
  1279.             lblVirgola2.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  1280.             lblVirgola2.setBounds(201, 23, 11, 14); /* imposto le coordinate x = 201, y = 23 e la grandezza della finestra : width = 11 height = 14 */
  1281.             contentPane.add(lblVirgola2); /* aggiungo il controllo al JPanel */
  1282.            
  1283.             txtWidth = new JTextField(); /* istanzio una nuova JTextField */
  1284.             txtWidth.setBounds(211, 21, 39, 18); /* imposto le coordinate x = 211, y = 21 e la grandezza della finestra : width = 39 height = 18 */
  1285.             contentPane.add(txtWidth); /* aggiungo il controllo al JPanel */
  1286.            
  1287.             JLabel lblVirgola3 = new JLabel(","); /* istanzio una nuova JLabel a la chiamo "," */
  1288.             lblVirgola3.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  1289.             lblVirgola3.setBounds(253, 23, 11, 14); /* imposto le coordinate x = 253, y = 23 e la grandezza della finestra : width = 11 height = 14 */
  1290.             contentPane.add(lblVirgola3); /* aggiungo il controllo al JPanel */
  1291.            
  1292.             txtHeight = new JTextField(); /* istanzio una nuova JTextField */
  1293.             txtHeight.setBounds(263, 21, 39, 18); /* imposto le coordinate x = 263, y = 21 e la grandezza della finestra : width = 39 height = 18 */
  1294.             contentPane.add(txtHeight); /* aggiungo il controllo al JPanel */
  1295.            
  1296.             JLabel lblParentesi = new JLabel(")"); /* istanzio una nuova JLabel a la chiamo ")" */
  1297.             lblParentesi.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  1298.             lblParentesi.setBounds(302, 23, 11, 14); /* imposto le coordinate x = 302, y = 23 e la grandezza della finestra : width = 11 height = 14 */
  1299.             contentPane.add(lblParentesi); /* aggiungo il controllo al JPanel */
  1300.            
  1301.             btnOk = new JButton("Ok"); /* istanzio un nuovo JButton e lo chiamo "Ok" */
  1302.             btnOk.addActionListener(new ActionListener() /* aggiungo l'evento che prenderà la scelta dell'utente dalle JTextField */
  1303.             {
  1304.                 public void actionPerformed(ActionEvent e) /* l'evento viene trattato come un metodo */
  1305.                 {
  1306.                     argument = txtX.getText().toString() + "," + txtY.getText().toString() + "," + txtWidth.getText().toString() + "," + txtHeight.getText().toString(); /* la variabile "argument" conterrà la scelta dell'utente */
  1307.                 }
  1308.             });
  1309.             btnOk.setIcon(new ImageIcon(buttonImage.getImage())); /* setto l'immagine del bottone */
  1310.             btnOk.setBounds(273, 51, 91, 24); /* imposto le coordinate x = 273, y = 51 e la grandezza della finestra : width = 91 height = 24 */
  1311.             contentPane.add(btnOk); /* aggiungo il controllo al JPanel */
  1312.         /* Fine scrittura codice relativa al form e al JPanel */
  1313.     }
  1314. }
  1315.  
  1316. ______________________________________________________________________________________________
  1317.  
  1318. JFramesetTitleWindow.java
  1319.  
  1320. package gui.code.creator;
  1321.  
  1322. /* inizio import per il progetto */
  1323.     import java.awt.Color;
  1324.     import java.awt.EventQueue;
  1325.     import javax.swing.ImageIcon;
  1326.     import javax.swing.JFrame;
  1327.     import javax.swing.JPanel;
  1328.     import javax.swing.UIManager;
  1329.     import javax.swing.border.LineBorder;
  1330.     import javax.swing.JLabel;
  1331.     import java.awt.Font;
  1332.     import javax.swing.JTextField;
  1333.     import javax.swing.JButton;
  1334.     import java.awt.event.ActionListener;
  1335.     import java.awt.event.ActionEvent;
  1336. /* fine import per il progetto */
  1337.  
  1338. public class JFramesetTitleWindow extends JFrame /* classe contente la grafica del programma */
  1339. {
  1340.     private JPanel contentPane; /* controllo JPanel */
  1341.     private JTextField txtTitolo; /* controllo JTextField */
  1342.     private JButton btnOk;/* variabile privata di tipo JPanel */
  1343.     private static String argument; /* variabile privata di tipo stringa contenente la scelta dell'utente */
  1344.  
  1345.     public static void main(String[] args) /* il programma inizia dalla funzione main() */
  1346.     {
  1347.         EventQueue.invokeLater(new Runnable() /* creo una nuova interfaccia di tipo Runnable */
  1348.         {
  1349.             public void run() /* creo il metodo che avvierà il programma */
  1350.             {
  1351.                 try /* mi assicuro che il programma venga eseguito correttamente, in caso contrario visualizza l'eventuale messaggio di errore */
  1352.                 {
  1353.                     UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); /* applico alla finestra il "tema£ del sistema operativo */
  1354.                     JFramesetTitleWindow window = new JFramesetTitleWindow(); /* istanzio la classe */
  1355.                     window.setVisible(true); /* rendo visibile il JFrame */
  1356.                 } catch (Exception e) { e.printStackTrace(); } /* visualizzo l'errore all'utente */
  1357.             }
  1358.         }); /* fine programma */
  1359.     }
  1360.  
  1361.     public JFramesetTitleWindow() /* GUI */
  1362.     {
  1363.         initialize(); /* richiamo il metodo */
  1364.     }
  1365.  
  1366.     static String getArgument() /* creo un metodo che mi restituisce la stringa argument */
  1367.     {
  1368.         return argument; /* ritorno la stringa */
  1369.     }
  1370.    
  1371.     private void initialize() /* metodo che inizializza i controlli */
  1372.     {  
  1373.         ImageIcon buttonImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/ok.gif")); /* variabile contenente l'immagine del bottone */
  1374.        
  1375.         /* Inizio scrittura codice relativa al form e al JPanel */
  1376.             this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); /* quando l'utente farà click sulla X verrà liberata la memoria della finestra e si chiuderà */
  1377.             this.setResizable(false); /* impedisco all'utente di ridimensionare la finestra */
  1378.             this.setBounds(1150, 450, 320, 100); /* imposto le coordinate x = 1150, y = 450 e la grandezza della finestra : width = 320, height = 100 */
  1379.             this.setTitle("Java GUI Code Creator - .setTitle"); /* setto il titolo della finestra */
  1380.             contentPane = new JPanel(); /* istanzio il JPanel */
  1381.             contentPane.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bordi del JPanel */
  1382.             this.setContentPane(contentPane); /* aggiungi il JPanel al form */
  1383.             contentPane.setLayout(null); /* non setto nessuna Layout */
  1384.            
  1385.             JLabel lblSetTitle = new JLabel(".setTitle("); /* istanzio una nuova JLabel e la chiamo ".setTitle(" */
  1386.             lblSetTitle.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  1387.             lblSetTitle.setBounds(12, 12, 76, 14); /* imposto le coordinate x = 12, y = 12 e la grandezza della finestra : width = 76, height = 14 */
  1388.             contentPane.add(lblSetTitle); /* aggiungo il controllo al JPanel */
  1389.            
  1390.             txtTitolo = new JTextField(); /* istanzio una nuova JTextField */
  1391.             txtTitolo.setBounds(84, 10, 157, 18); /* imposto le coordinate x = 84, y = 10 e la grandezza della finestra : width = 157, height = 18 */
  1392.             contentPane.add(txtTitolo); /* aggiungo il controllo al JPanel */
  1393.            
  1394.             JLabel lblParentesi = new JLabel(")"); /* istanzio una nuova JLabel e la chiamo ")" */
  1395.             lblParentesi.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  1396.             lblParentesi.setBounds(243, 12, 76, 14); /* imposto le coordinate x = 243, y = 12 e la grandezza della finestra : width = 76, height = 14 */
  1397.             contentPane.add(lblParentesi); /* aggiungo il controllo al JPanel */
  1398.            
  1399.             btnOk = new JButton("Ok"); /* istanzio un nuovo JButton e lo chiamo "Ok" */
  1400.             btnOk.addActionListener(new ActionListener() /* aggiungo l'evento che prenderà la scelta dell'utente dalla JTextField */
  1401.             {
  1402.                 public void actionPerformed(ActionEvent e) /* l'evento viene trattato come un metodo */
  1403.                 {
  1404.                     argument = "\"" + txtTitolo.getText().toString() + "\""; /* la variabile "argument" conterrà la scelta dell'utente */
  1405.                 }
  1406.             });
  1407.             btnOk.setIcon(new ImageIcon(buttonImage.getImage())); /* setto l'immagine del bottone */
  1408.             btnOk.setBounds(222, 40, 82, 24); /* imposto le coordinate x = 222, y = 40 e la grandezza della finestra : width = 82, height = 24 */
  1409.             contentPane.add(btnOk); /* aggiungo il controllo al JPanel */
  1410.            
  1411.         /* Fine scrittura codice relativa al form e al JPanel */
  1412.     }
  1413. }
  1414.  
  1415. ______________________________________________________________________________________________
  1416.  
  1417. JFramesetDefaultCloseOperationWindow.java
  1418.  
  1419. package gui.code.creator;
  1420.  
  1421. /* inizio import per il progetto */
  1422.     import java.awt.Color;
  1423.     import java.awt.EventQueue;
  1424.     import javax.swing.ImageIcon;
  1425.     import javax.swing.JFrame;
  1426.     import javax.swing.JPanel;
  1427.     import javax.swing.UIManager;
  1428.     import javax.swing.border.LineBorder;
  1429.     import javax.swing.JLabel;
  1430.     import java.awt.Font;
  1431.     import javax.swing.JComboBox;
  1432.     import javax.swing.JButton;
  1433.     import java.awt.event.ActionListener;
  1434.     import java.awt.event.ActionEvent;
  1435. /* fine import per il progetto */
  1436.  
  1437. public class JFramesetDefaultCloseOperationWindow extends JFrame /* classe contente la grafica del programma */
  1438. {
  1439.     private JPanel contentPane; /* variabile privata di tipo JPanel */
  1440.     private static String argument; /* variabile privata di tipo stringa contenente la scelta dell'utente */
  1441.  
  1442.     public static void main(String[] args) /* il programma inizia dalla funzione main() */
  1443.     {
  1444.         EventQueue.invokeLater(new Runnable() /* creo una nuova interfaccia di tipo Runnable */
  1445.         {
  1446.             public void run() /* creo il metodo che avvierà il programma */
  1447.             {
  1448.                 try /* mi assicuro che il programma venga eseguito correttamente, in caso contrario visualizza l'eventuale messaggio di errore */
  1449.                 {
  1450.                     UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); /* applico alla finestra il "tema£ del sistema operativo */
  1451.                     JFramesetDefaultCloseOperationWindow window = new JFramesetDefaultCloseOperationWindow(); /* istanzio la classe */
  1452.                     window.setVisible(true); /* rendo visibile il JFrame */
  1453.                 } catch (Exception e) { e.printStackTrace(); } /* visualizzo l'errore all'utente */
  1454.             }
  1455.         }); /* fine programma */
  1456.     }
  1457.  
  1458.     static String getArgument() /* creo un metodo che mi restituisce la stringa argument */
  1459.     {
  1460.         return argument; /* ritorno la stringa */
  1461.     }
  1462.    
  1463.     public JFramesetDefaultCloseOperationWindow() /* GUI */
  1464.     {
  1465.         initialize(); /* richiamo il metodo */
  1466.     }
  1467.  
  1468.     private void initialize() /* metodo che inizializza i controlli */
  1469.     {
  1470.         String[] args = {"EXIT_ON_CLOSE", "DISPOSE_ON_CLOSE", "HIDE_ON_CLOSE","DO_NOTHING_ON_CLOSE", "CROSSHAIR_CURSOR", "DEFAULT_CURSOR","HAND_CURSOR" }; /* array di stringhe contenente gli argomenti del metodo setDefaultCloseOperation */
  1471.         ImageIcon buttonImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/ok.gif")); /* variabile contenente l'immagine del bottone */
  1472.        
  1473.         /* Inizio scrittura codice relativa al form e al JPanel */
  1474.             this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); /* quando l'utente farà click sulla X verrà liberata la memoria della finestra e si chiuderà */
  1475.             this.setResizable(false); /* impedisco all'utente di ridimensionare la finestra */
  1476.             this.setBounds(1150, 300, 450, 100); /* imposto le coordinate x = 1150, y = 300 e la grandezza della finestra : width = 450, height = 300 */
  1477.             this.setTitle("Java GUI Code Creator - .setDefaultCloseOperation"); /* setto il titolo della finestra */
  1478.             contentPane = new JPanel(); /* istanzio il JPanel */
  1479.             contentPane.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bordi del JPanel */
  1480.             this.setContentPane(contentPane); /* aggiungo il JPanel al form */
  1481.             contentPane.setLayout(null); /* non setto nessuna Layout */
  1482.            
  1483.             JLabel lblsetDefaultCloseOperation = new JLabel(".setDefaultCloseOperation("); /* istanzio una nuova JLabel e la chiamo .setDefaultCloseOperation( */
  1484.             lblsetDefaultCloseOperation.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  1485.             lblsetDefaultCloseOperation.setBounds(12, 12, 218, 24); /* imposto le coordinate x = 12, y = 12 e la grandezza della finestra : width = 218 height = 24 */
  1486.             contentPane.add(lblsetDefaultCloseOperation); /* aggiungo il controllo al form */
  1487.            
  1488.             final JComboBox cbArgomenti = new JComboBox(args); /* istanzio una nuova JComboBox e come elementi aggiungo l'array di stringhe "args" */
  1489.             cbArgomenti.setBounds(230, 13, 171, 23); /* imposto le coordinate x = 230, y = 13 e la grandezza della finestra : width = 171 height = 23 */
  1490.             contentPane.add(cbArgomenti); /* aggiungo il controllo al form */
  1491.            
  1492.             JLabel lblParentesi = new JLabel(")"); /* istanzio una nuova JLabel e la chiamo ")" */
  1493.             lblParentesi.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  1494.             lblParentesi.setBounds(407, 17, 11, 14); /* imposto le coordinate x = 407, y = 17 e la grandezza della finestra : width = 11 height = 14 */
  1495.             contentPane.add(lblParentesi); /* aggiungo il controllo al form */
  1496.            
  1497.             JButton btnOk = new JButton("Ok"); /* istanzio un nuovo JButton e ne setto il testo "Ok" */
  1498.             btnOk.addActionListener(new ActionListener() /* aggiungo l'evento che prenderà la scelta dell'utente dalla JComboBox */
  1499.             {
  1500.                 public void actionPerformed(ActionEvent e) /* l'evento viene trattato come un metodo */
  1501.                 {
  1502.                     argument = cbArgomenti.getSelectedItem().toString(); /* la variabile "argument" conterrà la scelta dell'utente */
  1503.                 }
  1504.             });
  1505.             btnOk.setIcon(new ImageIcon(buttonImage.getImage())); /* setto l'immagine del bottone */
  1506.             btnOk.setBounds(348, 43, 86, 24); /* imposto le coordinate x = 348, y = 43 e la grandezza della finestra : width = 86 height = 24 */
  1507.             contentPane.add(btnOk); /* aggiungo il controllo al form */
  1508.         /* Fine scrittura codice relativa al form e al JPanel */
  1509.     }
  1510. }
  1511.  
  1512. ______________________________________________________________________________________________
  1513.  
  1514. JFramesetResizableWindow.java
  1515.  
  1516. package gui.code.creator;
  1517.  
  1518. /* inizio import per il progetto */
  1519.     import java.awt.Color;
  1520.     import java.awt.EventQueue;
  1521.     import javax.swing.ImageIcon;
  1522.     import javax.swing.JFrame;
  1523.     import javax.swing.JPanel;
  1524.     import javax.swing.UIManager;
  1525.     import javax.swing.border.LineBorder;
  1526.     import javax.swing.JLabel;
  1527.     import java.awt.Font;
  1528.     import javax.swing.JComboBox;
  1529.     import javax.swing.JButton;
  1530.     import java.awt.event.ActionListener;
  1531.     import java.awt.event.ActionEvent;
  1532. /* fine import per il progetto */
  1533.  
  1534. public class JFramesetResizableWindow extends JFrame /* classe contente la grafica del programma */
  1535. {
  1536.     private JPanel contentPane; /* variabile privata di tipo JPanel */
  1537.     private static String argument; /* variabile privata di tipo stringa contenente la scelta dell'utente */
  1538.  
  1539.     public static void main(String[] args) /* il programma inizia dalla funzione main() */
  1540.     {
  1541.         EventQueue.invokeLater(new Runnable() /* creo una nuova interfaccia di tipo Runnable */
  1542.         {
  1543.             public void run() /* creo il metodo che avvierà il programma */
  1544.             {
  1545.                 try /* mi assicuro che il programma venga eseguito correttamente, in caso contrario visualizza l'eventuale messaggio di errore */
  1546.                 {
  1547.                     UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); /* applico alla finestra il "tema£ del sistema operativo */
  1548.                     JFramesetResizableWindow window = new JFramesetResizableWindow(); /* istanzio la classe */
  1549.                     window.setVisible(true); /* rendo visibile il JFrame */
  1550.                 } catch (Exception e) { e.printStackTrace(); } /* visualizzo l'errore all'utente */
  1551.             }
  1552.         }); /* fine programma */
  1553.     }
  1554.  
  1555.     static String getArgument() /* creo un metodo che mi restituisce la stringa argument */
  1556.     {
  1557.         return argument; /* ritorno la stringa */
  1558.     }
  1559.    
  1560.     public JFramesetResizableWindow() /* GUI */
  1561.     {
  1562.         initialize(); /* richiamo il metodo */
  1563.     }
  1564.  
  1565.     private void initialize() /* metodo che inizializza i controlli */
  1566.     {
  1567.        
  1568.         String[] args = {"true", "false" }; /* array di stringhe contenente gli argomenti del metodo .setResizable */
  1569.         ImageIcon buttonImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/ok.gif")); /* variabile contenente l'immagine del bottone */
  1570.        
  1571.         /* Inizio scrittura codice relativa al form e al JPanel */
  1572.             this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); /* quando l'utente farà click sulla X verrà liberata la memoria della finestra e si chiuderà */
  1573.             this.setResizable(false); /* impedisco all'utente di ridimensionare la finestra */
  1574.             this.setBounds(1150, 350, 320, 100); /* imposto le coordinate x = 1150, y = 350 e la grandezza della finestra : width = 450, height = 100 */
  1575.             this.setTitle("Java GUI Code Creator - .setResizable"); /* setto il titolo della finestra */
  1576.             contentPane = new JPanel(); /* istanzio il JPanel */
  1577.             contentPane.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bordi del JPanel */
  1578.             this.setContentPane(contentPane); /* aggiungi il JPanel al form */
  1579.             contentPane.setLayout(null); /* non setto nessuna Layout */
  1580.            
  1581.             JLabel lblsetresizable = new JLabel(".setResizable("); /* istanzio una nuova JLabel e la chiamo ".setResizable(" */
  1582.             lblsetresizable.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  1583.             lblsetresizable.setBounds(12, 12, 119, 14); /* imposto le coordinate x = 12, y = 12 e la grandezza della finestra : width = 119 height = 14 */
  1584.             contentPane.add(lblsetresizable); /* aggiungo il controllo al form */
  1585.            
  1586.             final JComboBox cbArgomenti = new JComboBox(args); /* istanzio una nuova JComboBox e come elementi aggiungo l'array di stringhe "args" */
  1587.             cbArgomenti.setBounds(126, 8, 82, 23); /* imposto le coordinate x = 126, y = 8 e la grandezza della finestra : width = 82 height = 23 */
  1588.             contentPane.add(cbArgomenti); /* aggiungo il controllo al form */
  1589.            
  1590.             JLabel lblParentesi = new JLabel(")"); /* istanzio una nuova JLabel e la chiamo ")" */
  1591.             lblParentesi.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  1592.             lblParentesi.setBounds(212, 12, 11, 14); /* imposto le coordinate x = 212, y = 12 e la grandezza della finestra : width = 11 height = 14 */
  1593.             contentPane.add(lblParentesi); /* aggiungo il controllo al form */
  1594.            
  1595.             JButton btnOk = new JButton("Ok"); /* istanzio unnuovo JButton e la chiamo "Ok" */
  1596.             btnOk.addActionListener(new ActionListener() /* aggiungo l'evento che prenderà la scelta dell'utente dalla JComboBox */
  1597.             {
  1598.                 public void actionPerformed(ActionEvent e) /* l'evento viene trattato come un metodo */
  1599.                 {
  1600.                     argument = cbArgomenti.getSelectedItem().toString(); /* la variabile "argument" conterrà la scelta dell'utente */
  1601.                 }
  1602.             });
  1603.             btnOk.setIcon(new ImageIcon(buttonImage.getImage())); /* setto l'immagine del bottone */
  1604.             btnOk.setBounds(222, 41, 82, 24); /* imposto le coordinate x = 222, y = 41 e la grandezza della finestra : width = 82 height = 24 */
  1605.             contentPane.add(btnOk); /* aggiungo il controllo al form */
  1606.         /* Fine scrittura codice relativa al form e al JPanel */
  1607.     }
  1608. }
  1609.  
  1610. ______________________________________________________________________________________________
  1611.  
  1612. JLabelCodeCreator.java
  1613.  
  1614. package gui.code.creator;
  1615.  
  1616. /* inizio import per il progetto */
  1617.     import java.awt.Color;
  1618.     import java.awt.EventQueue;
  1619.     import java.awt.Toolkit;
  1620.     import java.awt.datatransfer.Clipboard;
  1621.     import java.awt.datatransfer.StringSelection;
  1622.     import java.awt.datatransfer.Transferable;
  1623.     import java.awt.event.ActionEvent;
  1624.     import java.awt.event.ActionListener;
  1625.     import java.awt.event.ItemEvent;
  1626.     import java.awt.event.ItemListener;
  1627.     import javax.swing.ImageIcon;
  1628.     import javax.swing.JButton;
  1629.     import javax.swing.JCheckBox;
  1630.     import javax.swing.JFrame;
  1631.     import javax.swing.JLabel;
  1632.     import javax.swing.JMenu;
  1633.     import javax.swing.JMenuBar;
  1634.     import javax.swing.JMenuItem;
  1635.     import javax.swing.JPanel;
  1636.     import javax.swing.JTextPane;
  1637.     import javax.swing.SwingConstants;
  1638.     import javax.swing.UIManager;
  1639.     import javax.swing.border.EtchedBorder;
  1640.     import javax.swing.border.LineBorder;
  1641. /* fine import per il progetto */
  1642.  
  1643. public class JLabelCodeCreator extends JFrame /* classe contente la grafica del programma */
  1644. {
  1645.     private JPanel contentPane; /* variabile privata di tipo JPanel */
  1646.     private boolean cbVisualizzaAnteprimaIsChecked = false; /* variabile privata di tipo boolean che verifica che sa la checkbox VisualizzaAnteprima è selezionata o no */
  1647.     private boolean cbsetBoundsIsChecked = false; /* variabile privata di tipo boolean che verifica che sa la checkbox setBounds è selezionata o no */
  1648.     private boolean cbsetTextIsChecked = false; /* variabile privata di tipo boolean che verifica che sa la checkbox setBounds è selezionata o no */
  1649.     private String setBoundsString, setTextString; /* variabili private di tipo string che contengono la scelta dell'utente */
  1650.  
  1651.     public static void main(String[] args) /* il programma inizia dalla funzione main() */
  1652.     {
  1653.         EventQueue.invokeLater(new Runnable() /* creo una nuova interfaccia di tipo Runnable */
  1654.         {
  1655.             public void run() /* creo il metodo che avvierà il programma */
  1656.             {
  1657.                 try /* mi assicuro che il programma venga eseguito correttamente, in caso contrario visualizza l'eventuale messaggio di errore */
  1658.                 {
  1659.                     UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); /* applico alla finestra il "tema£ del sistema operativo */
  1660.                     JLabelCodeCreator window = new JLabelCodeCreator(); /* istanzio la classe */
  1661.                     window.setVisible(true); /* rendo visibile il JFrame */
  1662.                 } catch (Exception e) { e.printStackTrace(); } /* visualizzo l'errore all'utente */
  1663.             }
  1664.         }); /* fine programma */
  1665.     }
  1666.  
  1667.     public JLabelCodeCreator() /* GUI */
  1668.     {
  1669.         initialize(); /* richiamo il metodo */
  1670.     }
  1671.  
  1672.     private void initialize() /* metodo che inizializza i controlli */
  1673.     {
  1674.         /* Inizio scrittura codice relativa al form e al JPanel */
  1675.             this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); /* quando l'utente farà click sulla X verrà liberata la memoria della finestra e si chiuderà */
  1676.             this.setResizable(false); /* impedisco all'utente di ridimensionare la finestra */
  1677.             this.setBounds(700, 0, 450, 365); /* imposto le coordinate x = 700, y = 0 e la grandezza della finestra : width = 450, height = 365 */
  1678.             this.setTitle("Java GUI Code Creator - JLabel"); /* setto il titolo della finestra */
  1679.             contentPane = new JPanel(); /* istanzio il JPanel */
  1680.             contentPane.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bordi del JPanel */
  1681.             this.setContentPane(contentPane); /* aggiungi il JPanel al form */
  1682.             contentPane.setLayout(null); /* non setto nessuna Layout */
  1683.            
  1684.             final JTextPane txtCodice = new JTextPane(); /* istanzio un nuovo JTextPane */
  1685.             txtCodice.setForeground(Color.RED); /* setto il colore del testo */
  1686.             txtCodice.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null)); /* setto i bordi del controllo */
  1687.             txtCodice.setBounds(12, 147, 252, 122); /* imposto le coordinate x = 12, y = 187 e la grandezza del controllo : width = 252, height = 122 */
  1688.             contentPane.add(txtCodice); /* aggiungo il controllo al JPanel */
  1689.            
  1690.             ImageIcon generateImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/genera.png")); /* varabile contenente l'immagine del bottone "Genera codice" */
  1691.             ImageIcon copycodeImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/copy.png")); /* varabile contenente l'immagine del bottone "Copia codice" */
  1692.            
  1693.             JCheckBox cbVisualizzaAnteprima = new JCheckBox("Visualizza anteprima"); /* istanzio una nuova JCheckBox e la chiamo "Visualizza Anteprima" */
  1694.             cbVisualizzaAnteprima.setBounds(264, 8, 174, 22); /* imposto le coordinate x = 264, y = 8 e la grandezza del controllo : width = 174, height = 22 */
  1695.             contentPane.add(cbVisualizzaAnteprima); /* aggiungo il controllo al JPanel */
  1696.            
  1697.             JLabel lblMetodiJframe = new JLabel("Metodi JFrame"); /* istanzio una nuova JLabel e la chiamo "Metodi JFrame" */
  1698.             lblMetodiJframe.setBounds(86, 12, 112, 14); /* imposto le coordinate x = 86, y = 12 e la grandezza del controllo : width = 112, height = 14 */
  1699.             contentPane.add(lblMetodiJframe); /* aggiungo il controllo al JPanel */
  1700.            
  1701.             final JLabel lblAnteprima = new JLabel("Anteprima"); /* istanzio una nuova JLabel e la chiamo "Anteprima" */
  1702.             lblAnteprima.setBounds(334, 38, 82, 14); /* imposto le coordinate x = 334, y = 38 e la grandezza del controllo : width = 82, height = 14 */
  1703.             lblAnteprima.setVisible(false); /* rendo invisibile la label */
  1704.             contentPane.add(lblAnteprima); /* aggiungo il controllo al JPanel */
  1705.            
  1706.             JPanel panelMetodiJFrame = new JPanel(); /* istanzio un nuov JPanel */
  1707.             panelMetodiJFrame.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bord del JPanel */
  1708.             panelMetodiJFrame.setBounds(12, 27, 252, 64); /* imposto le coordinate x = 12, y = 27 e la grandezza del controllo : width = 252, height = 120 */
  1709.             contentPane.add(panelMetodiJFrame);/* aggiungo il controllo al al panel contenente i metodi del JFrame */
  1710.            
  1711.             JCheckBox cbsetBounds = new JCheckBox(".setBounds(x, y, width, height) "); /* istanzio una nuovo JCheckBox e la chiamo ".setBounds(x, y, width, height)", gli spazi sono per allineare la checkbox con le altre */
  1712.             cbsetBounds.setToolTipText("Sputando questo campo l'utente può scegliere la posizione X, Y, la larghezza e l'altezza della finestra"); /* setto il Tooltip del controllo */
  1713.             panelMetodiJFrame.add(cbsetBounds); /* aggiungo il controllo al al panel contenente i metodi del JFrame */
  1714.            
  1715.             JCheckBox cbsetText = new JCheckBox(".setText(testo)                             "); /* istanzio una nuovo JCheckBox e la chiamo ".setText(testo)", gli spazi sono per allineare la checkbox con le altre */
  1716.             cbsetText.setToolTipText("Spuntando questo campo l'utente potrà scegliere il testo da attribuire al bottone"); /* setto il Tooltip del controllo */
  1717.             cbsetText.setHorizontalAlignment(SwingConstants.LEFT); /* setto l'allineamento verso sinistra  */
  1718.             panelMetodiJFrame.add(cbsetText); /* aggiungo il controllo al al panel contenente i metodi del JFrame */
  1719.            
  1720.             final JPanel panelAnteprima = new JPanel(); /* istazio un nuovo JPanel */
  1721.             panelAnteprima.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bordi del JPanel */
  1722.             panelAnteprima.setBounds(314, 52, 120, 82); /* imposto le coordinate x = 314, y = 52 e la grandezza del controllo : width = 120, height = 82 */
  1723.             panelAnteprima.setVisible(false); /* rendo invisibile il JPanel */
  1724.             contentPane.add(panelAnteprima);
  1725.            
  1726.             final JLabel lblLabel = new JLabel("Label"); /* istanzio un nuovo JButton e lo chiamo "Anteprima" */
  1727.             panelAnteprima.add(lblLabel);/* aggiungo il controllo al JPanel */
  1728.            
  1729.             JLabel lblCodiceGenerato = new JLabel("Codice generato"); /* istanzio una nuova JLabel e la chiamo "Codice generato" */
  1730.             lblCodiceGenerato.setBounds(74, 132, 120, 14); /* imposto le coordinate x = 74, y = 132 e la grandezza del controllo : width = 120, height = 14 */
  1731.             contentPane.add(lblCodiceGenerato); /* aggiungo il controllo al JPanel */
  1732.            
  1733.             JButton btnGeneraCodice = new JButton("Genera codice"); /* istanzio un nuovo JButton e lo chiamo "Genera codice" */
  1734.             btnGeneraCodice.addActionListener(new ActionListener() /* aggiungo l'evento che genera il codice prendendo le informazioni dagli altri form in cui l'utente ha scelto gli argomenti */
  1735.             {
  1736.                 public void actionPerformed(ActionEvent e) /* l'evento viene trattato come un metodo */
  1737.                 {          
  1738.                     JLabelsetBoundsWindow setboundswindow = new JLabelsetBoundsWindow(); /* istanzio la classe JLabelsetBoundsWindow */
  1739.                     setBoundsString = txtCodice.getText().toString() + "this.setBounds(" + setboundswindow.getArgument() + ");" + "\n"; /* la variabile setBoundsString conterrà quanto scritto nel JTextPane + il codice preimpostato + quello che l'utente ha scelto quando si è aperto il form relativo alla scelta dell'argomento del metodo setBounds */
  1740.                     txtCodice.setText(setBoundsString); /* inserisco nel JTextPane la stringa setBoundsString che corrisponde al codice */
  1741.                    
  1742.                     JLabelsetTextWindow settextwindow = new JLabelsetTextWindow(); /* istanzio la classe JLabelsetTextWindow */
  1743.                     setTextString = txtCodice.getText().toString() + "this.setText(" + settextwindow.getArgument() + ");" + "\n"; /* la variabile setTextString conterrà quanto scritto nel JTextPane + il codice preimpostato + quello che l'utente ha scelto quando si è aperto il form relativo alla scelta dell'argomento del metodo setText */
  1744.                     txtCodice.setText(setTextString); /* inserisco nel JTextPane la stringa setTextString che corrisponde al codice */
  1745.                 }
  1746.             });
  1747.             btnGeneraCodice.setHorizontalAlignment(SwingConstants.LEFT); /* setto l'allineamento verso sinistra  */
  1748.             btnGeneraCodice.setIcon(new ImageIcon(generateImage.getImage())); /* setto l'immagine del bottone */
  1749.             btnGeneraCodice.setBounds(276, 170, 162, 24); /* imposto le coordinate x = 276, y = 170 e la grandezza del controllo : width = 162, height = 24 */
  1750.             contentPane.add(btnGeneraCodice); /* aggiungo il controllo al JPanel */
  1751.            
  1752.             JButton btnCopiaCodice = new JButton("Copia codice"); /* istanzio un nuovo JButton e lo chiamo "Copia codice" */
  1753.             btnCopiaCodice.addActionListener(new ActionListener() /* aggiungo l'evento che copia il codice negli appunti */
  1754.             {
  1755.                 public void actionPerformed(ActionEvent e) /* l'evento viene trattato come un metodo */
  1756.                 {
  1757.                     Clipboard copy = Toolkit.getDefaultToolkit ().getSystemClipboard(); /* rilevo la Clipboard */
  1758.                     copy.setContents ((Transferable) new StringSelection (txtCodice.getText().toString()), null); /* inserisco in memoria quello che c'è scritto nel JTextPane */
  1759.                 }
  1760.             });
  1761.             btnCopiaCodice.setHorizontalAlignment(SwingConstants.LEFT); /* setto l'allineamento verso sinistra  */
  1762.             btnCopiaCodice.setIcon(new ImageIcon(copycodeImage.getImage())); /* setto l'immagine del bottone */
  1763.             btnCopiaCodice.setBounds(276, 219, 162, 24); /* imposto le coordinate x = 276, y = 256 e la grandezza del controllo : width = 162, height = 24 */
  1764.             contentPane.add(btnCopiaCodice);/* aggiungo il controllo al JPanel */
  1765.         /* Fine scrittura codice relativa al form e al JPanel */
  1766.            
  1767.         /* Inizio scrittura codice relativo al JMenuBar */
  1768.             ImageIcon firstmenuItemImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/clear.png")); /* variabile contenente l'immagine del primo item della barra dei menù */
  1769.             ImageIcon secondmenuItemImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/exit.png")); /* variabile contenente l'immagine del secondo item della barra dei menù */
  1770.        
  1771.             JMenuBar menuBar = new JMenuBar(); /* inizializzo la barra dei menù */
  1772.             menuBar.setBounds(224, 290, 129, 21); /* imposto le coordinate x = 224, y = 290 e la grandezza del barra menu : width = 129, height = 21 */
  1773.        
  1774.             JMenu menu = new JMenu("File"); /* inizializzo un nuovo menu e lo chiamo "JFile" */
  1775.             menuBar.add(menu); /* aggiungo il menu alla barra dei menù */
  1776.  
  1777.             JMenuItem firstItem = new JMenuItem("Pulisci", firstmenuItemImage); /* inizializzo un nuovo item della menubar chiamandolo "Pulisci" e associandogli la relativa immagine */
  1778.             JMenuItem secondItem = new JMenuItem("Chiudi", secondmenuItemImage); /* inizializzo un nuovo item della menubar chiamandolo "Chiudi" e associandogli la relativa immagine */
  1779.             firstItem.setHorizontalAlignment(SwingConstants.CENTER); /* imposto la scritta del primo item al centro */
  1780.             secondItem.setHorizontalAlignment(SwingConstants.CENTER); /* imposto la scritta del secondo item al centro */
  1781.             menu.add(firstItem); /* aggiungo il primo item al menu */
  1782.             menu.add(secondItem); /* aggiungo il secondo item al menu */
  1783.        
  1784.             this.setJMenuBar(menuBar); /* setto come JMenuBar la barra dei menu finora creata */
  1785.            
  1786.             /* Inizio scrittura codice relativo al click degli item dalla barra dei menu */
  1787.                 firstItem.addActionListener(new ActionListener() /* quando l'utente clicca su "Pulisci" viene pulita la JTextField */
  1788.                 {
  1789.                     public void actionPerformed(ActionEvent e) /* l'evento viene trattato come metodo */
  1790.                     {
  1791.                         txtCodice.setText(""); /* setto il testo della JTextPane come "vuoto" */
  1792.                     }
  1793.                 });
  1794.        
  1795.                 secondItem.addActionListener(new ActionListener() /* quando l'utente clicca su "Chiudi" il programma termina */
  1796.                 {
  1797.                     public void actionPerformed(ActionEvent e) /* l'evento viene trattato come metodo */
  1798.                     {
  1799.                         System.exit(0); /* restituisce 0 al sistema per indicare che l'applicazione è stata chiusa correttamente e la memoria è stata deallocata */
  1800.                     }
  1801.                 });
  1802.             /* Fine scrittura codice relativo al click degli item dalla barra dei menu */
  1803.         /* Fine scrittura codice relativo al JMenuBar */
  1804.                
  1805.         /* Inizio scrittura codice relativa allo stato ( checked, unchecked ) di tutte le CheckBox */
  1806.             cbVisualizzaAnteprima.addItemListener(new ItemListener() /* aggiungo l'evento che verifica se la cbVisualizzaAnteprima è spuntata o no */
  1807.             {
  1808.                 public void itemStateChanged(ItemEvent item) /* l'evento viene trattato come un metodo */
  1809.                 {
  1810.                     cbVisualizzaAnteprimaIsChecked = (item.getStateChange() == ItemEvent.SELECTED); /* cbVisualizzaAnteprimaIsChecked sarà TRUE se la checkbox è spuntata, FALSE se non lo è */
  1811.                     if(cbVisualizzaAnteprimaIsChecked) /* equivale a = if( cbVisualizzaAnteprimaIsChecked == true), se la checkbox è stata spuntata visualizza la label e il JPanel */
  1812.                     {
  1813.                         lblAnteprima.setVisible(true); /* rendo visibile la label */
  1814.                         panelAnteprima.setVisible(true); /* rendo visibile il JPanel */
  1815.                     }
  1816.                     else /* altrimenti se non è spuntata li nasconde */
  1817.                     {
  1818.                         lblAnteprima.setVisible(false); /* rendo invisibile la label */
  1819.                         panelAnteprima.setVisible(false); /* rendo invisibile il JPanel */
  1820.                     }
  1821.                 }
  1822.             });
  1823.            
  1824.             cbsetBounds.addItemListener(new ItemListener() /* aggiungo l'evento che verifica se la cbsetBounds è spuntata o no */
  1825.             {
  1826.                 public void itemStateChanged(ItemEvent item) /* l'evento viene trattato come un metodo */
  1827.                 {
  1828.                     cbsetBoundsIsChecked = (item.getStateChange() == ItemEvent.SELECTED); /* cbsetBoundsIsChecked sarà TRUE se la checkbox è spuntata, FALSE se non lo è */
  1829.                     if(cbsetBoundsIsChecked) /* equivale a = if( cbsetBoundsIsChecked == true), se la checkbox è stata spuntata visualizza la finestra relativa al metodo setBounds */
  1830.                     {
  1831.                         JLabelsetBoundsWindow setboundswindow = new JLabelsetBoundsWindow(); /* istanzio la classe JLabelsetBoundsWindow */
  1832.                         setboundswindow.main(null); /* richiamo la funzione main nella quale vi è il codice per mostrare la finestra passandogli come argomento NULL, la finestra viene visualizzata */
  1833.                     }
  1834.                 }
  1835.             });
  1836.            
  1837.             cbsetText.addItemListener(new ItemListener() /* aggiungo l'evento che verifica se la cbsetTitle è spuntata o no */
  1838.             {
  1839.                 public void itemStateChanged(ItemEvent item) /* l'evento viene trattato come un metodo */
  1840.                 {
  1841.                     cbsetTextIsChecked = (item.getStateChange() == ItemEvent.SELECTED); /* cbsetTitleIsChecked sarà TRUE se la checkbox è spuntata, FALSE se non lo è */
  1842.                     if(cbsetTextIsChecked) /* equivale a = if( cbsetTitleIsChecked == true), se la checkbox è stata spuntata visualizza la finestra relativa al metodo setTitle */
  1843.                     {
  1844.                         JLabelsetTextWindow settextwindow = new JLabelsetTextWindow(); /* istanzio la classe JLabelsetTextWindow */
  1845.                         settextwindow.main(null); /* richiamo la funzione main nella quale vi è il codice per mostrare la finestra passandogli come argomento NULL, la finestra viene visualizzata */
  1846.                     }
  1847.                 }
  1848.             });
  1849.         /* Fine scrittura codice relativa allo stato ( checked, unchecked ) di tutte le CheckBox */
  1850.     }
  1851. }
  1852.  
  1853. ______________________________________________________________________________________________
  1854.  
  1855. JLabelsetBoundsWindow.java
  1856.  
  1857. package gui.code.creator;
  1858.  
  1859. /* inizio import per il progetto */
  1860.     import java.awt.Color;
  1861.     import java.awt.EventQueue;
  1862.     import javax.swing.ImageIcon;
  1863.     import javax.swing.JFrame;
  1864.     import javax.swing.JPanel;
  1865.     import javax.swing.UIManager;
  1866.     import javax.swing.border.LineBorder;
  1867.     import javax.swing.JLabel;
  1868.     import java.awt.Font;
  1869.     import javax.swing.JTextField;
  1870.     import javax.swing.JButton;
  1871.     import java.awt.event.ActionListener;
  1872.     import java.awt.event.ActionEvent;
  1873. /* fine import per il progetto */
  1874.  
  1875. public class JLabelsetBoundsWindow extends JFrame /* classe contente la grafica del programma */
  1876. {
  1877.     private JPanel contentPane; /* variabile privata di tipo JPanel */
  1878.     private JTextField txtX; /* controllo JTextField */
  1879.     private JTextField txtY; /* controllo JTextField */
  1880.     private JTextField txtWidth; /* controllo JTextField */
  1881.     private JTextField txtHeight; /* controllo JTextField */
  1882.     private JButton btnOk; /* controllo JButton */
  1883.     private static String argument; /* variabile privata di tipo stringa contenente la scelta dell'utente */
  1884.  
  1885.     public static void main(String[] args) /* il programma inizia dalla funzione main() */
  1886.     {
  1887.         EventQueue.invokeLater(new Runnable() /* creo una nuova interfaccia di tipo Runnable */
  1888.         {
  1889.             public void run() /* creo il metodo che avvierà il programma */
  1890.             {
  1891.                 try /* mi assicuro che il programma venga eseguito correttamente, in caso contrario visualizza l'eventuale messaggio di errore */
  1892.                 {
  1893.                     UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); /* applico alla finestra il "tema£ del sistema operativo */
  1894.                     JLabelsetBoundsWindow window = new JLabelsetBoundsWindow(); /* istanzio la classe */
  1895.                     window.setVisible(true); /* rendo visibile il JFrame */
  1896.                 } catch (Exception e) { e.printStackTrace(); } /* visualizzo l'errore all'utente */
  1897.             }
  1898.         }); /* fine programma */
  1899.     }
  1900.  
  1901.     public JLabelsetBoundsWindow() /* GUI */
  1902.     {
  1903.         initialize(); /* richiamo il metodo */
  1904.     }
  1905.  
  1906.     static String getArgument() /* creo un metodo che mi restituisce la stringa argument */
  1907.     {
  1908.         return argument; /* ritorno la stringa */
  1909.     }
  1910.    
  1911.     private void initialize() /* metodo che inizializza i controlli */
  1912.     {
  1913.         ImageIcon buttonImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/ok.gif")); /* variabile contenente l'immagine del bottone */
  1914.        
  1915.         /* Inizio scrittura codice relativa al form e al JPanel */
  1916.             this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); /* quando l'utente farà click sulla X verrà liberata la memoria della finestra e si chiuderà */
  1917.             this.setResizable(false); /* impedisco all'utente di ridimensionare la finestra */
  1918.             this.setBounds(710, 150, 380, 120); /* imposto le coordinate x = 1150, y = 400 e la grandezza della finestra : width = 380, height = 120 */
  1919.             this.setTitle("Java GUI Code Creator - .setBounds"); /* setto il titolo della finestra */
  1920.             contentPane = new JPanel(); /* istanzio il JPanel */
  1921.             contentPane.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bordi del JPanel */
  1922.             this.setContentPane(contentPane); /* aggiungi il JPanel al form */
  1923.             contentPane.setLayout(null); /* non setto nessuna Layout */
  1924.            
  1925.             JLabel lblsetBounds = new JLabel(".setBounds("); /* istanzio una nuova JLabel e la chiamo .setBounds( */
  1926.             lblsetBounds.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  1927.             lblsetBounds.setBounds(12, 23, 95, 14); /* imposto le coordinate x = 12, y = 23 e la grandezza della finestra : width = 95 height = 14 */
  1928.             contentPane.add(lblsetBounds); /* aggiungo il controllo al JPanel */
  1929.            
  1930.             txtX = new JTextField(); /* istanzio una nuova JTextField */
  1931.             txtX.setBounds(111, 21, 39, 18); /* imposto le coordinate x = 111, y = 21 e la grandezza della finestra : width = 39 height = 18 */
  1932.             contentPane.add(txtX); /* aggiungo il controllo al JPanel */
  1933.            
  1934.             JLabel lblVirgola1 = new JLabel(","); /* istanzio una nuova JLabel a la chiamo "," */
  1935.             lblVirgola1.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  1936.             lblVirgola1.setBounds(151, 23, 11, 14); /* imposto le coordinate x = 151, y = 23 e la grandezza della finestra : width = 11 height = 14 */
  1937.             contentPane.add(lblVirgola1); /* aggiungo il controllo al JPanel */
  1938.            
  1939.             txtY = new JTextField(); /* istanzio una nuova JTextField */
  1940.             txtY.setBounds(161, 21, 39, 18); /* imposto le coordinate x = 161, y = 21 e la grandezza della finestra : width = 39 height = 18 */
  1941.             contentPane.add(txtY); /* aggiungo il controllo al JPanel */
  1942.            
  1943.             JLabel lblVirgola2 = new JLabel(","); /* istanzio una nuova JLabel a la chiamo "," */
  1944.             lblVirgola2.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  1945.             lblVirgola2.setBounds(201, 23, 11, 14); /* imposto le coordinate x = 201, y = 23 e la grandezza della finestra : width = 11 height = 14 */
  1946.             contentPane.add(lblVirgola2); /* aggiungo il controllo al JPanel */
  1947.            
  1948.             txtWidth = new JTextField(); /* istanzio una nuova JTextField */
  1949.             txtWidth.setBounds(211, 21, 39, 18); /* imposto le coordinate x = 211, y = 21 e la grandezza della finestra : width = 39 height = 18 */
  1950.             contentPane.add(txtWidth); /* aggiungo il controllo al JPanel */
  1951.            
  1952.             JLabel lblVirgola3 = new JLabel(","); /* istanzio una nuova JLabel a la chiamo "," */
  1953.             lblVirgola3.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  1954.             lblVirgola3.setBounds(253, 23, 11, 14); /* imposto le coordinate x = 253, y = 23 e la grandezza della finestra : width = 11 height = 14 */
  1955.             contentPane.add(lblVirgola3); /* aggiungo il controllo al JPanel */
  1956.            
  1957.             txtHeight = new JTextField(); /* istanzio una nuova JTextField */
  1958.             txtHeight.setBounds(263, 21, 39, 18); /* imposto le coordinate x = 263, y = 21 e la grandezza della finestra : width = 39 height = 18 */
  1959.             contentPane.add(txtHeight); /* aggiungo il controllo al JPanel */
  1960.            
  1961.             JLabel lblParentesi = new JLabel(")"); /* istanzio una nuova JLabel a la chiamo ")" */
  1962.             lblParentesi.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  1963.             lblParentesi.setBounds(302, 23, 11, 14); /* imposto le coordinate x = 302, y = 23 e la grandezza della finestra : width = 11 height = 14 */
  1964.             contentPane.add(lblParentesi); /* aggiungo il controllo al JPanel */
  1965.            
  1966.             btnOk = new JButton("Ok"); /* istanzio un nuovo JButton e lo chiamo "Ok" */
  1967.             btnOk.addActionListener(new ActionListener() /* aggiungo l'evento che prenderà la scelta dell'utente dalle JTextField */
  1968.             {
  1969.                 public void actionPerformed(ActionEvent e) /* l'evento viene trattato come un metodo */
  1970.                 {
  1971.                     argument = txtX.getText().toString() + "," + txtY.getText().toString() + "," + txtWidth.getText().toString() + "," + txtHeight.getText().toString(); /* la variabile "argument" conterrà la scelta dell'utente */
  1972.                 }
  1973.             });
  1974.             btnOk.setIcon(new ImageIcon(buttonImage.getImage())); /* setto l'immagine del bottone */
  1975.             btnOk.setBounds(273, 51, 91, 24); /* imposto le coordinate x = 273, y = 51 e la grandezza della finestra : width = 91 height = 24 */
  1976.             contentPane.add(btnOk); /* aggiungo il controllo al JPanel */
  1977.         /* Fine scrittura codice relativa al form e al JPanel */
  1978.     }
  1979. }
  1980.  
  1981. JLabelsetTextWindow.java
  1982.  
  1983. ______________________________________________________________________________________________
  1984.  
  1985. package gui.code.creator;
  1986.  
  1987. /* inizio import per il progetto */
  1988.     import java.awt.Color;
  1989.     import java.awt.EventQueue;
  1990.     import javax.swing.ImageIcon;
  1991.     import javax.swing.JFrame;
  1992.     import javax.swing.JPanel;
  1993.     import javax.swing.UIManager;
  1994.     import javax.swing.border.LineBorder;
  1995.     import javax.swing.JLabel;
  1996.     import java.awt.Font;
  1997.     import javax.swing.JTextField;
  1998.     import javax.swing.JButton;
  1999.     import java.awt.event.ActionListener;
  2000.     import java.awt.event.ActionEvent;
  2001. /* fine import per il progetto */
  2002.  
  2003. public class JLabelsetTextWindow extends JFrame /* classe contente la grafica del programma */
  2004. {
  2005.     private JPanel contentPane; /* controllo JPanel */
  2006.     private JTextField txtTesto; /* controllo JTextField */
  2007.     private JButton btnOk;/* variabile privata di tipo JPanel */
  2008.     private static String argument; /* variabile privata di tipo stringa contenente la scelta dell'utente */
  2009.  
  2010.     public static void main(String[] args) /* il programma inizia dalla funzione main() */
  2011.     {
  2012.         EventQueue.invokeLater(new Runnable() /* creo una nuova interfaccia di tipo Runnable */
  2013.         {
  2014.             public void run() /* creo il metodo che avvierà il programma */
  2015.             {
  2016.                 try /* mi assicuro che il programma venga eseguito correttamente, in caso contrario visualizza l'eventuale messaggio di errore */
  2017.                 {
  2018.                     UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); /* applico alla finestra il "tema£ del sistema operativo */
  2019.                     JLabelsetTextWindow window = new JLabelsetTextWindow(); /* istanzio la classe */
  2020.                     window.setVisible(true); /* rendo visibile il JFrame */
  2021.                 } catch (Exception e) { e.printStackTrace(); } /* visualizzo l'errore all'utente */
  2022.             }
  2023.         }); /* fine programma */
  2024.     }
  2025.  
  2026.     public JLabelsetTextWindow() /* GUI */
  2027.     {
  2028.         initialize(); /* richiamo il metodo */
  2029.     }
  2030.  
  2031.     static String getArgument() /* creo un metodo che mi restituisce la stringa argument */
  2032.     {
  2033.         return argument; /* ritorno la stringa */
  2034.     }
  2035.    
  2036.     private void initialize() /* metodo che inizializza i controlli */
  2037.     {  
  2038.         ImageIcon buttonImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/ok.gif")); /* variabile contenente l'immagine del bottone */
  2039.        
  2040.         /* Inizio scrittura codice relativa al form e al JPanel */
  2041.             this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); /* quando l'utente farà click sulla X verrà liberata la memoria della finestra e si chiuderà */
  2042.             this.setResizable(false); /* impedisco all'utente di ridimensionare la finestra */
  2043.             this.setBounds(700, 200, 320, 100); /* imposto le coordinate x = 1150, y = 450 e la grandezza della finestra : width = 320, height = 100 */
  2044.             this.setTitle("Java GUI Code Creator - .setText"); /* setto il titolo della finestra */
  2045.             contentPane = new JPanel(); /* istanzio il JPanel */
  2046.             contentPane.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bordi del JPanel */
  2047.             this.setContentPane(contentPane); /* aggiungi il JPanel al form */
  2048.             contentPane.setLayout(null); /* non setto nessuna Layout */
  2049.            
  2050.             JLabel lblsetText = new JLabel(".setText("); /* istanzio una nuova JLabel e la chiamo ".setTitle(" */
  2051.             lblsetText.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  2052.             lblsetText.setBounds(12, 12, 76, 14); /* imposto le coordinate x = 12, y = 12 e la grandezza della finestra : width = 76, height = 14 */
  2053.             contentPane.add(lblsetText); /* aggiungo il controllo al JPanel */
  2054.            
  2055.             txtTesto = new JTextField(); /* istanzio una nuova JTextField */
  2056.             txtTesto.setBounds(84, 10, 157, 18); /* imposto le coordinate x = 84, y = 10 e la grandezza della finestra : width = 157, height = 18 */
  2057.             contentPane.add(txtTesto); /* aggiungo il controllo al JPanel */
  2058.            
  2059.             JLabel lblParentesi = new JLabel(")"); /* istanzio una nuova JLabel e la chiamo ")" */
  2060.             lblParentesi.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  2061.             lblParentesi.setBounds(243, 12, 76, 14); /* imposto le coordinate x = 243, y = 12 e la grandezza della finestra : width = 76, height = 14 */
  2062.             contentPane.add(lblParentesi); /* aggiungo il controllo al JPanel */
  2063.            
  2064.             btnOk = new JButton("Ok"); /* istanzio un nuovo JButton e lo chiamo "Ok" */
  2065.             btnOk.addActionListener(new ActionListener() /* aggiungo l'evento che prenderà la scelta dell'utente dalla JTextField */
  2066.             {
  2067.                 public void actionPerformed(ActionEvent e) /* l'evento viene trattato come un metodo */
  2068.                 {
  2069.                     argument = "\"" + txtTesto.getText().toString() + "\""; /* la variabile "argument" conterrà la scelta dell'utente */
  2070.                 }
  2071.             });
  2072.             btnOk.setIcon(new ImageIcon(buttonImage.getImage())); /* setto l'immagine del bottone */
  2073.             btnOk.setBounds(222, 40, 82, 24); /* imposto le coordinate x = 222, y = 40 e la grandezza della finestra : width = 82, height = 24 */
  2074.             contentPane.add(btnOk); /* aggiungo il controllo al JPanel */
  2075.            
  2076.         /* Fine scrittura codice relativa al form e al JPanel */
  2077.     }
  2078. }
  2079.  
  2080. JTextFieldCodeCreator.java
  2081.  
  2082. ______________________________________________________________________________________________
  2083.  
  2084. package gui.code.creator;
  2085.  
  2086. /* inizio import per il progetto */
  2087.     import java.awt.Color;
  2088.     import java.awt.EventQueue;
  2089.     import java.awt.Toolkit;
  2090.     import java.awt.datatransfer.Clipboard;
  2091.     import java.awt.datatransfer.StringSelection;
  2092.     import java.awt.datatransfer.Transferable;
  2093.     import java.awt.event.ActionEvent;
  2094.     import java.awt.event.ActionListener;
  2095.     import java.awt.event.ItemEvent;
  2096.     import java.awt.event.ItemListener;
  2097.     import javax.swing.ImageIcon;
  2098.     import javax.swing.JButton;
  2099.     import javax.swing.JCheckBox;
  2100.     import javax.swing.JFrame;
  2101.     import javax.swing.JLabel;
  2102.     import javax.swing.JMenu;
  2103.     import javax.swing.JMenuBar;
  2104.     import javax.swing.JMenuItem;
  2105.     import javax.swing.JPanel;
  2106.     import javax.swing.JTextField;
  2107.     import javax.swing.JTextPane;
  2108.     import javax.swing.SwingConstants;
  2109.     import javax.swing.UIManager;
  2110.     import javax.swing.border.EtchedBorder;
  2111.     import javax.swing.border.LineBorder;
  2112. /* fine import per il progetto */
  2113.  
  2114. public class JTextFieldCodeCreator extends JFrame /* classe contente la grafica del programma */
  2115. {
  2116.     private JPanel contentPane; /* variabile privata di tipo JPanel */
  2117.     private boolean cbVisualizzaAnteprimaIsChecked = false; /* variabile privata di tipo boolean che verifica che sa la checkbox VisualizzaAnteprima è selezionata o no */
  2118.     private boolean cbsetBoundsIsChecked = false; /* variabile privata di tipo boolean che verifica che sa la checkbox setBounds è selezionata o no */
  2119.     private boolean cbsetTextIsChecked = false; /* variabile privata di tipo boolean che verifica che sa la checkbox setBounds è selezionata o no */
  2120.     private String setBoundsString, setTextString; /* variabili private di tipo string che contengono la scelta dell'utente */
  2121.  
  2122.     public static void main(String[] args) /* il programma inizia dalla funzione main() */
  2123.     {
  2124.         EventQueue.invokeLater(new Runnable() /* creo una nuova interfaccia di tipo Runnable */
  2125.         {
  2126.             public void run() /* creo il metodo che avvierà il programma */
  2127.             {
  2128.                 try /* mi assicuro che il programma venga eseguito correttamente, in caso contrario visualizza l'eventuale messaggio di errore */
  2129.                 {
  2130.                     UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); /* applico alla finestra il "tema£ del sistema operativo */
  2131.                     JTextFieldCodeCreator window = new JTextFieldCodeCreator(); /* istanzio la classe */
  2132.                     window.setVisible(true); /* rendo visibile il JFrame */
  2133.                 } catch (Exception e) { e.printStackTrace(); } /* visualizzo l'errore all'utente */
  2134.             }
  2135.         }); /* fine programma */
  2136.     }
  2137.  
  2138.     public JTextFieldCodeCreator() /* GUI */
  2139.     {
  2140.         initialize(); /* richiamo il metodo */
  2141.     }
  2142.  
  2143.     private void initialize() /* metodo che inizializza i controlli */
  2144.     {
  2145.         /* Inizio scrittura codice relativa al form e al JPanel */
  2146.             this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); /* quando l'utente farà click sulla X verrà liberata la memoria della finestra e si chiuderà */
  2147.             this.setResizable(false); /* impedisco all'utente di ridimensionare la finestra */
  2148.             this.setBounds(700, 600, 450, 365); /* imposto le coordinate x = 700, y = 600 e la grandezza della finestra : width = 450, height = 365 */
  2149.             this.setTitle("Java GUI Code Creator - JTextView"); /* setto il titolo della finestra */
  2150.             contentPane = new JPanel(); /* istanzio il JPanel */
  2151.             contentPane.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bordi del JPanel */
  2152.             this.setContentPane(contentPane); /* aggiungi il JPanel al form */
  2153.             contentPane.setLayout(null); /* non setto nessuna Layout */
  2154.            
  2155.             final JTextPane txtCodice = new JTextPane(); /* istanzio un nuovo JTextPane */
  2156.             txtCodice.setForeground(Color.RED); /* setto il colore del testo */
  2157.             txtCodice.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null)); /* setto i bordi del controllo */
  2158.             txtCodice.setBounds(12, 147, 252, 122); /* imposto le coordinate x = 12, y = 187 e la grandezza del controllo : width = 252, height = 122 */
  2159.             contentPane.add(txtCodice); /* aggiungo il controllo al JPanel */
  2160.            
  2161.             ImageIcon generateImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/genera.png")); /* varabile contenente l'immagine del bottone "Genera codice" */
  2162.             ImageIcon copycodeImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/copy.png")); /* varabile contenente l'immagine del bottone "Copia codice" */
  2163.            
  2164.             JCheckBox cbVisualizzaAnteprima = new JCheckBox("Visualizza anteprima"); /* istanzio una nuova JCheckBox e la chiamo "Visualizza Anteprima" */
  2165.             cbVisualizzaAnteprima.setBounds(264, 8, 174, 22); /* imposto le coordinate x = 264, y = 8 e la grandezza del controllo : width = 174, height = 22 */
  2166.             contentPane.add(cbVisualizzaAnteprima); /* aggiungo il controllo al JPanel */
  2167.            
  2168.             JLabel lblMetodiJframe = new JLabel("Metodi JFrame"); /* istanzio una nuova JLabel e la chiamo "Metodi JFrame" */
  2169.             lblMetodiJframe.setBounds(86, 12, 112, 14); /* imposto le coordinate x = 86, y = 12 e la grandezza del controllo : width = 112, height = 14 */
  2170.             contentPane.add(lblMetodiJframe); /* aggiungo il controllo al JPanel */
  2171.            
  2172.             final JLabel lblAnteprima = new JLabel("Anteprima"); /* istanzio una nuova JLabel e la chiamo "Anteprima" */
  2173.             lblAnteprima.setBounds(334, 38, 82, 14); /* imposto le coordinate x = 334, y = 38 e la grandezza del controllo : width = 82, height = 14 */
  2174.             lblAnteprima.setVisible(false); /* rendo invisibile la label */
  2175.             contentPane.add(lblAnteprima); /* aggiungo il controllo al JPanel */
  2176.            
  2177.             JPanel panelMetodiJFrame = new JPanel(); /* istanzio un nuov JPanel */
  2178.             panelMetodiJFrame.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bord del JPanel */
  2179.             panelMetodiJFrame.setBounds(12, 27, 252, 64); /* imposto le coordinate x = 12, y = 27 e la grandezza del controllo : width = 252, height = 120 */
  2180.             contentPane.add(panelMetodiJFrame);/* aggiungo il controllo al al panel contenente i metodi del JFrame */
  2181.            
  2182.             JCheckBox cbsetBounds = new JCheckBox(".setBounds(x, y, width, height) "); /* istanzio una nuovo JCheckBox e la chiamo ".setBounds(x, y, width, height)", gli spazi sono per allineare la checkbox con le altre */
  2183.             cbsetBounds.setToolTipText("Sputando questo campo l'utente può scegliere la posizione X, Y, la larghezza e l'altezza della finestra"); /* setto il Tooltip del controllo */
  2184.             panelMetodiJFrame.add(cbsetBounds); /* aggiungo il controllo al al panel contenente i metodi del JFrame */
  2185.            
  2186.             JCheckBox cbsetText = new JCheckBox(".setText(testo)                             "); /* istanzio una nuovo JCheckBox e la chiamo ".setText(testo)", gli spazi sono per allineare la checkbox con le altre */
  2187.             cbsetText.setToolTipText("Spuntando questo campo l'utente potrà scegliere il testo da attribuire al bottone"); /* setto il Tooltip del controllo */
  2188.             cbsetText.setHorizontalAlignment(SwingConstants.LEFT); /* setto l'allineamento verso sinistra  */
  2189.             panelMetodiJFrame.add(cbsetText); /* aggiungo il controllo al al panel contenente i metodi del JFrame */
  2190.            
  2191.             final JPanel panelAnteprima = new JPanel(); /* istazio un nuovo JPanel */
  2192.             panelAnteprima.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bordi del JPanel */
  2193.             panelAnteprima.setBounds(314, 52, 120, 82); /* imposto le coordinate x = 314, y = 52 e la grandezza del controllo : width = 120, height = 82 */
  2194.             panelAnteprima.setVisible(false); /* rendo invisibile il JPanel */
  2195.             contentPane.add(panelAnteprima);
  2196.            
  2197.             final JTextField txtAnteprima = new JTextField("Anteprima"); /* istanzio una nuova JTextField e la chiamo "Anteprima" */
  2198.             panelAnteprima.add(txtAnteprima);/* aggiungo il controllo al JPanel */
  2199.            
  2200.             JLabel lblCodiceGenerato = new JLabel("Codice generato"); /* istanzio una nuova JLabel e la chiamo "Codice generato" */
  2201.             lblCodiceGenerato.setBounds(74, 132, 120, 14); /* imposto le coordinate x = 74, y = 132 e la grandezza del controllo : width = 120, height = 14 */
  2202.             contentPane.add(lblCodiceGenerato); /* aggiungo il controllo al JPanel */
  2203.            
  2204.             JButton btnGeneraCodice = new JButton("Genera codice"); /* istanzio un nuovo JButton e lo chiamo "Genera codice" */
  2205.             btnGeneraCodice.addActionListener(new ActionListener() /* aggiungo l'evento che genera il codice prendendo le informazioni dagli altri form in cui l'utente ha scelto gli argomenti */
  2206.             {
  2207.                 public void actionPerformed(ActionEvent e) /* l'evento viene trattato come un metodo */
  2208.                 {          
  2209.                     JTextFieldsetBoundsWindow setboundswindow = new JTextFieldsetBoundsWindow(); /* istanzio la classe JTextFieldsetBoundsWindow */
  2210.                     setBoundsString = txtCodice.getText().toString() + "this.setBounds(" + setboundswindow.getArgument() + ");" + "\n"; /* la variabile setBoundsString conterrà quanto scritto nel JTextPane + il codice preimpostato + quello che l'utente ha scelto quando si è aperto il form relativo alla scelta dell'argomento del metodo setBounds */
  2211.                     txtCodice.setText(setBoundsString); /* inserisco nel JTextPane la stringa setBoundsString che corrisponde al codice */
  2212.                    
  2213.                     JTextFieldsetTextWindow settextwindow = new JTextFieldsetTextWindow(); /* istanzio la classe JTextFieldsetTextWindow */
  2214.                     setTextString = txtCodice.getText().toString() + "this.setText(" + settextwindow.getArgument() + ");" + "\n"; /* la variabile setTextString conterrà quanto scritto nel JTextPane + il codice preimpostato + quello che l'utente ha scelto quando si è aperto il form relativo alla scelta dell'argomento del metodo setText */
  2215.                     txtCodice.setText(setTextString); /* inserisco nel JTextPane la stringa setTextString che corrisponde al codice */
  2216.                 }
  2217.             });
  2218.             btnGeneraCodice.setHorizontalAlignment(SwingConstants.LEFT); /* setto l'allineamento verso sinistra  */
  2219.             btnGeneraCodice.setIcon(new ImageIcon(generateImage.getImage())); /* setto l'immagine del bottone */
  2220.             btnGeneraCodice.setBounds(276, 170, 162, 24); /* imposto le coordinate x = 276, y = 170 e la grandezza del controllo : width = 162, height = 24 */
  2221.             contentPane.add(btnGeneraCodice); /* aggiungo il controllo al JPanel */
  2222.            
  2223.             JButton btnCopiaCodice = new JButton("Copia codice"); /* istanzio un nuovo JButton e lo chiamo "Copia codice" */
  2224.             btnCopiaCodice.addActionListener(new ActionListener() /* aggiungo l'evento che copia il codice negli appunti */
  2225.             {
  2226.                 public void actionPerformed(ActionEvent e) /* l'evento viene trattato come un metodo */
  2227.                 {
  2228.                     Clipboard copy = Toolkit.getDefaultToolkit ().getSystemClipboard(); /* rilevo la Clipboard */
  2229.                     copy.setContents ((Transferable) new StringSelection (txtCodice.getText().toString()), null); /* inserisco in memoria quello che c'è scritto nel JTextPane */
  2230.                 }
  2231.             });
  2232.             btnCopiaCodice.setHorizontalAlignment(SwingConstants.LEFT); /* setto l'allineamento verso sinistra  */
  2233.             btnCopiaCodice.setIcon(new ImageIcon(copycodeImage.getImage())); /* setto l'immagine del bottone */
  2234.             btnCopiaCodice.setBounds(276, 219, 162, 24); /* imposto le coordinate x = 276, y = 256 e la grandezza del controllo : width = 162, height = 24 */
  2235.             contentPane.add(btnCopiaCodice);/* aggiungo il controllo al JPanel */
  2236.         /* Fine scrittura codice relativa al form e al JPanel */
  2237.            
  2238.         /* Inizio scrittura codice relativo al JMenuBar */
  2239.             ImageIcon firstmenuItemImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/clear.png")); /* variabile contenente l'immagine del primo item della barra dei menù */
  2240.             ImageIcon secondmenuItemImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/exit.png")); /* variabile contenente l'immagine del secondo item della barra dei menù */
  2241.        
  2242.             JMenuBar menuBar = new JMenuBar(); /* inizializzo la barra dei menù */
  2243.             menuBar.setBounds(224, 290, 129, 21); /* imposto le coordinate x = 224, y = 290 e la grandezza del barra menu : width = 129, height = 21 */
  2244.        
  2245.             JMenu menu = new JMenu("File"); /* inizializzo un nuovo menu e lo chiamo "JFile" */
  2246.             menuBar.add(menu); /* aggiungo il menu alla barra dei menù */
  2247.  
  2248.             JMenuItem firstItem = new JMenuItem("Pulisci", firstmenuItemImage); /* inizializzo un nuovo item della menubar chiamandolo "Pulisci" e associandogli la relativa immagine */
  2249.             JMenuItem secondItem = new JMenuItem("Chiudi", secondmenuItemImage); /* inizializzo un nuovo item della menubar chiamandolo "Chiudi" e associandogli la relativa immagine */
  2250.             firstItem.setHorizontalAlignment(SwingConstants.CENTER); /* imposto la scritta del primo item al centro */
  2251.             secondItem.setHorizontalAlignment(SwingConstants.CENTER); /* imposto la scritta del secondo item al centro */
  2252.             menu.add(firstItem); /* aggiungo il primo item al menu */
  2253.             menu.add(secondItem); /* aggiungo il secondo item al menu */
  2254.        
  2255.             this.setJMenuBar(menuBar); /* setto come JMenuBar la barra dei menu finora creata */
  2256.            
  2257.             /* Inizio scrittura codice relativo al click degli item dalla barra dei menu */
  2258.                 firstItem.addActionListener(new ActionListener() /* quando l'utente clicca su "Pulisci" viene pulita la JTextField */
  2259.                 {
  2260.                     public void actionPerformed(ActionEvent e) /* l'evento viene trattato come metodo */
  2261.                     {
  2262.                         txtCodice.setText(""); /* setto il testo della JTextPane come "vuoto" */
  2263.                     }
  2264.                 });
  2265.        
  2266.                 secondItem.addActionListener(new ActionListener() /* quando l'utente clicca su "Chiudi" il programma termina */
  2267.                 {
  2268.                     public void actionPerformed(ActionEvent e) /* l'evento viene trattato come metodo */
  2269.                     {
  2270.                         System.exit(0); /* restituisce 0 al sistema per indicare che l'applicazione è stata chiusa correttamente e la memoria è stata deallocata */
  2271.                     }
  2272.                 });
  2273.             /* Fine scrittura codice relativo al click degli item dalla barra dei menu */
  2274.                
  2275.         /* Inizio scrittura codice relativa allo stato ( checked, unchecked ) di tutte le CheckBox */
  2276.             cbVisualizzaAnteprima.addItemListener(new ItemListener() /* aggiungo l'evento che verifica se la cbVisualizzaAnteprima è spuntata o no */
  2277.             {
  2278.                 public void itemStateChanged(ItemEvent item) /* l'evento viene trattato come un metodo */
  2279.                 {
  2280.                     cbVisualizzaAnteprimaIsChecked = (item.getStateChange() == ItemEvent.SELECTED); /* cbVisualizzaAnteprimaIsChecked sarà TRUE se la checkbox è spuntata, FALSE se non lo è */
  2281.                     if(cbVisualizzaAnteprimaIsChecked) /* equivale a = if( cbVisualizzaAnteprimaIsChecked == true), se la checkbox è stata spuntata visualizza la label e il JPanel */
  2282.                     {
  2283.                         lblAnteprima.setVisible(true); /* rendo visibile la label */
  2284.                         panelAnteprima.setVisible(true); /* rendo visibile il JPanel */
  2285.                     }
  2286.                     else /* altrimenti se non è spuntata li nasconde */
  2287.                     {
  2288.                         lblAnteprima.setVisible(false); /* rendo invisibile la label */
  2289.                         panelAnteprima.setVisible(false); /* rendo invisibile il JPanel */
  2290.                     }
  2291.                 }
  2292.             });
  2293.            
  2294.             cbsetBounds.addItemListener(new ItemListener() /* aggiungo l'evento che verifica se la cbsetBounds è spuntata o no */
  2295.             {
  2296.                 public void itemStateChanged(ItemEvent item) /* l'evento viene trattato come un metodo */
  2297.                 {
  2298.                     cbsetBoundsIsChecked = (item.getStateChange() == ItemEvent.SELECTED); /* cbsetBoundsIsChecked sarà TRUE se la checkbox è spuntata, FALSE se non lo è */
  2299.                     if(cbsetBoundsIsChecked) /* equivale a = if( cbsetBoundsIsChecked == true), se la checkbox è stata spuntata visualizza la finestra relativa al metodo setBounds */
  2300.                     {
  2301.                         JTextFieldsetBoundsWindow setboundswindow = new JTextFieldsetBoundsWindow(); /* istanzio la classe JTextFieldsetBoundsWindow */
  2302.                         setboundswindow.main(null); /* richiamo la funzione main nella quale vi è il codice per mostrare la finestra passandogli come argomento NULL, la finestra viene visualizzata */
  2303.                     }
  2304.                 }
  2305.             });
  2306.            
  2307.             cbsetText.addItemListener(new ItemListener() /* aggiungo l'evento che verifica se la cbsetTitle è spuntata o no */
  2308.             {
  2309.                 public void itemStateChanged(ItemEvent item) /* l'evento viene trattato come un metodo */
  2310.                 {
  2311.                     cbsetTextIsChecked = (item.getStateChange() == ItemEvent.SELECTED); /* cbsetTitleIsChecked sarà TRUE se la checkbox è spuntata, FALSE se non lo è */
  2312.                     if(cbsetTextIsChecked) /* equivale a = if( cbsetTitleIsChecked == true), se la checkbox è stata spuntata visualizza la finestra relativa al metodo setTitle */
  2313.                     {
  2314.                         JTextFieldsetTextWindow settextwindow = new JTextFieldsetTextWindow(); /* istanzio la classe JTextFieldsetTextWindow */
  2315.                         settextwindow.main(null); /* richiamo la funzione main nella quale vi è il codice per mostrare la finestra passandogli come argomento NULL, la finestra viene visualizzata */
  2316.                     }
  2317.                 }
  2318.             });
  2319.         /* Fine scrittura codice relativa allo stato ( checked, unchecked ) di tutte le CheckBox */
  2320.     }
  2321. }
  2322.  
  2323. ______________________________________________________________________________________________
  2324.  
  2325. JTextFieldsetBoundsWindow.java
  2326.  
  2327. package gui.code.creator;
  2328.  
  2329. /* inizio import per il progetto */
  2330.     import java.awt.Color;
  2331.     import java.awt.EventQueue;
  2332.     import javax.swing.ImageIcon;
  2333.     import javax.swing.JFrame;
  2334.     import javax.swing.JPanel;
  2335.     import javax.swing.UIManager;
  2336.     import javax.swing.border.LineBorder;
  2337.     import javax.swing.JLabel;
  2338.     import java.awt.Font;
  2339.     import javax.swing.JTextField;
  2340.     import javax.swing.JButton;
  2341.     import java.awt.event.ActionListener;
  2342.     import java.awt.event.ActionEvent;
  2343. /* fine import per il progetto */
  2344.  
  2345. public class JTextFieldsetBoundsWindow extends JFrame /* classe contente la grafica del programma */
  2346. {
  2347.     private JPanel contentPane; /* variabile privata di tipo JPanel */
  2348.     private JTextField txtX; /* controllo JTextField */
  2349.     private JTextField txtY; /* controllo JTextField */
  2350.     private JTextField txtWidth; /* controllo JTextField */
  2351.     private JTextField txtHeight; /* controllo JTextField */
  2352.     private JButton btnOk; /* controllo JButton */
  2353.     private static String argument; /* variabile privata di tipo stringa contenente la scelta dell'utente */
  2354.  
  2355.     public static void main(String[] args) /* il programma inizia dalla funzione main() */
  2356.     {
  2357.         EventQueue.invokeLater(new Runnable() /* creo una nuova interfaccia di tipo Runnable */
  2358.         {
  2359.             public void run() /* creo il metodo che avvierà il programma */
  2360.             {
  2361.                 try /* mi assicuro che il programma venga eseguito correttamente, in caso contrario visualizza l'eventuale messaggio di errore */
  2362.                 {
  2363.                     UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); /* applico alla finestra il "tema£ del sistema operativo */
  2364.                     JTextFieldsetBoundsWindow window = new JTextFieldsetBoundsWindow(); /* istanzio la classe */
  2365.                     window.setVisible(true); /* rendo visibile il JFrame */
  2366.                 } catch (Exception e) { e.printStackTrace(); } /* visualizzo l'errore all'utente */
  2367.             }
  2368.         }); /* fine programma */
  2369.     }
  2370.  
  2371.     public JTextFieldsetBoundsWindow() /* GUI */
  2372.     {
  2373.         initialize(); /* richiamo il metodo */
  2374.     }
  2375.  
  2376.     static String getArgument() /* creo un metodo che mi restituisce la stringa argument */
  2377.     {
  2378.         return argument; /* ritorno la stringa */
  2379.     }
  2380.    
  2381.     private void initialize() /* metodo che inizializza i controlli */
  2382.     {
  2383.         ImageIcon buttonImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/ok.gif")); /* variabile contenente l'immagine del bottone */
  2384.        
  2385.         /* Inizio scrittura codice relativa al form e al JPanel */
  2386.             this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); /* quando l'utente farà click sulla X verrà liberata la memoria della finestra e si chiuderà */
  2387.             this.setResizable(false); /* impedisco all'utente di ridimensionare la finestra */
  2388.             this.setBounds(700, 650, 380, 120); /* imposto le coordinate x = 700, y = 650 e la grandezza della finestra : width = 380, height = 120 */
  2389.             this.setTitle("Java GUI Code Creator - .setBounds"); /* setto il titolo della finestra */
  2390.             contentPane = new JPanel(); /* istanzio il JPanel */
  2391.             contentPane.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bordi del JPanel */
  2392.             this.setContentPane(contentPane); /* aggiungi il JPanel al form */
  2393.             contentPane.setLayout(null); /* non setto nessuna Layout */
  2394.            
  2395.             JLabel lblsetBounds = new JLabel(".setBounds("); /* istanzio una nuova JLabel e la chiamo .setBounds( */
  2396.             lblsetBounds.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  2397.             lblsetBounds.setBounds(12, 23, 95, 14); /* imposto le coordinate x = 12, y = 23 e la grandezza della finestra : width = 95 height = 14 */
  2398.             contentPane.add(lblsetBounds); /* aggiungo il controllo al JPanel */
  2399.            
  2400.             txtX = new JTextField(); /* istanzio una nuova JTextField */
  2401.             txtX.setBounds(111, 21, 39, 18); /* imposto le coordinate x = 111, y = 21 e la grandezza della finestra : width = 39 height = 18 */
  2402.             contentPane.add(txtX); /* aggiungo il controllo al JPanel */
  2403.            
  2404.             JLabel lblVirgola1 = new JLabel(","); /* istanzio una nuova JLabel a la chiamo "," */
  2405.             lblVirgola1.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  2406.             lblVirgola1.setBounds(151, 23, 11, 14); /* imposto le coordinate x = 151, y = 23 e la grandezza della finestra : width = 11 height = 14 */
  2407.             contentPane.add(lblVirgola1); /* aggiungo il controllo al JPanel */
  2408.            
  2409.             txtY = new JTextField(); /* istanzio una nuova JTextField */
  2410.             txtY.setBounds(161, 21, 39, 18); /* imposto le coordinate x = 161, y = 21 e la grandezza della finestra : width = 39 height = 18 */
  2411.             contentPane.add(txtY); /* aggiungo il controllo al JPanel */
  2412.            
  2413.             JLabel lblVirgola2 = new JLabel(","); /* istanzio una nuova JLabel a la chiamo "," */
  2414.             lblVirgola2.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  2415.             lblVirgola2.setBounds(201, 23, 11, 14); /* imposto le coordinate x = 201, y = 23 e la grandezza della finestra : width = 11 height = 14 */
  2416.             contentPane.add(lblVirgola2); /* aggiungo il controllo al JPanel */
  2417.            
  2418.             txtWidth = new JTextField(); /* istanzio una nuova JTextField */
  2419.             txtWidth.setBounds(211, 21, 39, 18); /* imposto le coordinate x = 211, y = 21 e la grandezza della finestra : width = 39 height = 18 */
  2420.             contentPane.add(txtWidth); /* aggiungo il controllo al JPanel */
  2421.            
  2422.             JLabel lblVirgola3 = new JLabel(","); /* istanzio una nuova JLabel a la chiamo "," */
  2423.             lblVirgola3.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  2424.             lblVirgola3.setBounds(253, 23, 11, 14); /* imposto le coordinate x = 253, y = 23 e la grandezza della finestra : width = 11 height = 14 */
  2425.             contentPane.add(lblVirgola3); /* aggiungo il controllo al JPanel */
  2426.            
  2427.             txtHeight = new JTextField(); /* istanzio una nuova JTextField */
  2428.             txtHeight.setBounds(263, 21, 39, 18); /* imposto le coordinate x = 263, y = 21 e la grandezza della finestra : width = 39 height = 18 */
  2429.             contentPane.add(txtHeight); /* aggiungo il controllo al JPanel */
  2430.            
  2431.             JLabel lblParentesi = new JLabel(")"); /* istanzio una nuova JLabel a la chiamo ")" */
  2432.             lblParentesi.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  2433.             lblParentesi.setBounds(302, 23, 11, 14); /* imposto le coordinate x = 302, y = 23 e la grandezza della finestra : width = 11 height = 14 */
  2434.             contentPane.add(lblParentesi); /* aggiungo il controllo al JPanel */
  2435.            
  2436.             btnOk = new JButton("Ok"); /* istanzio un nuovo JButton e lo chiamo "Ok" */
  2437.             btnOk.addActionListener(new ActionListener() /* aggiungo l'evento che prenderà la scelta dell'utente dalle JTextField */
  2438.             {
  2439.                 public void actionPerformed(ActionEvent e) /* l'evento viene trattato come un metodo */
  2440.                 {
  2441.                     argument = txtX.getText().toString() + "," + txtY.getText().toString() + "," + txtWidth.getText().toString() + "," + txtHeight.getText().toString(); /* la variabile "argument" conterrà la scelta dell'utente */
  2442.                 }
  2443.             });
  2444.             btnOk.setIcon(new ImageIcon(buttonImage.getImage())); /* setto l'immagine del bottone */
  2445.             btnOk.setBounds(273, 51, 91, 24); /* imposto le coordinate x = 273, y = 51 e la grandezza della finestra : width = 91 height = 24 */
  2446.             contentPane.add(btnOk); /* aggiungo il controllo al JPanel */
  2447.         /* Fine scrittura codice relativa al form e al JPanel */
  2448.     }
  2449. }
  2450.  
  2451. ______________________________________________________________________________________________
  2452.  
  2453. JTextFieldsetTextWindow.java
  2454.  
  2455. package gui.code.creator;
  2456.  
  2457. /* inizio import per il progetto */
  2458.     import java.awt.Color;
  2459.     import java.awt.EventQueue;
  2460.     import javax.swing.ImageIcon;
  2461.     import javax.swing.JFrame;
  2462.     import javax.swing.JPanel;
  2463.     import javax.swing.UIManager;
  2464.     import javax.swing.border.LineBorder;
  2465.     import javax.swing.JLabel;
  2466.     import java.awt.Font;
  2467.     import javax.swing.JTextField;
  2468.     import javax.swing.JButton;
  2469.     import java.awt.event.ActionListener;
  2470.     import java.awt.event.ActionEvent;
  2471. /* fine import per il progetto */
  2472.  
  2473. public class JTextFieldsetTextWindow extends JFrame /* classe contente la grafica del programma */
  2474. {
  2475.     private JPanel contentPane; /* controllo JPanel */
  2476.     private JTextField txtTesto; /* controllo JTextField */
  2477.     private JButton btnOk;/* variabile privata di tipo JPanel */
  2478.     private static String argument; /* variabile privata di tipo stringa contenente la scelta dell'utente */
  2479.  
  2480.     public static void main(String[] args) /* il programma inizia dalla funzione main() */
  2481.     {
  2482.         EventQueue.invokeLater(new Runnable() /* creo una nuova interfaccia di tipo Runnable */
  2483.         {
  2484.             public void run() /* creo il metodo che avvierà il programma */
  2485.             {
  2486.                 try /* mi assicuro che il programma venga eseguito correttamente, in caso contrario visualizza l'eventuale messaggio di errore */
  2487.                 {
  2488.                     UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); /* applico alla finestra il "tema£ del sistema operativo */
  2489.                     JTextFieldsetTextWindow window = new JTextFieldsetTextWindow(); /* istanzio la classe */
  2490.                     window.setVisible(true); /* rendo visibile il JFrame */
  2491.                 } catch (Exception e) { e.printStackTrace(); } /* visualizzo l'errore all'utente */
  2492.             }
  2493.         }); /* fine programma */
  2494.     }
  2495.  
  2496.     public JTextFieldsetTextWindow() /* GUI */
  2497.     {
  2498.         initialize(); /* richiamo il metodo */
  2499.     }
  2500.  
  2501.     static String getArgument() /* creo un metodo che mi restituisce la stringa argument */
  2502.     {
  2503.         return argument; /* ritorno la stringa */
  2504.     }
  2505.    
  2506.     private void initialize() /* metodo che inizializza i controlli */
  2507.     {  
  2508.         ImageIcon buttonImage = new ImageIcon(JavaGuiCodeCreator.class.getResource("/images/ok.gif")); /* variabile contenente l'immagine del bottone */
  2509.        
  2510.         /* Inizio scrittura codice relativa al form e al JPanel */
  2511.             this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); /* quando l'utente farà click sulla X verrà liberata la memoria della finestra e si chiuderà */
  2512.             this.setResizable(false); /* impedisco all'utente di ridimensionare la finestra */
  2513.             this.setBounds(700, 700, 320, 100); /* imposto le coordinate x = 700, y = 700 e la grandezza della finestra : width = 320, height = 100 */
  2514.             this.setTitle("Java GUI Code Creator - .setText"); /* setto il titolo della finestra */
  2515.             contentPane = new JPanel(); /* istanzio il JPanel */
  2516.             contentPane.setBorder(new LineBorder(new Color(0, 0, 0))); /* setto i bordi del JPanel */
  2517.             this.setContentPane(contentPane); /* aggiungi il JPanel al form */
  2518.             contentPane.setLayout(null); /* non setto nessuna Layout */
  2519.            
  2520.             JLabel lblsetText = new JLabel(".setText("); /* istanzio una nuova JLabel e la chiamo ".setTitle(" */
  2521.             lblsetText.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  2522.             lblsetText.setBounds(12, 12, 76, 14); /* imposto le coordinate x = 12, y = 12 e la grandezza della finestra : width = 76, height = 14 */
  2523.             contentPane.add(lblsetText); /* aggiungo il controllo al JPanel */
  2524.            
  2525.             txtTesto = new JTextField(); /* istanzio una nuova JTextField */
  2526.             txtTesto.setBounds(84, 10, 157, 18); /* imposto le coordinate x = 84, y = 10 e la grandezza della finestra : width = 157, height = 18 */
  2527.             contentPane.add(txtTesto); /* aggiungo il controllo al JPanel */
  2528.            
  2529.             JLabel lblParentesi = new JLabel(")"); /* istanzio una nuova JLabel e la chiamo ")" */
  2530.             lblParentesi.setFont(new Font("Dialog", Font.BOLD, 14)); /* imposto il font grassetto e grandezza 14 */
  2531.             lblParentesi.setBounds(243, 12, 76, 14); /* imposto le coordinate x = 243, y = 12 e la grandezza della finestra : width = 76, height = 14 */
  2532.             contentPane.add(lblParentesi); /* aggiungo il controllo al JPanel */
  2533.            
  2534.             btnOk = new JButton("Ok"); /* istanzio un nuovo JButton e lo chiamo "Ok" */
  2535.             btnOk.addActionListener(new ActionListener() /* aggiungo l'evento che prenderà la scelta dell'utente dalla JTextField */
  2536.             {
  2537.                 public void actionPerformed(ActionEvent e) /* l'evento viene trattato come un metodo */
  2538.                 {
  2539.                     argument = "\"" + txtTesto.getText().toString() + "\""; /* la variabile "argument" conterrà la scelta dell'utente */
  2540.                 }
  2541.             });
  2542.             btnOk.setIcon(new ImageIcon(buttonImage.getImage())); /* setto l'immagine del bottone */
  2543.             btnOk.setBounds(222, 40, 82, 24); /* imposto le coordinate x = 222, y = 40 e la grandezza della finestra : width = 82, height = 24 */
  2544.             contentPane.add(btnOk); /* aggiungo il controllo al JPanel */
  2545.            
  2546.         /* Fine scrittura codice relativa al form e al JPanel */
  2547.     }
  2548. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement