ciao a tutti, ho un problema con un programma del libro della Deitel (che fra l'altro consiglio a tutti), riguardante jnlp negli applet.
Praticamente da eclipse su osx faccio partire e mi manda fuori l'errore che è scritto più giù.
Ho provato a fare un .jar e ad aggiungere un .jnlp; a far partire da browser con un .html, ma nulla.
ecco qui il codice che dovrebbe essere funzionante poichè tratto direttamente dal libro
Il programma dovrebbe far scegliere un'immagine e poi dare la possibilità di ridimensionarla.
Ecco qui l'errore che mi butta fuori eclipse quando dovrebbe aprire quello che fa scegliere l'immagine:codice:import java.awt.BorderLayout; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.jnlp.FileContents; import javax.jnlp.FileOpenService; import javax.jnlp.ServiceManager; import javax.swing.ImageIcon; import javax.swing.JApplet; import javax.swing.JFrame; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; public class ScaleImage extends JApplet{ private ImageIcon image; private JPanel scaleJPanel; private JLabel percentLabel; private JTextField inputPercentField; private JButton scaleButton; private double scaleValue=1.0; public void init(){ scaleJPanel=new JPanel(); percentLabel=new JLabel("scale percent: "); inputPercentField=new JTextField("100.0"); scaleButton=new JButton("Scale"); scaleJPanel.add(percentLabel); scaleJPanel.add(inputPercentField); scaleJPanel.add(scaleButton); add(scaleJPanel,BorderLayout.NORTH); scaleButton.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ scaleValue=Double.parseDouble(inputPercentField.getText())/100.0; repaint(); } }); try{ FileOpenService fileOpenService=(FileOpenService) ServiceManager.lookup("javax.jnlp.FileOpenService"); FileContents contents=fileOpenService.openFileDialog(null, null); byte[] imageData=new byte[(int) contents.getLength()]; contents.getInputStream().read(imageData); image=new ImageIcon(imageData); add(new DrawJPanel(), BorderLayout.CENTER); } catch(Exception e){ e.printStackTrace(); } } private class DrawJPanel extends JPanel{ public void PaintComponent(Graphics g){ super.paintComponent(g); double spareWidth=getWidth()-scaleValue*image.getIconWidth(); double spareHeight=getHeight()-scaleValue*image.getIconHeight(); g.drawImage(image.getImage(),(int)(spareWidth)/2,(int)(spareHeight)/2,(int)(image.getIconWidth()*scaleValue),(int)(image.getIconHeight()*scaleValue), this); } } }
Poi avrei un'altra questione, jnlp.jar è diventato javaws.jar con java7, cosa cambia in sostanza?codice:javax.jnlp.UnavailableServiceException: uninitialized at javax.jnlp.ServiceManager.lookup(Unknown Source) at ScaleImage.init(ScaleImage.java:43) at sun.applet.AppletPanel.run(AppletPanel.java:435) at java.lang.Thread.run(Thread.java:745)
Qualcuno mi può delucidare?Grazie in anticipo
EDIT: OT: Ho dovuto fare molti tentativi per mettere il post, sia da chrome che da safari mi dava problemi e mi scriveva questo, poi ho risolto formattando il testo con text editor prima di incollarlo.. è normale?codice:Not AcceptableAn appropriate representation of the requested resource /forum/newthread.php could not be found on this server.
Apache/2.2.22 (Ubuntu) Server at forum.html.it Port 80


Grazie in anticipo
Rispondi quotando