Remettant � la c�te des applet de code de Java - une deuxi�me passe
D�fi : Remettre � la c�te l'applet du code de Java. Par exemple dites que le code d'applet calcule que l'applet a besoin de plus d'espace qu'il a �t� assign�, puis comment aller environ il ?
Le moment pass� o� confront� � ce probl�me je l'ai r�solu avec un morceau astucieux de m�thode de Javascript. Cependant j'ai bient�t r�alis� qu'il y avait peu d'issues avec l'approche.
D'abord nous avons fait la personne � charge d'applet sur le morceau externe de m�thode de Javascript qui cr�e la d�pendance ind�sirable.
Le probl�me principal �tait quand nous avons voulu inclure le multiple de tels applet dans la m�me page. �videmment maintenant je ne peux pas employer la m�me chose remets � la c�te la m�thode, qui est hardcoded pour appeler l'applet de nom. �galement j'ai constat� que logique de document [la ��appletname��] �choue quand l'applet est dans une table. Alors nous devons nous r�f�rer � l'applet utilisant la hi�rarchie que nous ne commandons pas. Nous ne pouvons pas �galement avoir deux applet avec le m�me nom qu'alors seulement le premier ex�cute.
Ainsi il �tait �vident nous a d� passer le nom de l'applet � cette m�thode. Mais comment obtenir le nom ?
J'intuited correctement cela puisqu'applet.getParameter employ�s pour obtenir des param�tres de l'applet �tiquettent, il est possible que nous puissions chercher le nom de l'applet suivre la m�me m�thode. Ce s'est av�r� �tre le cas. Tellement maintenant j'ai eu cette version o� j'ai pass� le nom de l'applet � la m�thode de remettre � la c�te et elle a appel� l'applet par son nom (applet [��nom��]) et r�gl� la taille comme fourni par les param�tres. Ceci a fonctionn� tr�s bien avec les les deux les navigateurs (Internet Explorer et Netscape). Cependant je n'ai toujours pas �t� satisfait. La d�pendance externe me branchait sur table d'�coute. La prochaine �tape �tait d'essayer d'ex�cuter le code de Javascript dans Java lui-m�me, utilisant le m�me pont de LiveConnect. Ma premi�re tentative de placer la taille utilisant JSObject.getMethod a �chou� dans l'IE. Apparemment Internet Explorer ne soutient pas la m�thode ! Alors j'ai simplement �valu� le code entier utilisant eval. Ceci a fonctionn� bien pour les les deux les navigateurs. Je pourrais me d�barasser de la m�thode emb�tante de Javascript - remettez � la c�te. Maintenant finalement j'�tais heureux. Comme j'ai bient�t r�alis� que cependant il restait snag. Les difficult�s ne fonctionnent pas en navigateur d'op�ra. Mais je ne suis pas trop inqui�t� examinant la part de march� de ce navigateur.
Pour r�capituler la ligne du code principale : jso.eval (applet + ��largeur =�� + largeur + ��; ") ;
Class� sous le logiciel de Java, Web |�
� |
� RSS 2.0 | �
� Envoyez cet article
Vous pouvez �galement aimer lire |


Ajoutez aux favoris de Technorati

































22 avril 2008 � 11:53 AM
importation java.awt.* ;
importation java.awt.event.* ;
importation javax.swing.* ;
importation javax.swing.JFileChooser ;
importation java.io.* ;
importation javax.imageio.ImageIO ;
la classe SceneViewer2 prolonge des instruments MouseListener, MouseMotionListener de JFrame
{
Jf=new JFrame (�� votre sc�ne cr��e ") de JFrame ;
Jp=new JPanel de JPanel () ;
xAdjustment priv� d'international ;
yAdjustment priv� d'international ;
Composant dragComponent ;
force publique de vide de charge statique (args de corde [])
{
nouveau SceneViewer2 () ;
}
SceneViewer2 ()
{
jf.setExtendedState (getExtendedState () | JFrame.MAXIMIZED_BOTH) ; //MAXIMIZES LA FEN�TRE SUR L'EX�CUTION
le JP = (JPanel) jf.getContentPane () ;
jp.setLayout (nulle) ;
jp.addMouseListener (ceci) ;
jp.addMouseMotionListener (ceci) ;
lblPic=new JLabel [2] de JLabel [] ;
�re image de //inserts
[0] =new lblPic JLabel () ;
[0] .setBounds lblPic (0.0.200.200) ;
Selected_image=new ImageIcon (�� atif3.jpg ") d'ImageIcon ;
Image sel=selected_image.getImage () ;
selected_image=new ImageIcon (sel.getScaledInstance ([0] .getWidth lblPic (), [0] .getHeight lblPic (), 1)) ;
[0] .setIcon lblPic (selected_image) ;
jp.add (lblPic [0]) ;
2�me image de //inserts
[1] =new lblPic JLabel () ;
[1] .setBounds lblPic (300.0.200.200) ;
selected_image=new ImageIcon (�� ash3.jpg ") ;
sel=selected_image.getImage () ;
selected_image=new ImageIcon (sel.getScaledInstance ([1] .getWidth lblPic (), [1] .getHeight lblPic (), 1)) ;
[1] .setIcon lblPic (selected_image) ;
jp.add (lblPic [1]) ;
jp.repaint () ;
jf.setVisible (vrai) ;
}
//CODE POUR D�PLACER LES IMAGES SUR LA DRAGUE
vide de public mousePressed (MouseEvent e)
{
R�cipient de r�cipient = (r�cipient) e.getSource () ;
Composant composant = container.findComponentAt (e.getX (), e.getY ());
si (instanceof composant JPanel) retour ;
dragComponent = composant ;
xAdjustment = dragComponent.getLocation () .x - e.getX () ;
yAdjustment = dragComponent.getLocation () .y - e.getY () ;
}
vide de public mouseDragged (MouseEvent e)
{
si (nulle dragComponent de ==)
retour ;
dragComponent.setLocation (e.getX () + xAdjustment, e.getY () + yAdjustment) ;
}
vide de public mouseReleased (MouseEvent e)
{
dragComponent = nulle ;
}
vide de public mouseClicked (MouseEvent e) {}
vide de public mouseMoved (MouseEvent e) {}
vide de public mouseEntered (MouseEvent e) {}
vide de public mouseExited (MouseEvent e) {}
}
c'est mon proggrame .
je veux un code remettant � la c�te ainsi je peux rezise l'image �galement.