Torna indietro   Hardware Upgrade Forum > Software > Programmazione

 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP
Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP
OPPO ha appena lanciato sul mercato la nuova serie Find X10, che ha come smartphone premium il Find X10 Pro Max, uno smartphone completo, che fa del comparto fotografico il suo vero punto di forza. Ma sono tante le novità, tra cui l'AI che adesso diventa agentica. Ma andiamo a vedere nel dettaglio questo nuovo smartphone.
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato
Abbiamo provato la beta di World of Warcraft: Forever, il Classic+ di Blizzard in arrivo il 4 novembre: la nuova razza Skyborne restituisce la sensazione di un gioco nuovo, ma le zone storiche conservano la noia divertita di Classic. Classi ribilanciate, sciamani anche nell'Alleanza e un motore grafico che in 4K gira bene anche su una RTX 3070. Cosa cambia in Forever? La risposta nell'articolo
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita
TCL P80 Ultra abbina per la prima volta un pannello AMOLED alla tecnologia NXTPAPER con finitura opaca, affiancandoci una fotocamera periscopica da 50 MP con zoom ottico 3x, il SoC Dimensity 7400 Elite e una batteria da 5.800 mAh. Nella prova sul campo emergono luminosità di picco molto elevata, comparto fotografico solido per la fascia di prezzo e autonomia nella media, a fronte di velocità di scrittura dello storage piuttosto contenute
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 08-04-2008, 19: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, 20: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, 20:20   #3
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
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, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 16-04-2008, 18: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, 08: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, 19: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, 20: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, 19: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, 20: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


 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato WoW Forever provato: il MMORPG che la community ...
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita TCL P80 Ultra: con un display AMOLED opaco &egra...
HUAWEI MatePad Air recensione: OLED opaco e tastiera dedicata per lavorare meglio HUAWEI MatePad Air recensione: OLED opaco e tast...
NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica NVIDIA RTX Spark: il PC Windows on ARM costruito...
iPhone Duo, il compromesso del display p...
Reolink OMVI 2i Ultra, la videocamera ib...
PowerToys 0.102: con un nuovo tool il mo...
Bose acquisisce Skullcandy per raggiunge...
I videogiochi di Star Wars dovranno sorp...
Cos'è Flint: l'AI locale per la programm...
Perplexity Computer ora gira offline sul...
LG lancia in Italia i nuovi laptop gram ...
Spotify dice addio ai vincoli di Android...
Leica Q3 43 Formula 1: carbonio, Microve...
Quattro nuovi smartphone e tablet da HON...
Xiaomi Redmi Note 17 in offerta su Amazo...
Fastweb + Vodafone potenzia il supercomp...
Europa e Taiwan uniscono le forze: nasce...
Pixel 9, Google estende di un anno il se...
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: 16:39.


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