Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Disegnare in una Form
Forum - Java - Disegnare in una Form

Avatar
Matthew (Member)
Expert


Messaggi: 387
Iscritto: 29/01/2007

Segnala al moderatore
Postato alle 19:43
Lunedì, 15/12/2008
Salve a tutti!
Ho appena cominciato a studiare un po di Java, e per quanto sia molto simile al C#(che conosco abbastanza decentemente), non riesco a creare sulla form pricipale un'area in cui disegnare una linea o altro... (Col C# uso un buffer grafico ma mi andrebbe bene anche una soluzione molto più rudimentale)... Premetto che mi serve una spiegazione per beginners.
Grazie dell'aiuto:k:

PM Quote
Avatar
mc (Normal User)
Rookie


Messaggi: 52
Iscritto: 04/12/2008

Segnala al moderatore
Postato alle 21:36
Martedì, 16/12/2008
Devi sovrascrivere il metodo paint:
Codice sorgente - presumibilmente Java

  1. void paint(Graphics g){
  2.  
  3.    g.drawLine(0, 0, 100, 100);
  4.  
  5. }


PM Quote
Avatar
newraziel (Normal User)
Newbie


Messaggi: 17
Iscritto: 08/12/2008

Segnala al moderatore
Postato alle 10:10
Mercoledì, 17/12/2008
Ciao perchè non provi a fare così? Creati un file java "Generic.java" che permetterà di creare la form dinamica. Esempio di come voler creare una form per l'autenticazione per un'applicazione. Ecco il codice:


Codice sorgente - presumibilmente Java

  1. public class Generic extends JPanel{
  2.  
  3.         /*
  4.          * Etichette per la GUI
  5.          */
  6.         protected final static String names[]= {"Username", "Password" };
  7.         /*
  8.          * Componenti GUI
  9.          */
  10.         protected JLabel labels[];
  11.         public JTextField fields[];
  12.         protected JButton button1;
  13.         protected JPanel panelCenter, panelSouth;
  14.        
  15.        
  16.         /*
  17.          * Numero dei campi di testo della GUI
  18.          */
  19.         public int size;
  20.        
  21.         /*
  22.          * Costanti che rappresentano i campi di testo della GUI
  23.          */
  24.         public static final int GENERIC1 = 0, GENERIC2 = 1;                                            
  25.         /*
  26.          * Imposta la GUI.
  27.          * La dimensione dell'argomento del costruttore
  28.          */
  29.         public Generic(int size){
  30.                 this.size = size;
  31.                 labels = new JLabel[size];
  32.                 fields = new JTextField[size];
  33.                
  34.                 /*
  35.                  * Crea etichette
  36.                  */
  37.                 for(int count = 0; count < labels.length; count++){
  38.                         labels[count] = new JLabel(names[count]);
  39.                 }
  40.                
  41.                 /*
  42.                  * Crea campi di testo
  43.                  */
  44.                 for(int count = 0; count < fields.length; count++){
  45.                         fields[count] = new JTextField();
  46.                 }
  47.                
  48.                 /*
  49.                  * Crea il pannello CENTRALE
  50.                  */
  51.                 panelCenter = new JPanel();
  52.                 panelCenter.setLayout(new GridLayout(size,2));  // altezza x larghezza
  53.                
  54.                 /*
  55.                  * Attacca etichette e campi di testo a panelCenter
  56.                  */
  57.                 for(int count=0; count < size; count++){
  58.                         panelCenter.add(labels[count]);
  59.                         panelCenter.add(fields[count]);
  60.                 }
  61.                
  62.                 /*
  63.                  * Crea pulsante generico senza etichette e gestori di eventi
  64.                  */
  65.                 button1 = new JButton();
  66.                
  67.                
  68.                 /*
  69.                  * Crea il pannello SUD per disporre i pulsanti e li attacca
  70.                  */
  71.                 panelSouth = new JPanel();
  72.                 panelSouth.add(button1);
  73.                
  74.                 /*
  75.                  * Imposta il layout del contenitore e attacca i pannelli
  76.                  */
  77.                 setLayout(new BorderLayout());
  78.                
  79.                 add(panelCenter, BorderLayout.CENTER);
  80.                 add(panelSouth, BorderLayout.SOUTH);
  81.                
  82.                 validate();
  83.         }
  84.  
  85.         public JButton getButton1() {
  86.                 return button1;
  87.         }
  88. }



Ora che hai la  classe generica si può creare un'altra classe che permetterà la creazione della form specifica. Ecco il codice del file "LoginInterface.java":


Codice sorgente - presumibilmente Java

  1. public class LoginInterface extends JFrame{
  2.  
  3.         private Generic user;
  4.         private JButton loginButton;
  5.         /*
  6.          * Imposta la GUI
  7.          */
  8.         public LoginInterface()
  9.         {
  10.                 super("Login Form");
  11.                
  12.                 /*
  13.                  * Aggiungo l'Interfaccia generica e la centro allo schermo
  14.                  * creando l'oggetto user e impostando i campi nella form a 2
  15.                  */
  16.                 user = new Generic(2);
  17.                 getContentPane().add(user, BorderLayout.CENTER);
  18.                
  19.                 /*
  20.                  * Configuro il pulsante doTask1
  21.                  */
  22.                 loginButton = user.getButton1();
  23.                 loginButton.setText("Login");
  24.                 loginButton.setToolTipText("Avvia il login");
  25.                
  26.                
  27.                 /*
  28.                  * Chiamata ad ActionListener
  29.                  */
  30.                 loginButton.addActionListener(
  31.                         new ActionListener(){
  32.                                 public void actionPerformed(ActionEvent event)
  33.                                 {
  34.                                         String username = "";
  35.                                         String password = "";
  36.                                        
  37.                                         username = user.fields[0].getText();
  38.                                         password = user.fields[1].getText();
  39.                                         /*
  40.                                          * Creo un oggetto di tipo Accesso che mi permette
  41.                                          * di effettuare la connessione all'applicazione
  42.                                          * Il codice del file Accesso(non postato) prende
  43.                                          *in input "username e password"
  44.                                          * ed effettua una query sul db
  45.                                          */
  46.                                         Accesso accesso = new Accesso();
  47.                                         accesso.autentica(username, password);
  48.                                 }
  49.                         }
  50.                 ); //Fine chiamata ad ActionListener per il primo bottone
  51.                
  52.        
  53.                 /*
  54.                  * Registra ascoltatore per chiusura finestra
  55.                  */
  56.                 addWindowListener(
  57.                                 new WindowAdapter(){
  58.                                         public void windowClosing(WindowEvent event)
  59.                                         {
  60.                                                 System.exit(1);
  61.                                         }
  62.                                 }
  63.                 ); // Fine chiamata a WindowListener
  64.                
  65.                 /*
  66.                  * Regolazioni Contenitore
  67.                  */
  68.                 setSize(240, 160); //Larghezza x Altezza
  69.                 setVisible(true);
  70.                 setResizable(false);
  71.                 setLocation(500, 300); //Centro il contenitore allo schermo
  72.         }
  73.        
  74.         public static void main(String[] args){
  75.                 new LoginInterface();
  76.         }
  77. }



Spero che ti possa essere stato di aiuto!!!! Ciao Ciao Fammi sapere!!!

PM Quote