Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HUAWEI MatePad Air recensione: OLED opaco e tastiera dedicata per lavorare meglio
HUAWEI MatePad Air recensione: OLED opaco e tastiera dedicata per lavorare meglio
HUAWEI MatePad Air combina diverse carte molto interessanti: un OLED PaperMatte da 12 pollici, un corpo sottile e una tastiera molto comoda. Durante la prova abbiamo apprezzato fluidità, audio e comfort visivo, mentre i test hanno chiarito pregi e qualche limite nelle prestazioni. L'autonomia ha convinto anche nell'uso intermittente; la scelta passa dalla compatibilità delle proprie app e dal valore del pacchetto con accessori, proposto a 749 euro
NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica
NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica
Debuttano ufficialmente i primi sistemi notebook basati su piattaforma NVIDIA RTX Spark, abbinati a Windows on ARM e pensati per l'intelligenza artificiale agentica. Architettura integrata tra CPU e GPU che condividono la memoria di sistema, capace di gestire in locale modelli molto grandi ma al contempo anche di spiccare con la grafica e l'elaborazione
Motorola razr fold, dalla conchiglia al formato a libro. La recensione
Motorola razr fold, dalla conchiglia al formato a libro. La recensione
Abbiamo provato Motorola razr fold, il pieghevole a libro con display interno LTPO da 8,09 pollici, Snapdragon 8 Gen 5 e batteria da 6000 mAh in 243 grammi. Pennino e custodia sopno già nella confezione, per un foldable che si caratterizza per il pannello luminoso, l'autonomia ottima per la categoria e le fotocamere coerenti e ben sfruttabili. Il listino è di 1999 euro, ma in vendita si trova già a molto meno
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-06-2008, 17:00   #1
jj.69kt
Senior Member
 
L'Avatar di jj.69kt
 
Iscritto dal: Oct 2007
Messaggi: 677
[Java][NetBeans] Immagini.

In NetBeans, con matisse... Devo inserire un'immagine che deve ruotare di un tot di gradi inseriti dall'utente in una JTextField... (Minimo 0°, Massimo 90°) Come posso fare?

Help..
(45° post mio.. sulle immagini... XD)
__________________

Desktop: (In Vendita) iMac (12,2) 27" --> i5 QaudCore 2,7GHz, 8GB RAM, 1TB HDD..
Laptop (In Pensione): MacBook PRO (3,1) 15.4" (Glossy, ma pentito) --> 2.2Ghz, 4GB Ram..
Camera: Nikon D80 with Nikkor 18-55mm 1:3-5.6 GII + Nikkor 55-200mm 1:4-5.6 VR
"Mobile":iPhone 5 64Gb
MyEbay: 100%! • Mercatino (Green = Good; Red = Bad) UncleSam, Boxi80, Zuckerbaer, lamerone, danidj, maxmax80
jj.69kt è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2008, 17:50   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da jj.69kt Guarda i messaggi
In NetBeans, con matisse... Devo inserire un'immagine che deve ruotare di un tot di gradi inseriti dall'utente in una JTextField... (Minimo 0°, Massimo 90°) Come posso fare?
Carica l'immagine in modo da avere un Image, crea una tua classe che estende ad esempio JPanel e in cui disegnerai in paintComponent() la immagine. Con rotate() di Graphics2D imposta un angolo di rotazione e .... disegna la immagine.
__________________
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 01-06-2008, 18:19   #3
jj.69kt
Senior Member
 
L'Avatar di jj.69kt
 
Iscritto dal: Oct 2007
Messaggi: 677
Mhm, quindi tipo:

Codice PHP:
JPanel jPanel1 = new JPanel();
Image image = ImageIO.read("path/asd.gif");
JLabel label = new JLabel(new ImageIcon( image ));
jPanel1.add(label);

JTextField angolo = new JTextField( 10);
jPanel1.add(angolo);

JButton check = new JBUtton();
check.addMouseListener(AscoltaMouseListener);

public 
void AscoltaMouseListener()
{
String angoloString = ""; 
float angoloFlo = 0; 
try { 
angoloString = angolo.getText(); 
angoloFlo = Float.parseFloat(angoloString); 
int angoloInt = (int) angoloString; //ovviamente faccio un controllo in precedenza ce sia  un int..
image.rotate(angoloInt);
}catch (
Exception ex) {} 
} 

O mi sono confuso un poco?
Ho l'impressione di si...

EDIT: avevo dimenticato di chiamare il rotate.. XD
__________________

Desktop: (In Vendita) iMac (12,2) 27" --> i5 QaudCore 2,7GHz, 8GB RAM, 1TB HDD..
Laptop (In Pensione): MacBook PRO (3,1) 15.4" (Glossy, ma pentito) --> 2.2Ghz, 4GB Ram..
Camera: Nikon D80 with Nikkor 18-55mm 1:3-5.6 GII + Nikkor 55-200mm 1:4-5.6 VR
"Mobile":iPhone 5 64Gb
MyEbay: 100%! • Mercatino (Green = Good; Red = Bad) UncleSam, Boxi80, Zuckerbaer, lamerone, danidj, maxmax80
jj.69kt è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2008, 20:35   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da jj.69kt Guarda i messaggi
O mi sono confuso un poco?
Ehm ... beh .. sì, un tantino ...
Image non ha un rotate(), poi già solo quel cast a int di un String fa venire i brividi ... e quindi non è assolutamente l'approccio giusto.


Questo è un esempio completo:

Codice:
import java.awt.*;
import java.net.*;
import javax.imageio.*;
import javax.swing.*;
import javax.swing.event.*;

public class ImageRotationTestFrame extends JFrame
{
    private ImagePanel imagePanel;
    private JSlider slider;

    public ImageRotationTestFrame ()
    {
        super ("Image Rotation Test");

        setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
        setSize (400, 400);

        try
        {
            Image img = ImageIO.read (new URL ("http://img158.imageshack.us/img158/8927/catum9.jpg"));

            imagePanel = new ImagePanel (img);
            slider = new JSlider (0, 360, 0);

            getContentPane ().add (imagePanel, BorderLayout.CENTER);
            getContentPane ().add (slider, BorderLayout.SOUTH);

            slider.addChangeListener (new ChangeListener ()
            {
                public void stateChanged (ChangeEvent e)
                {
                    imagePanel.setAngle (slider.getValue ());
                }
            });
        }
        catch (Exception e)
        {
            System.out.println (e);
        }
    }

    public static void main (String[] args)
    {
        SwingUtilities.invokeLater (new Runnable ()
        {
            public void run ()
            {
                ImageRotationTestFrame f = new ImageRotationTestFrame ();
                f.setVisible (true);
            }
        });
    }
}

class ImagePanel extends JPanel
{
    private Image img;
    private double angle;

    public ImagePanel (Image img)
    {
        this.img = img;
    }

    public void setAngle (double angle)
    {
        this.angle = Math.toRadians (angle);
        repaint ();
    }

    public void paintComponent (Graphics g)
    {
        super.paintComponent (g);

        Graphics2D g2d = (Graphics2D) g;

        int panelWidth = getWidth ();
        int panelHeight = getHeight ();
        int imgWidth = img.getWidth (this);
        int imgHeight = img.getHeight (this);

        g2d.translate (panelWidth/2, panelHeight/2);
        g2d.rotate (angle);

        g2d.drawImage (img, -imgWidth/2, -imgHeight/2, this);
    }
}
Basta lanciarlo (ci vuole un attimino perché carichi l'immagine) e poi è sufficiente trascinare lo slider per cambiare angolo.
__________________
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 02-06-2008, 11:23   #5
jj.69kt
Senior Member
 
L'Avatar di jj.69kt
 
Iscritto dal: Oct 2007
Messaggi: 677
Wow, avevo errato un poco. XD

Mhm, ok ti ringrazio! Vedo di adattarlo a ciò che mi serve!!
GRAZIE!!!
__________________

Desktop: (In Vendita) iMac (12,2) 27" --> i5 QaudCore 2,7GHz, 8GB RAM, 1TB HDD..
Laptop (In Pensione): MacBook PRO (3,1) 15.4" (Glossy, ma pentito) --> 2.2Ghz, 4GB Ram..
Camera: Nikon D80 with Nikkor 18-55mm 1:3-5.6 GII + Nikkor 55-200mm 1:4-5.6 VR
"Mobile":iPhone 5 64Gb
MyEbay: 100%! • Mercatino (Green = Good; Red = Bad) UncleSam, Boxi80, Zuckerbaer, lamerone, danidj, maxmax80
jj.69kt è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2008, 15:40   #6
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Se hai provato il mio esempio, avrai visto che con le varie angolazioni, a parte i bordi sgranati, pure l'interno della immagine stessa appare un po' sgranato.

Prima del drawImage basta impostare:

g2d.setRenderingHint (RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);

e si ottiene già una qualità decisamente superiore.
__________________
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 02-06-2008, 15:56   #7
jj.69kt
Senior Member
 
L'Avatar di jj.69kt
 
Iscritto dal: Oct 2007
Messaggi: 677
Si vabbè, io tanto devo ruotare una gif di pochi pixel... XD
Una cosa tipo 80pix*80pix..... Per cui non mi serve sia perfetta..

..Mhm.. Ora sto un po lavorandoci per integrarlo nel mio lavoro..

Comunque grazie mille per i suggerimenti!!
__________________

Desktop: (In Vendita) iMac (12,2) 27" --> i5 QaudCore 2,7GHz, 8GB RAM, 1TB HDD..
Laptop (In Pensione): MacBook PRO (3,1) 15.4" (Glossy, ma pentito) --> 2.2Ghz, 4GB Ram..
Camera: Nikon D80 with Nikkor 18-55mm 1:3-5.6 GII + Nikkor 55-200mm 1:4-5.6 VR
"Mobile":iPhone 5 64Gb
MyEbay: 100%! • Mercatino (Green = Good; Red = Bad) UncleSam, Boxi80, Zuckerbaer, lamerone, danidj, maxmax80
jj.69kt è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2008, 10:31   #8
jj.69kt
Senior Member
 
L'Avatar di jj.69kt
 
Iscritto dal: Oct 2007
Messaggi: 677
o.0 Sarò rimbambito???

Ecco il codice che ho fatto (anche con l'aiuto di netbeans XP)

Codice PHP:
/*
 * GraphicX.java
 *
 * Created on 1 giugno 2008, 12.18
 */
package hittheplane;

import java.awt.*;
import javax.swing.*;
import java.io.*;
import javax.imageio.ImageIO;
import javax.swing.event.*;

/**
 *
 * @author  Exol
 */
public class GraphicX extends JFrame {

    
/** Creates new form GraphicX */
    
public GraphicX() {
        
initComponents();
    }

    @
SuppressWarnings("unchecked")
    
// <editor-fold defaultstate="collapsed" desc="Generated Code">
    
private void initComponents() {

        
DESTROY = new javax.swing.JPopupMenu();
        
animationPanel = new javax.swing.JPanel();
        
Image img1 = ImageIO.read (new File ("./Cannoncino.gif"));
        
imagePanelRotate = new ImagePanel(img1);
        
comandPanel = new javax.swing.JPanel();
        
alzoLabel = new javax.swing.JLabel();
        
angleSlider = new javax.swing.JSlider(0, 90, 90);
        
speedLabel = new javax.swing.JLabel();
        
speedInput = new javax.swing.JTextField();
        
DELETE = new javax.swing.JLabel();
        
shotsLabel = new javax.swing.JLabel();
        
shotsInput = new javax.swing.JTextField();
        
shotButton = new javax.swing.JButton();
        
topMenu = new javax.swing.JMenuBar();
        
fileMenu = new javax.swing.JMenu();
        
newItemMenu = new javax.swing.JMenuItem();
        
fileJSeparator = new javax.swing.JSeparator();
        
exitItemMenu = new javax.swing.JMenuItem();
        
viewMenu = new javax.swing.JMenu();
        
highScoreItemMenu = new javax.swing.JMenuItem();
        
viewInstructionItemMenu = new javax.swing.JMenuItem();
        
viewShoutcutItemMenu = new javax.swing.JMenuItem();
        
impostMenu = new javax.swing.JMenu();
        
gameVAriablesItemMenu = new javax.swing.JMenuItem();
        
impostUserItemMEnu = new javax.swing.JMenuItem();

        
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        
setTitle("Hit The Plane");
        
setBackground(new java.awt.Color(255, 255, 255));
        
setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        
setName("MainFrame"); // NOI18N
        
setResizable(false);

        
animationPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        
animationPanel.setDebugGraphicsOptions(javax.swing.DebugGraphics.BUFFERED_OPTION);
        
animationPanel.setMaximumSize(new java.awt.Dimension(1140, 690));
        
animationPanel.setMinimumSize(new java.awt.Dimension(380, 230));
        
animationPanel.setPreferredSize(new java.awt.Dimension(760, 460));

        
org.jdesktop.layout.GroupLayout imagePanelRotateLayout = new org.jdesktop.layout.GroupLayout(imagePanelRotate);
        
imagePanelRotate.setLayout(imagePanelRotateLayout);
        
imagePanelRotateLayout.setHorizontalGroup(
            
imagePanelRotateLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .
add(0, 100, Short.MAX_VALUE)
        );
        
imagePanelRotateLayout.setVerticalGroup(
            
imagePanelRotateLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .
add(0, 100, Short.MAX_VALUE)
        );

        
org.jdesktop.layout.GroupLayout animationPanelLayout = new org.jdesktop.layout.GroupLayout(animationPanel);
        
animationPanel.setLayout(animationPanelLayout);
        
animationPanelLayout.setHorizontalGroup(
            
animationPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .
add(animationPanelLayout.createSequentialGroup()
                .
add(imagePanelRotate, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .
addContainerGap(656, Short.MAX_VALUE))
        );
        
animationPanelLayout.setVerticalGroup(
            
animationPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .
add(org.jdesktop.layout.GroupLayout.TRAILING, animationPanelLayout.createSequentialGroup()
                .
addContainerGap(339, Short.MAX_VALUE)
                .
add(imagePanelRotate, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
        );

        
comandPanel.setBackground(new java.awt.Color(204, 204, 204));
        
comandPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Comandi Gioco", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION));
        
comandPanel.setMaximumSize(new java.awt.Dimension(1140, 114));
        
comandPanel.setMinimumSize(new java.awt.Dimension(380, 38));
        
comandPanel.setName("ComandiGioco"); // NOI18N
        
comandPanel.setPreferredSize(new java.awt.Dimension(760, 76));

        
alzoLabel.setText("Alzo");
        
comandPanel.add(alzoLabel);
        
angleSlider.setInverted(true);
        
angleSlider.addChangeListener (new ChangeListener ()
            {
                public 
void stateChanged (ChangeEvent e)
                {
                    
imagePanelRotate.setAngle (angleSlider.getValue ());
                }
            });
            
comandPanel.add(angleSlider);

            
speedLabel.setText("Veloc.");
            
comandPanel.add(speedLabel);

            
speedInput.setText("05");
            
comandPanel.add(speedInput);
            
comandPanel.add(DELETE);

            
shotsLabel.setText("Raffica");
            
comandPanel.add(shotsLabel);

            
shotsInput.setText("1");
            
comandPanel.add(shotsInput);

            
shotButton.setText("Shoot!");
            
shotButton.setMaximumSize(new java.awt.Dimension(90, 30));
            
shotButton.setMinimumSize(new java.awt.Dimension(90, 30));
            
shotButton.setName("shotButton"); // NOI18N
            
shotButton.setPreferredSize(new java.awt.Dimension(90, 30));
            
shotButton.addActionListener(new java.awt.event.ActionListener() {
                public 
void actionPerformed(java.awt.event.ActionEvent evt) {
                    
shotButtonActionPerformed(evt);
                }
            });
            
comandPanel.add(shotButton);
            
shotButton.getAccessibleContext().setAccessibleDescription("Spara co il cannone");

            
fileMenu.setText("File");

            
newItemMenu.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F2, 0));
            
newItemMenu.setText("New Game");
            
fileMenu.add(newItemMenu);
            
fileMenu.add(fileJSeparator);

            
exitItemMenu.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Q, java.awt.event.InputEvent.SHIFT_MASK));
            
exitItemMenu.setText("Exit");
            
exitItemMenu.setToolTipText("Esce dal Gioco");
            
exitItemMenu.addMouseListener(new java.awt.event.MouseAdapter() {
                public 
void mouseClicked(java.awt.event.MouseEvent evt) {
                    
exitItemMenuMouseClicked(evt);
                }
            });
            
fileMenu.add(exitItemMenu);

            
topMenu.add(fileMenu);

            
viewMenu.setText("View");

            
highScoreItemMenu.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_H, java.awt.event.InputEvent.SHIFT_MASK));
            
highScoreItemMenu.setText("High Score");
            
viewMenu.add(highScoreItemMenu);

            
viewInstructionItemMenu.setText("Instructions");
            
viewMenu.add(viewInstructionItemMenu);

            
viewShoutcutItemMenu.setText("Keyboard Shoutcut");
            
viewMenu.add(viewShoutcutItemMenu);

            
topMenu.add(viewMenu);

            
impostMenu.setText("Settings");

            
gameVAriablesItemMenu.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_I, java.awt.event.InputEvent.SHIFT_MASK));
            
gameVAriablesItemMenu.setText("Game Variables");
            
impostMenu.add(gameVAriablesItemMenu);

            
impostUserItemMEnu.setText("User Name");
            
impostMenu.add(impostUserItemMEnu);

            
topMenu.add(impostMenu);

            
setJMenuBar(topMenu);

            
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
            
getContentPane().setLayout(layout);
            
layout.setHorizontalGroup(
                
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .
add(layout.createSequentialGroup()
                    .
addContainerGap()
                    .
add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .
add(org.jdesktop.layout.GroupLayout.TRAILING, animationPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .
add(comandPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 760, Short.MAX_VALUE))
                    .
addContainerGap())
            );
            
layout.setVerticalGroup(
                
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .
add(layout.createSequentialGroup()
                    .
addContainerGap()
                    .
add(animationPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 443, Short.MAX_VALUE)
                    .
addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .
add(comandPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 73, Short.MAX_VALUE)
                    .
add(20, 20, 20))
            );

            
comandPanel.getAccessibleContext().setAccessibleDescription("PannelloDeiComandi");

            
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
            
setBounds((screenSize.width-800)/2, (screenSize.height-600)/2, 800, 600);
        }
// </editor-fold>

private void exitItemMenuMouseClicked(java.awt.event.MouseEvent evt) {                                          
    
System.exit(0);
}                                         

private 
void shotButtonActionPerformed(java.awt.event.ActionEvent evt) {                                           
// TODO add your handling code here:
}                                          

    
/**
    * @param args the command line arguments
    */
    
public static void main(String args[]) {
        
java.awt.EventQueue.invokeLater(new Runnable() {
            public 
void run() {
                new 
GraphicX().setVisible(true);
            }
        });
    }


    private 
Image img = ImageIO.read(new File ("./Cannoncino.gif"));
    private 
ImagePanel cannonPane = new ImagePanel(img);
    
// Variables declaration - do not modify
    
private javax.swing.JLabel DELETE;
    private 
javax.swing.JPopupMenu DESTROY;
    private 
javax.swing.JLabel alzoLabel;
    private 
javax.swing.JSlider angleSlider;
    private 
javax.swing.JPanel animationPanel;
    private 
javax.swing.JPanel comandPanel;
    private 
javax.swing.JMenuItem exitItemMenu;
    private 
javax.swing.JSeparator fileJSeparator;
    private 
javax.swing.JMenu fileMenu;
    private 
javax.swing.JMenuItem gameVAriablesItemMenu;
    private 
javax.swing.JMenuItem highScoreItemMenu;
    private 
javax.swing.JPanel imagePanelRotate;
    private 
javax.swing.JMenu impostMenu;
    private 
javax.swing.JMenuItem impostUserItemMEnu;
    private 
javax.swing.JMenuItem newItemMenu;
    private 
javax.swing.JButton shotButton;
    public 
javax.swing.JTextField shotsInput;
    private 
javax.swing.JLabel shotsLabel;
    public 
javax.swing.JTextField speedInput;
    private 
javax.swing.JLabel speedLabel;
    private 
javax.swing.JMenuBar topMenu;
    private 
javax.swing.JMenuItem viewInstructionItemMenu;
    private 
javax.swing.JMenu viewMenu;
    private 
javax.swing.JMenuItem viewShoutcutItemMenu;
    
// End of variables declaration
}



//____________________________________
// ImagePanel.java
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package hittheplane;

import java.awt.*;
import javax.swing.JPanel;

    @
SuppressWarnings("serial")
    class 
ImagePanel extends JPanel
{
    private 
Image img;
    private 
double angle;

    public 
ImagePanel (Image img)
    {
        
this.img = img;
    }

    public 
void setAngle (double angle)
    {
        
this.angle = Math.toRadians (angle);
        
repaint ();
    }

    @
Override
    
public void paintComponent (Graphics g)
    {
        
super.paintComponent (g);

        
Graphics2D g2d = (Graphics2D) g;

        
int panelWidth = getWidth ();
        
int panelHeight = getHeight ();
        
int imgWidth = img.getWidth (this);
        
int imgHeight = img.getHeight (this);

        
g2d.translate (panelWidth/2, panelHeight/2);
        
g2d.rotate (angle);

        
g2d.drawImage (img, -imgWidth/2, -imgHeight/2, this);
    }
 } 
Ma mi da due errori:
Codice:
init:
deps-jar:
Compiling 2 source files to /*censured path*/HitThePlae/build/classes
/*censured path*/HitThePlae/src/hittheplane/GraphicX.java:108: cannot find symbol
symbol  : method setAngle(int)
location: class javax.swing.JPanel
                    imagePanelRotate.setAngle (angleSlider.getValue ());
1 errors
BUILD FAILED (total time: 0 seconds)
Ora.. Io mi sono ltto un po' tutto il codice... Ma non capisco xke mi dice che Image è astratto e non lo posso usare???? Image l'o usato ancora.. non mi ha mai dato questo problema.... o.0
Sarò stupido io?????

EDIT: HO RISOLTO IL PROBLEMA DI Image ERA UN ERRORE STUPIDO....!!
Ora mi manca l'altro problema... ç_ç/EDIT

Cmq se vi interessa allego pure il file ".form" se volete sfruttarlo con matisse per capire... (anche se voi siete dei mezzi genii.. XD e vedete il codice come se fosse visuibile.. tipo codice matrix.. XD XD )
__________________

Desktop: (In Vendita) iMac (12,2) 27" --> i5 QaudCore 2,7GHz, 8GB RAM, 1TB HDD..
Laptop (In Pensione): MacBook PRO (3,1) 15.4" (Glossy, ma pentito) --> 2.2Ghz, 4GB Ram..
Camera: Nikon D80 with Nikkor 18-55mm 1:3-5.6 GII + Nikkor 55-200mm 1:4-5.6 VR
"Mobile":iPhone 5 64Gb
MyEbay: 100%! • Mercatino (Green = Good; Red = Bad) UncleSam, Boxi80, Zuckerbaer, lamerone, danidj, maxmax80

Ultima modifica di jj.69kt : 03-06-2008 alle 12:38. Motivo: Risolto un problema su due!
jj.69kt è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2008, 12:36   #9
jj.69kt
Senior Member
 
L'Avatar di jj.69kt
 
Iscritto dal: Oct 2007
Messaggi: 677
PELASEEEE!!

Ecco xke odio netbeans... Con il suo initComponents() inizializza tutte le variabli....
e se io ne volessi una per i cazzi mia???? GRRRR

HEEELEPPP!!!! Qlk1 può aiutarmi per sopra??
__________________

Desktop: (In Vendita) iMac (12,2) 27" --> i5 QaudCore 2,7GHz, 8GB RAM, 1TB HDD..
Laptop (In Pensione): MacBook PRO (3,1) 15.4" (Glossy, ma pentito) --> 2.2Ghz, 4GB Ram..
Camera: Nikon D80 with Nikkor 18-55mm 1:3-5.6 GII + Nikkor 55-200mm 1:4-5.6 VR
"Mobile":iPhone 5 64Gb
MyEbay: 100%! • Mercatino (Green = Good; Red = Bad) UncleSam, Boxi80, Zuckerbaer, lamerone, danidj, maxmax80
jj.69kt è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2008, 13:34   #10
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Guarda, basta che leggi con calma il messaggio del compilatore, di solito sono piuttosto chiari, per esempio nel caso del tuo post qui sopra:

Quote:
/*censured path*/HitThePlae/src/hittheplane/GraphicX.java:108: cannot find symbol
symbol : method setAngle(int)
location: class javax.swing.JPanel
imagePanelRotate.setAngle (angleSlider.getValue ());
Evidentemente angleSlider.getValue() torna un int e l'oggetto referenziato da imagePanelRotate, che è la tua classe ImagePanel che estende javax.swing.JPanel, non ha un metodo setAngle(int) cioè che accetta interi.

Infatti se vado a leggere nella classe ImagePanel trovo "solo" un metodo setAngle(double angle) che quindi accetta solo double.

Una soluzione sarebbe castare a double, così: ((double) angleSlider.getValue())

Un'altra soluzione, per me più elegante, sarebbe definire in ImagePanel un altro metodo setAngle() che accetta double.


Comunque ti consiglio di sforzarti a leggere e tentare di capire da solo i messaggi di errore di javac.

Ciao
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2008, 14:13   #11
jj.69kt
Senior Member
 
L'Avatar di jj.69kt
 
Iscritto dal: Oct 2007
Messaggi: 677
eh, mi ero accorto dell'int e del double.....
Il problema è che.. fatto il cast a double... Da ancora errore......
Creata una variabile di supporto che trafsorma l'int in double... errore..
usato un wrapper Integer che poi viene trasformato in double.... Ma nulla..
Sempre errore.... Non è il fatto che la funizone accetti un double... Pensavo anche io...... ç_ç

EDIT
Bello, se lo faccio girare sotto Eclipse mi da questo "errorino".. XD
ma perchè uso due IDE differenti..
Codice:
Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problems: 
	org.jdesktop cannot be resolved to a type
	org.jdesktop cannot be resolved to a type
	org.jdesktop cannot be resolved
	org.jdesktop cannot be resolved
	org.jdesktop cannot be resolved to a type
	org.jdesktop cannot be resolved to a type
	org.jdesktop cannot be resolved
	org.jdesktop cannot be resolved
	org.jdesktop cannot be resolved
	org.jdesktop cannot be resolved
	org.jdesktop cannot be resolved
	org.jdesktop cannot be resolved
	org.jdesktop cannot be resolved
	org.jdesktop cannot be resolved
	org.jdesktop cannot be resolved
	org.jdesktop cannot be resolved to a type
	org.jdesktop cannot be resolved to a type
	org.jdesktop cannot be resolved
	org.jdesktop cannot be resolved
	org.jdesktop cannot be resolved
	org.jdesktop cannot be resolved
	org.jdesktop cannot be resolved
	org.jdesktop cannot be resolved
	org.jdesktop cannot be resolved
	org.jdesktop cannot be resolved
	org.jdesktop cannot be resolved
	org.jdesktop cannot be resolved

	at GraphicX.initComponents(GraphicX.java:89)
	at GraphicX.<init>(GraphicX.java:24)
	at GraphicX$2.run(GraphicX.java:250)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Ora devo scappare... Apena torno a casa mi studio bene che sta succedendo..

Spero di cavarci qlke cosa... ç_ç
__________________

Desktop: (In Vendita) iMac (12,2) 27" --> i5 QaudCore 2,7GHz, 8GB RAM, 1TB HDD..
Laptop (In Pensione): MacBook PRO (3,1) 15.4" (Glossy, ma pentito) --> 2.2Ghz, 4GB Ram..
Camera: Nikon D80 with Nikkor 18-55mm 1:3-5.6 GII + Nikkor 55-200mm 1:4-5.6 VR
"Mobile":iPhone 5 64Gb
MyEbay: 100%! • Mercatino (Green = Good; Red = Bad) UncleSam, Boxi80, Zuckerbaer, lamerone, danidj, maxmax80

Ultima modifica di jj.69kt : 03-06-2008 alle 14:23.
jj.69kt è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2008, 14:18   #12
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da jj.69kt Guarda i messaggi
eh, mi ero accorto dell'int e del double.....
Il problema è che.. fatto il cast a double... Da ancora errore......
Creata una variabile di supporto che trafsorma l'int in double... errore..
usato un wrapper Integer che poi viene trasformato in double.... Ma nulla..
Sempre errore.... Non è il fatto che la funizone accetti un double... Pensavo anche io...... ç_ç
Scusa se te lo dico, ma potresti cercare di essere più preciso?

Con tutta la buona volontà del mondo mi dici come possiamo aiutarti a risolvere il tuo problema avendo come unica fonte di informazione quello che scrivi nei tuoi post, se non ci scrivi il benedetto messaggio di errore?

Posta le lamentele di javac che vediamo un po' dove sta l'inghippo
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2008, 14:26   #13
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Vabbè adesso anche il discorso Eclipse... li l'errore mi sembra dovuto al fatto che stai usando classi di librerie esterne e forse nella fretta non hai segnalato a Eclipse che in questo progetto stai usando la tale libreria il cui jar è sito in tal'altro posto nel tuo pc.

Però se posso permettermi, invece di agitarti e fare mille prove fermati un attimo e con calma risolviamo il problema.

Torna sotto NetBeans, controlla il codice, compila e posta l'errore.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 03-06-2008 alle 14:32.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2008, 15:21   #14
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Evidentemente angleSlider.getValue() torna un int e l'oggetto referenziato da imagePanelRotate, che è la tua classe ImagePanel che estende javax.swing.JPanel, non ha un metodo setAngle(int) cioè che accetta interi.

Infatti se vado a leggere nella classe ImagePanel trovo "solo" un metodo setAngle(double angle) che quindi accetta solo double.
No il problema non è quello! Anche perché un int è implicitamente convertibile a double ... ed è proprio quello che facevo io nel mio esempio: passavo un int a setAngle().

Il problema lo spiega molto bene il messaggio di errore:

/*censured path*/HitThePlae/src/hittheplane/GraphicX.java:108: cannot find symbol
symbol : method setAngle(int)
location: class javax.swing.JPanel
imagePanelRotate.setAngle (angleSlider.getValue ());

Infatti la variabile di istanza è un JPanel

private javax.swing.JPanel imagePanelRotate;

Quindi è chiaro che sul reference imagePanelRotate non si può invocare un setAngle() perché JPanel non ce l'ha!!
__________________
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 03-06-2008, 16:37   #15
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Ciao Andbin,
anche io all'inizio avevo pensato a questo ma poi sono andato a controllare il codice che ha postato e, scusa l'ignoranza mia, perchè il compilatore lo vede come un JPanel?

Lui da codice fa così:
Quote:
...
imagePanelRotate = new ImagePanel(img1);
...
Quindi quella reference dovrebbe puntare a un'istanza ImagePanel, che:

Quote:
...
class ImagePanel extends JPanel
{
private Image img;
private double angle;

public ImagePanel (Image img)
{
this.img = img;
}

public void setAngle (double angle)
{
this.angle = Math.toRadians (angle);
repaint ();
}

public void paintComponent (Graphics g)
{
super.paintComponent (g);

Graphics2D g2d = (Graphics2D) g;

int panelWidth = getWidth ();
int panelHeight = getHeight ();
int imgWidth = img.getWidth (this);
int imgHeight = img.getHeight (this);

g2d.translate (panelWidth/2, panelHeight/2);
g2d.rotate (angle);

g2d.drawImage (img, -imgWidth/2, -imgHeight/2, this);
}
}
Ehm, non vorrei dire cavolate ma non potrebbe essere che il problema è dato dal fatto che la classe che estende JPanel non è dichiarata come pubblica e non è in un file .java per i cavoli suoi?
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2008, 19:53   #16
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
anche io all'inizio avevo pensato a questo ma poi sono andato a controllare il codice che ha postato e, scusa l'ignoranza mia, perchè il compilatore lo vede come un JPanel?
Perché la scelta della signature del metodo da invocare viene fatta a tempo di compilazione basandosi solo ed esclusivamente sul tipo del reference. È poi a runtime che viene scelta la implementazione da eseguire in base all'oggetto realmente istanziato.

Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Lui da codice fa così:
...
imagePanelRotate = new ImagePanel(img1);
...

Quindi quella reference dovrebbe puntare a un'istanza ImagePanel
Su questo, ok. Ma non è questo che conta per stabilire quali sono i metodi invocabili. Conta il tipo del reference ... della variabile che hai sottomano.

Esempio:
Object obj = new Date();

Object definisce toString() (quindi è noto ad Object) e la classe Date ne fa l'override, quindi posso invocare obj.toString() e verrà eseguita la implementazione di toString() di Date piuttosto che quella di Object.

Se il reference è di tipo Object però non posso invocare ad esempio getTime(), perché Object non sa nulla di questo metodo. È della classe Date.

Quindi, per ripetere, è il tipo del reference che determina quali sono i metodi invocabili. È invece l'oggetto realmente istanziato che determina la implementazione che verrà eseguita.

Questa è una questione i-m-p-o-r-t-a-n-t-i-s-s-i-m-a, fondamentale in Java e in altri linguaggi ad oggetti.

Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Ehm, non vorrei dire cavolate ma non potrebbe essere che il problema è dato dal fatto che la classe che estende JPanel non è dichiarata come pubblica e non è in un file .java per i cavoli suoi?
No.
__________________
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 04-06-2008, 08:21   #17
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Sì Andbin, grazie della spiegazione ma ho fatto confusione perchè invece di accorgermi di questo:
Quote:
imagePanelRotate = new ImagePanel(img1);
...
private javax.swing.JPanel imagePanelRotate;
continuavo a guardare il codice nel tuo post:
Quote:
private ImagePanel imagePanel;
...
imagePanel = new ImagePanel (img);
Ero così intento a leggere rapidamente e controllare la coerenza dei tipi istanziati che nella fretta non mi sono accorto di stare a guardare del codice che non era esattamente quello usato da jj.69kt ne che il nome della reference non era quello giusto

Grazie comunque delle spiegazioni
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 04-06-2008, 12:32   #18
jj.69kt
Senior Member
 
L'Avatar di jj.69kt
 
Iscritto dal: Oct 2007
Messaggi: 677
AAH!! Ho capito quel'è il problema!!! Il fatto è che NetSchif non m permette di modificare il tipo... Cioè, io lo edito nel file con un semplice TextEdit poi appena lo apro in NB me lo "corregge"...... E di conseguenza non trova setAngle()...

Avete in mente una soluzione? (Nel frattempo io o provato un decina di sistemi.. ç_ç ma nulla... )


AH, Comunque mille graziie!!!! Siete gentilissimi, sto imparando molo piu su questo forum k a lezione..
__________________

Desktop: (In Vendita) iMac (12,2) 27" --> i5 QaudCore 2,7GHz, 8GB RAM, 1TB HDD..
Laptop (In Pensione): MacBook PRO (3,1) 15.4" (Glossy, ma pentito) --> 2.2Ghz, 4GB Ram..
Camera: Nikon D80 with Nikkor 18-55mm 1:3-5.6 GII + Nikkor 55-200mm 1:4-5.6 VR
"Mobile":iPhone 5 64Gb
MyEbay: 100%! • Mercatino (Green = Good; Red = Bad) UncleSam, Boxi80, Zuckerbaer, lamerone, danidj, maxmax80
jj.69kt è offline   Rispondi citando il messaggio o parte di esso
Old 04-06-2008, 12:58   #19
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da jj.69kt Guarda i messaggi
AAH!! Ho capito quel'è il problema!!! Il fatto è che NetSchif non m permette di modificare il tipo...
...

Quote:
Originariamente inviato da jj.69kt Guarda i messaggi
Cioè, io lo edito nel file con un semplice TextEdit poi appena lo apro in NB me lo "corregge"...... E di conseguenza non trova setAngle()...



Ecco perchè! NetSchif come lo chiami tu () non si usa così, è un IDE non un semplice editor di testo... mio dio!

Guarda, se osi storpiare un'altra volta il nome del mio amato NetBeans io mi eclisso ad vitam dai tuoi thread ( )


Senti, ho capito poco e male come lo usi in modo "ibrido" con il tuo editor di testo esterno: ma lavorare solo da dentro l'IDE no?
Quale sarebbe il motivo che ti ha spinto a lavorare così?

Comunque per aggiungere una, chiamiamola, "classe visuale" che estenda JPanel in modo che tu poi ci possa implementare quello che ti pare è sufficiente, da NetBeans, cliccare col tasto destro sopra il nome del package dentro cui vuoi aggiungere la classe, scegliere New... -> JPanel Form et voilà:
ti compare una bella dialog, imposti il nome che vuoi dare alla tua classe e confermi con OK.

Il gioco è fatto: in NetBeans ti ritrovi con 2 viste della classe: una è la vista fornita dall'editor del codice, l'altra la vista fornita dall'editor visuale di NetBeans, il buon Matisse, che ti permette di aggiungere/modificare componenti con un interfaccia WYSIWYG (What You See Is What You Get).

Ora, nella vista dell'editor di codice della classe puoi fare quello che ti pare, l'unica cosa particolare è che ti troverai dei blocchi di codice "controllati" da NetBeans, e sono le parti di codice generate ET gestite completamente in automatico da Matisse sulla base delle informazioni contenute nell'editor grafico! Tu su quello devi agire per modificare la parte grafica.

Inoltre è sempre possibile customizzare praticamente tutto quello che Matisse ha fatto anche se non puoi cambiare di una virgola il codice che genera/gestisce lui in automatico: il trucco è aggiungere del tuo codice, fuori dai blocchi gestiti da Matisse, per maniopolare le stesse variabili create dall'editor.

In nessun caso puoi aspettarti di modificare (tramite un editor esterno) il codice gestito da Matisse, salvare il file .java e riaprilo in NetBeans sperando che le modifiche così apportate siano mantenute.

Questo perchè quando NetBeans crea una "classe visuale" (cioè con la vista sia del codice sorgente che delle componenti grafiche) viene generato sì un file .java, ma viene anche associato un corrispondente file .form che in pratica gestisce la parte riguardante i setting grafici dei componenti così come specificato in Matisse e li salva: sono questi dati che vengono consultati per rigenerare la parte di codice "guarded" nel corrispettivo file .java
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 04-06-2008, 12:58   #20
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da jj.69kt Guarda i messaggi
Avete in mente una soluzione?
Sì una soluzione c'è .... ma devo dirla in modo un po' brusco: evita come la peste di farti generare il codice dal tuo ambiente di sviluppo. Il codice è bene scriverlo tutto a mano, compresa tutta la parte relativa alla creazione della interfaccia utente.
Personalmente sono contrario al software che ti scrive il codice mentre invece sostengo che sia fondamentale conoscere bene (e ripeto *bene*) i componenti e i layout manager AWT/Swing se si vogliono realizzare delle applicazioni serie.
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


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...
Motorola razr fold, dalla conchiglia al formato a libro. La recensione Motorola razr fold, dalla conchiglia al formato ...
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente Recensione Google Pixel Watch 5: sembra lo stess...
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo Nokia Innovation Day 2026: la sovranità e...
La NASA annuncia alcuni aggiornamenti pe...
Meridian Space si separa da SpinLaunch e...
Gli astronomi hanno scoperto stelle che ...
Facebook cambia il feed: ora l'algoritmo...
I nuovi Vivo X500 potrebbero costare qua...
Due pallet di RTX 5090 spariti nel nulla...
Oral-B iO in offerta su Amazon: spazzoli...
Offerte TV su Amazon: LG OLED C6 a 1.139...
Offerte Apple su Amazon: AirPods Pro 3 a...
Le 12 offerte Amazon TOP del weekend: Sm...
Xiaomi Smart TV 32 è vera bestsel...
Il satellite spia russo Kosmos 2612 si t...
Blue Origin continua l'espansione: nuove...
Intel prepara un SoC da 700 TOPS: Razor ...
I nuovi Xreal 1 Pro+ arrivano in Europa ...
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: 06:23.


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