Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Renault Twingo E-Tech Electric: che prezzo!
Renault Twingo E-Tech Electric: che prezzo!
Renault annuncia la nuova vettura compatta del segmento A, che strizza l'occhio alla tradizione del modello abbinandovi una motorizzazione completamente elettrica e caratteristiche ideali per i tragitti urbani. Renault Twingo E-Tech Electric punta su abitabilità, per una lunghezza di meno di 3,8 metri, abbinata a un prezzo di lancio senza incentivi di 20.000€
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media
Nel Formula 1 Technology and Media Centre di Biggin Hill, la velocità delle monoposto si trasforma in dati, immagini e decisioni in tempo reale grazie all’infrastruttura Lenovo che gestisce centinaia di terabyte ogni weekend di gara e collega 820 milioni di spettatori nel mondo
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica
Il nuovo gimbal mobile DJI evolve il concetto di tracciamento automatico con tre modalità diverse, un modulo multifunzionale con illuminazione integrata e controlli gestuali avanzati. Nel gimbal è anche presente un'asta telescopica da 215 mm con treppiede integrato, per un prodotto completo per content creator di ogni livello
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 08-04-2008, 20:13   #1
IspiCiosa
Senior Member
 
Iscritto dal: Dec 2004
Messaggi: 1218
[JAVA]esercizio

RAgazzi qualcuno mi dà qualche dritta/suggerimento per fare questo esercizio??:

Progettate una applicazione per disegnare semplici forme geometriche su un pannello.
L’applicazione apre una finestra con due pulsanti ed un pannello per il disegno. I due pulsanti sono allineati sul fondo della finestra, mentre il pannello occupa tutta la parte superiore. Le etichette dei due pulsanti raffigurano un rettangolo ed un cerchio, rispettivamente. Il pannello reagisce ai click del mouse disegnando una figura nella posizione sulla quale avviene il click.

I due pulsanti controllano il disegno, nel senso seguente:

• il pannello disegna la figura corrispondente al pulsante che è stato clicked per ultimo.

• se l’utente non ha ancora selezionato alcun pulsante, un click sul pannello causa la comparsa di un MessageDialog con un messaggio che chiede di selezionare una figura

thanks
__________________
Athlon64 3500 (Winchester), Asus A8V-E Deluxe, X700Pro 256MB, Maxtor 200GB Sata,Ali Enermax 400W, Mast. Pionner 109,Lettore dvd LG, Creative 2.1 3200, LG 1980q, Canon Pixma mp500.
IspiCiosa è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2008, 21:15   #2
wizard1993
Senior Member
 
L'Avatar di wizard1993
 
Iscritto dal: Apr 2006
Messaggi: 22462
http://www.hwupgrade.it/forum/showthread.php?t=1631648
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza
wizard1993 è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2008, 21:20   #3
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da IspiCiosa Guarda i messaggi
Il pannello reagisce ai click del mouse disegnando una figura nella posizione sulla quale avviene il click.
Innanzitutto è chiaro che ti conviene creare un componente apposito, estendendo JComponent o JPanel. Il tuo componente al suo interno dovrà avere una "collezione" di oggetti che descrivono le forme geometriche. Nel metodo dedicato al paint del componente dovrai scorrere la collezione e disegnare le figure una per una. Quando fai click sul componente, aggiungi la figura alla collezione e fai il repaint del componente.

Visto che parli di rettangoli e cerchi, figure semplici cioè, allora puoi usare una collezione di java.awt.Shape ed usare le classi Rectangle2D.Float e Ellipse2D.Float. Essendo degli Shape, puoi facilmente disegnarli su un Graphics2D.

Quote:
Originariamente inviato da IspiCiosa Guarda i messaggi
• il pannello disegna la figura corrispondente al pulsante che è stato clicked per ultimo.
Allora per i due pulsanti puoi usare due JToggleButton, aggiunti entrambi (oltre che nel container) anche in un ButtonGroup. In questo modo solamente uno per volta resta "premuto".
Sarebbe una soluzione ottimale, nel tuo caso.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 16-04-2008, 19:38   #4
IspiCiosa
Senior Member
 
Iscritto dal: Dec 2004
Messaggi: 1218
Codice:
package esercitazione3;

/**
 *
 *  
 */
        import java.awt.event.MouseListener;
        import java.awt.event.MouseEvent;
       

        import javax.swing.JFrame;    
        import javax.swing.JButton;
        import javax.swing.JLabel;
        import javax.swing.JPanel;
        

public class Main {


    public static void main(String[] args) {
     
        
        
        final RectangleComponent component = new RectangleComponent();

 // Registra il listener

 class MousePressListener implements MouseListener
 { 

public void mousePressed(MouseEvent event) {
 int x = event.getX();
 int y = event.getY();
 component.moveTo(x, y);
 }

 // Do-nothing methods
 public void mouseReleased(MouseEvent event) {}
 public void mouseClicked(MouseEvent event) {}
 public void mouseEntered(MouseEvent event) {}
 public void mouseExited(MouseEvent event) {}
 

        
    
}

MouseListener listener = new MousePressListener();
component.addMouseListener(listener);


     JButton button = new JButton ("premi qui");
        final JLabel label = new JLabel("bravo");
        
        JPanel panel = new JPanel();
        panel.add(button);
      //  panel.add(label);   





JFrame frame = new JFrame();
frame.add(component);
frame.add(panel);



 frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
 frame.setTitle("Esercitazione 3");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 frame.setVisible(true);
 }

 private static final int FRAME_WIDTH = 300;
 private static final int FRAME_HEIGHT = 400;
                
                
}

cosa cè di sbagliato??

perchè se nonn inserisco il bottone il rettangolo funziona...
invece quando metto il bottone visualizzo solo quello??

è giusto come sto facendo?
__________________
Athlon64 3500 (Winchester), Asus A8V-E Deluxe, X700Pro 256MB, Maxtor 200GB Sata,Ali Enermax 400W, Mast. Pionner 109,Lettore dvd LG, Creative 2.1 3200, LG 1980q, Canon Pixma mp500.
IspiCiosa è offline   Rispondi citando il messaggio o parte di esso
Old 17-04-2008, 09:54   #5
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da IspiCiosa Guarda i messaggi
cosa cè di sbagliato??

perchè se non inserisco il bottone il rettangolo funziona...
invece quando metto il bottone visualizzo solo quello??

è giusto come sto facendo?
Forse potresti postare anche la tua classe RectangleComponent così diamo un occhio al codice dove fai il rendering.

Comunque il bottone "button" cosa dovrebbe fare? Non mi sembra sia stato definito un metodo che ne gestisca l'Action...

Prova a spiegarci in modo più dettagliato le tue intenzioni.

Ciao
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 17-04-2008, 20:13   #6
IspiCiosa
Senior Member
 
Iscritto dal: Dec 2004
Messaggi: 1218
le mie intenzioni sono di fare l'esecizio del 1 post

il programma come l'ho postato fa apparire un rettangolo che cliccando su un punto qualsiaasi del pannello il rettangolo viene ridisegnato...
ora vorrei che in basso ci siano 2 pulsanti se clicco su uno e poi sul pannello viene disegnato un rettangolo se premo l'altro pulsante e poi sul pannello mi disegna un cerchio ..

per ora ho fatto che se premo sul pannelo mi disegna un rettangolo ma appena metto un pulsante mi appare solo il pulsante....
__________________
Athlon64 3500 (Winchester), Asus A8V-E Deluxe, X700Pro 256MB, Maxtor 200GB Sata,Ali Enermax 400W, Mast. Pionner 109,Lettore dvd LG, Creative 2.1 3200, LG 1980q, Canon Pixma mp500.
IspiCiosa è offline   Rispondi citando il messaggio o parte di esso
Old 17-04-2008, 21:22   #7
IspiCiosa
Senior Member
 
Iscritto dal: Dec 2004
Messaggi: 1218
questo è rectangle component

Codice:
package esercitazione3;


        import java.awt.Graphics;    
        import java.awt.Graphics2D;
        import java.awt.Rectangle;
        import javax.swing.JComponent;
        

public class RectangleComponent extends JComponent  {
    

public RectangleComponent()
{
// Il rettangolo disegnato da paintComponent
box = new Rectangle(BOX_X, BOX_Y, BOX_WIDTH, BOX_HEIGHT);
}

public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g2.draw(box);
}

/**
Sposta il rettangolo alla posizione specificata.
@param x l’asciassa della nuova posizione
@param y l’ordinata della nuova posizione
*/
public void moveTo(int x, int y)
{
box.setLocation(x, y);
repaint();
} 


private Rectangle box;
private static final int BOX_X = 100;
private static final int BOX_Y = 100;
private static final int BOX_WIDTH = 20;
private static final int BOX_HEIGHT = 30;
}
__________________
Athlon64 3500 (Winchester), Asus A8V-E Deluxe, X700Pro 256MB, Maxtor 200GB Sata,Ali Enermax 400W, Mast. Pionner 109,Lettore dvd LG, Creative 2.1 3200, LG 1980q, Canon Pixma mp500.
IspiCiosa è offline   Rispondi citando il messaggio o parte di esso
Old 25-04-2008, 20:41   #8
IspiCiosa
Senior Member
 
Iscritto dal: Dec 2004
Messaggi: 1218
up con urgenza

questo è il codice

Codice:
package javaapplication9;

import javax.swing.*;
import java.awt.*;
import java.awt.Color.*;
import java.awt.event.*;
        import java.awt.event.MouseListener;
        import java.awt.event.MouseEvent;
        import java.awt.event.MouseEvent.*;  
        import java.awt.*;
        import javax.swing.JFrame;    
        import javax.swing.JButton;
        import javax.swing.JLabel;
        import javax.swing.*;
        import java.awt.*;
        import javax.swing.*;
import java.awt.*;
import java.awt.Color.*;
import java.awt.event.*; 
   import java.awt.Graphics;    
        import java.awt.Graphics2D;
        import java.awt.Rectangle;      
        
import javax.swing.*;


public class Main extends JFrame
{
    
  class NorthPanel extends JPanel
  {
    private JTextField textField;

    public NorthPanel()
    {
      textField = new JTextField("Premi il pulsante relativo per disegnare la figura");

      textField.setEditable(false);
      setLayout(new GridLayout(1,0));
      setBorder(BorderFactory.createEmptyBorder(10,4,10,4));
      add(textField);
    }
  }
  class CenterPanel extends JPanel
  {


      
    public CenterPanel()
    {
     setLayout(new BorderLayout());
      setBorder(BorderFactory.createEmptyBorder(200,200,200,200));
       setBackground(Color.WHITE);
  Rectangle box = new Rectangle();
  
  MousePressListener l = new MousePressListener();
  
  
  Panel p = new Panel();
 p.addMouseListener(l);
       
       
    }

    
  }
  class SouthPanel extends JPanel
  {
    private JButton okButton;
    private JButton cancelButton;

    public SouthPanel()
    {
      okButton = new JButton("[]");
      okButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
          try
          {
 
   
          }
          catch (Exception ex)
          { }
        }
      });
      cancelButton = new JButton("O");

      setLayout(new FlowLayout(FlowLayout.CENTER));
      add(cancelButton);
      add(okButton);
    }
  }
    
  private JPanel northPanel;
  private JPanel centerPanel;
  private JPanel southPanel;

  public Main()
  {
    super("Esercitazione3");

    JPanel northPanel = new NorthPanel();
    JPanel centerPanel = new CenterPanel();
    JPanel southPanel = new SouthPanel();
    
 
    

    setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    getContentPane().setLayout(new BorderLayout());
    getContentPane().add(BorderLayout.NORTH,northPanel);
    getContentPane().add(BorderLayout.CENTER,centerPanel);  
      
   
    getContentPane().add(BorderLayout.SOUTH,southPanel);


    
    pack();
    setVisible(true); 
    
  }

  
 public static void main(String argv[])
 {
     
     
    // imposta il Look&Feel di sistema
    try
    {
      UIManager.setLookAndFeel(
        UIManager.getSystemLookAndFeelClassName());
    }
    catch(Exception e) {}

    Main se = new Main();
 }
 
 final RectangleComponent component = new RectangleComponent();

 
private static final int BOX_X = 100;
private static final int BOX_Y = 100;
private static final int BOX_WIDTH = 20;
private static final int BOX_HEIGHT = 30;
 
 class MousePressListener implements MouseListener{

 public void mousePressed(MouseEvent event)
 {
 
    JOptionPane.showMessageDialog(null, "Operazione Eseguita", "Eseguito", JOptionPane.INFORMATION_MESSAGE); 
    
     
     
 /*int x = event.getX();
 int y = event.getY();
 component.moveTo(x, y);*/
 }

 // Do-nothing methods
 public void mouseReleased(MouseEvent event) {}
 public void mouseClicked(MouseEvent event) {}
 public void mouseEntered(MouseEvent event) {}
 public void mouseExited(MouseEvent event) {}
 }




 
 
}
al click del mouse sulla parte centrale dovrenne saltar fuori il message dialog ma non succede niente perchè? cosa sbaglio??

la classe rectanglecomponent è la stassa di sopra...

grazie
__________________
Athlon64 3500 (Winchester), Asus A8V-E Deluxe, X700Pro 256MB, Maxtor 200GB Sata,Ali Enermax 400W, Mast. Pionner 109,Lettore dvd LG, Creative 2.1 3200, LG 1980q, Canon Pixma mp500.
IspiCiosa è offline   Rispondi citando il messaggio o parte di esso
Old 25-04-2008, 21:20   #9
IspiCiosa
Senior Member
 
Iscritto dal: Dec 2004
Messaggi: 1218
ragazzi cosa sbaglio in questo codice???

Codice:
package javaapplication9;

import javax.swing.*;
import java.awt.*;
import java.awt.Color.*;
import java.awt.event.*;
        import java.awt.event.MouseListener;
        import java.awt.event.MouseEvent;
        import java.awt.event.MouseEvent.*;  
        import java.awt.*;
        import javax.swing.JFrame;    
        import javax.swing.JButton;
        import javax.swing.JLabel;
        import javax.swing.*;
        import java.awt.*;
        import javax.swing.*;
import java.awt.*;
import java.awt.Color.*;
import java.awt.event.*; 
   import java.awt.Graphics;    
        import java.awt.Graphics2D;
        import java.awt.Rectangle;      
        
import javax.swing.*;


public class Main extends JFrame
{
    
  class NorthPanel extends JPanel
  {
    private JTextField textField;

    public NorthPanel()
    {
      textField = new JTextField("Premi il pulsante relativo per disegnare la figura");

      textField.setEditable(false);
      setLayout(new GridLayout(1,0));
      setBorder(BorderFactory.createEmptyBorder(10,4,10,4));
      add(textField);
    }
  }
  class CenterPanel extends JPanel
  {


      
    public CenterPanel()
    {
     setLayout(new BorderLayout());
      setBorder(BorderFactory.createEmptyBorder(200,200,200,200));
       setBackground(Color.WHITE);
  
  
  MousePressListener l = new MousePressListener();
  component.addMouseListener(l); 
  
  JPanel p=new JPanel();
    setContentPane(p);
     

   p.add(component);
 p.addMouseListener(l);
     p.add(component);

    }

    
  }
  class SouthPanel extends JPanel
  {
    private JButton okButton;
    private JButton cancelButton;

    public SouthPanel()
    {
      okButton = new JButton("[]");
      okButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
          try
          {
 
   
          }
          catch (Exception ex)
          { }
        }
      });
      cancelButton = new JButton("O");

      setLayout(new FlowLayout(FlowLayout.CENTER));
      add(cancelButton);
      add(okButton);
    }
  }
    
  private JPanel northPanel;
  private JPanel centerPanel;
  private JPanel southPanel;

  public Main()
  {
    super("Esercitazione3");

    JPanel northPanel = new NorthPanel();
    JPanel centerPanel = new CenterPanel();
    JPanel southPanel = new SouthPanel();
    
 
   

    setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    getContentPane().setLayout(new BorderLayout());
    getContentPane().add(BorderLayout.NORTH,northPanel);
    getContentPane().add(BorderLayout.CENTER,centerPanel);  

   
    getContentPane().add(BorderLayout.SOUTH,southPanel);


    
    pack();
    setVisible(true); 
    
  }

  
 public static void main(String argv[])
 {
    final RectangleComponent component = new RectangleComponent(); 
     
    // imposta il Look&Feel di sistema
    try
    {
      UIManager.setLookAndFeel(
        UIManager.getSystemLookAndFeelClassName());
    }
    catch(Exception e) {}

   
    Main se = new Main();
    
 
 }
 
 final RectangleComponent component = new RectangleComponent();

private static final int disegno = 1;


 
 class MousePressListener implements MouseListener{

 public void mousePressed(MouseEvent event)
 {
 if (disegno == 0)
    JOptionPane.showMessageDialog(null, "Devi premere il pulsante con la figura da disegnare", "Errore", JOptionPane.INFORMATION_MESSAGE);
 
//if (disegno == 1){
 int x = event.getX();
 int y = event.getY();
 component.moveTo(x, y); 
 //   }
     
 }


 // Do-nothing methods
 public void mouseReleased(MouseEvent event) {}
 public void mouseClicked(MouseEvent event) {}
 public void mouseEntered(MouseEvent event) {}
 public void mouseExited(MouseEvent event) {}
 }




 
 
}
la classe rettangolo è la stessa postata un po piu sopra sui primi post....

perchè non mi visualizza il rettangolo ???
__________________
Athlon64 3500 (Winchester), Asus A8V-E Deluxe, X700Pro 256MB, Maxtor 200GB Sata,Ali Enermax 400W, Mast. Pionner 109,Lettore dvd LG, Creative 2.1 3200, LG 1980q, Canon Pixma mp500.
IspiCiosa è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Renault Twingo E-Tech Electric: che prezzo! Renault Twingo E-Tech Electric: che prezzo!
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media Il cuore digitale di F1 a Biggin Hill: l'infrast...
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica DJI Osmo Mobile 8: lo stabilizzatore per smartph...
Recensione Pura 80 Pro: HUAWEI torna a stupire con foto spettacolari e ricarica superveloce Recensione Pura 80 Pro: HUAWEI torna a stupire c...
Opera Neon: il browser AI agentico di nuova generazione Opera Neon: il browser AI agentico di nuova gene...
Snap e Perplexity unite: dal prossimo an...
La Cina dice addio a NVIDIA? Il governo ...
Microlino, simbolo italiano della mobili...
Apple disattiverà la sincronizzaz...
Google lancia l'allarme: attenzione ai m...
Primo test drive con Leapmotor B10: le c...
'Non può essere un robot': l'uman...
Monopattino elettrico Segway Ninebot Max...
Syberia Remastered è disponibile:...
Sony scopre che tutti i modelli AI hanno...
Amazon nasconde un -15% su 'Seconda Mano...
Due occasioni Apple su Amazon: iPhone 16...
Verso la fine della TV tradizionale? I g...
Cassa JBL a 39€, portatili, smartphone, ...
Cometa interstellare 3I/ATLAS: la sonda ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 04:44.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v