|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Trenton (New Jersey)
Messaggi: 3079
|
[JAVA]Applet immagine interattiva
Avrei bisogno di "sviluppare" una immagine "interattiva" in java, tramite un applet.
Praticamente dovrei caricare su di una semplice pagina web un immagine, per esempio una planimetri di una stanza, e passando sopra a specifici oggetti/punti visualizzare un popup con delle informazioni. Inoltre avrei bisogno che questi punti siano personalizzabili in fase di esecuzione e non scelti a priori. Con java e html/css me la cavo abbastanza, solo che qui non saprei da dove iniziare. Ho provato a cercare qualcosa con google, ma non sapendo cosa cercare precisamente non ho trovato nulla. Gli unici due esempi che ho trovato che potrebbero essermi utili sono: https://sites.google.com/site/drjohn...ews/graphpanel http://www.valcon.it/p/JavaAppletImm..._interattiva_2 Qualcuno sa aiutarmi? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Esattamente cosa non ti torna? Lo chiedo perchè per l'applet (JApplet) basta praticamente pigiare il pulsante in Netbeans e te ne crea una bell'è pronta da riempire ed è praticamente un JPanel con qualche metodo per parlare col browser.
Per l'immagine la questione è aritmetica: pigli l'immagine, la ficchi in una JLabel (ImageIcon) e poi devi andare a interpretarel'input utente (MouseListener) secondo le ragioni del tuo programma.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jul 2005
Città: Trenton (New Jersey)
Messaggi: 3079
|
Quote:
http://www.ikea.com/us/en/catalog/ca...121_lirs03a_01 Qui è realizzato in flash, ed ha anche un sacco di effetti che non mi servono. E possibile fare una cosa un pò più semplice in java? PS: Utilizzo eclipse al momento. |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Corso applet super-breve.
Questa è un'applet che non fa nulla: Codice:
package test;
import javax.swing.*;
public class ImageApplet extends JApplet {
}
Codice:
<html> <body> <applet code="test.ImageApplet" archive="ImageApplet.jar" width="600" height="600"> </applet> </body> </html> In quella pagina ImageApplet è il rettangolo di 600x600 pixel. Dentro l'applet ci metti quello che preferisci: è come un JFrame solo che il ciclo vitale è passivo. Ci ficchiamo dentro un'immagine. Puoi farlo direttamente con l'estensione di JApplet ma siccome oggi ci disegni un'immagine, domani devi aggiungere omnia mundi et quibusdam aliis, il disegno dell'immagine lo fai fare ad un componente separato che poi infili nell'applet: Codice:
package test;
import java.awt.*;
import java.awt.image.*;
import javax.swing.*;
public class ImageDisplay extends JPanel {
private BufferedImage currentImage = null;
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if(currentImage != null) doPaintImage((Graphics2D) g, currentImage);
}
public void setCurrentImage(BufferedImage image) {
this.currentImage = image;
repaint();
}
public void doPaintImage(Graphics2D g, BufferedImage image) {
g.drawImage(image, 0, 0, null);
}
}
Codice:
package test;
import java.awt.*;
import javax.swing.*;
public class ImageApplet extends JApplet {
private ImageDisplay imageDisplay;
public void start() {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
setupUi();
}
});
}
public void setupUi() {
imageDisplay = new ImageDisplay();
add(imageDisplay);
repaint();
}
}
Codice:
package test;
import java.awt.*;
import java.awt.image.*;
import javax.swing.*;
public class ImageDisplay extends JPanel {
private BufferedImage currentImage = null;
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if(currentImage != null) doPaintImage((Graphics2D) g, currentImage);
}
public void loadImage(java.net.URL url) {
try {
BufferedImage image = javax.imageio.ImageIO.read(url);
setCurrentImage(image);
} catch(Exception ex) {
ex.printStackTrace();
}
}
public void setCurrentImage(BufferedImage image) {
this.currentImage = image;
repaint();
}
public void doPaintImage(Graphics2D g, BufferedImage image) {
g.drawImage(image, 0, 0, null);
}
}
Codice:
<html> <body> <applet code="test.ImageApplet" archive="ImageApplet.jar" width="600" height="600"> <param name="default_image" value="image.png"></param> </applet> </body> </html> Codice:
package test;
import java.awt.*;
import javax.swing.*;
public class ImageApplet extends JApplet {
private ImageDisplay imageDisplay;
public void start() {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
setupUi();
}
});
}
public void setupUi() {
imageDisplay = new ImageDisplay();
add(imageDisplay);
repaint();
String file = getParameter("default_image");
java.net.URL url = ImageApplet.class.getResource("/" + file);
imageDisplay.loadImage(url);
}
}
Dopodichè devi disegnare i punti. E qui ti servono le iconcine dei punti e le posizioni. Le posizioni puoi passarle come parametri o farle creare all'utente e poi salvarle da qualche parte. Noti i punti le disegni sull'immagine nel doPaintImage di ImageDisplay. Il comando: g.drawImage(image, 0, 0, null); è formalmente: g.drawImage(un java.awt.image, posizione x, posizione y, trasformazione); E via così.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Trenton (New Jersey)
Messaggi: 3079
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:39.




















