Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb Applet Scrollbar et KeyListener

5 réponses
Avatar
phil89
Bonjour

Je n'arrive pas =E0 obtenir les touches clavier lorsque j'ai des
ScrollBar de d=E9finie dans mon applet ?
Ou est mon erreur je ne la vois pas !!!
Merci d'avance
Philippe


package scroll;

import java.applet.Applet;

import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class EssaiAscenseur4 extends Applet implements
AdjustmentListener,
MouseListener
,KeyListener
,ComponentListener

{
int decalageH=3D0;
int decalageV=3D0;
int largeurFenetre=3D300;
int hauteurFenetre=3D200;
Vector memoire=3Dnew Vector();
Scrollbar vbar=3Dnew Scrollbar
(Scrollbar.VERTICAL,0,(int)(hauteurFenetre * 0.9),0,1000);
Scrollbar hbar=3Dnew Scrollbar
(Scrollbar.HORIZONTAL,0,(int)(largeurFenetre * 0.9),0,500);
Color couleur=3DColor.magenta;



public void init() {
try {
jbInit();
} catch (Exception e) {
e.printStackTrace();
}
}

private void jbInit() throws Exception {

addMouseListener(this);
addKeyListener(this);
addComponentListener(this);
setLayout(new BorderLayout());
vbar.addAdjustmentListener(this);
hbar.addAdjustmentListener(this);
vbar.setBlockIncrement((int)(hauteurFenetre * 0.9));
hbar.setBlockIncrement((int)(largeurFenetre*0.9));

//Fonctionne des que ces deux lignes sont enleve ou si on extends
de frame et pas de APPLET
add("East",vbar);
add("South",hbar);


setForeground(couleur);
}

// Pour gerer le Decalage
public void adjustmentValueChanged(AdjustmentEvent evt)
{
if (evt.getSource()=3D=3Dvbar) decalageV=3Devt.getValue();
else if (evt.getSource()=3D=3Dhbar) decalageH=3Devt.getValue();
repaint();
}

public void mousePressed(MouseEvent evt)
{
CercleSitue c;
Graphics g=3DgetGraphics();
int x=3Devt.getX(),y=3Devt.getY();

c=3Dnew CercleSitue(10,x+decalageH,y+decalageV);
g.fillOval(x-20,y-20,40,40);
memoire.addElement(c);
}
public void mouseReleased(MouseEvent evt) {}
public void mouseEntered(MouseEvent evt) {}
public void mouseExited(MouseEvent evt) {}
public void mouseClicked(MouseEvent evt) {}


public void keyReleased(KeyEvent evt) {
}

public void keyPressed(KeyEvent evt) {
System.out.println("PRESSED");
}

public void keyTyped(KeyEvent evt) {

}




public void componentResized(ComponentEvent e)
{
System.out.println("ddd screen
height=3D"+Toolkit.getDefaultToolkit().getScreenSize().getHeight()+"
screen
width=3D"+Toolkit.getDefaultToolkit().getScreenSize().getWidth());

}

public void componentHidden(ComponentEvent e) {
}

public void componentShown(ComponentEvent e) {
}

public void componentMoved(ComponentEvent e) {
}



public void paint(Graphics g)
{
Enumeration lesCercles=3Dmemoire.elements();
CercleSitue c;

while(lesCercles.hasMoreElements())
{
c=3D(CercleSitue)lesCercles.nextElement();
g.fillOval(c.x-20-decalageH,c.y-20-decalageV,40,40);
}
}

public static void main (String[] args)
{

EssaiAscenseur4 applet =3D new EssaiAscenseur4();
Frame frame =3D new Frame();
frame.addWindowListener(new WindowAdapter() { public void
windowClosing(WindowEvent e) { System.exit(0); } } );
frame.add(applet, BorderLayout.CENTER);
frame.setTitle( "Applet Frame" );
applet.init();
applet.start();
frame.setSize(800, 800);
Dimension d =3D Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize =3D frame.getSize();
frame.setLocation((d.width-frameSize.width)/2, (d.height-
frameSize.height)/2);
frame.setVisible(true);
}
}

5 réponses

Avatar
jlp
phil89 a écrit :
Bonjour

Je n'arrive pas à obtenir les touches clavier lorsque j'ai des
ScrollBar de définie dans mon applet ?
Ou est mon erreur je ne la vois pas !!!
Merci d'avance
Philippe


package scroll;

import java.applet.Applet;

import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class EssaiAscenseur4 extends Applet implements
AdjustmentListener,
MouseListener
,KeyListener
,ComponentListener

{
int decalageH=0;
int decalageV=0;
int largeurFenetre00;
int hauteurFenetre 0;
Vector memoire=new Vector();
Scrollbar vbar=new Scrollbar
(Scrollbar.VERTICAL,0,(int)(hauteurFenetre * 0.9),0,1000);
Scrollbar hbar=new Scrollbar
(Scrollbar.HORIZONTAL,0,(int)(largeurFenetre * 0.9),0,500);
Color couleur=Color.magenta;



public void init() {
try {
jbInit();
} catch (Exception e) {
e.printStackTrace();
}
}

private void jbInit() throws Exception {

addMouseListener(this);
addKeyListener(this);
addComponentListener(this);
setLayout(new BorderLayout());
vbar.addAdjustmentListener(this);
hbar.addAdjustmentListener(this);
vbar.setBlockIncrement((int)(hauteurFenetre * 0.9));
hbar.setBlockIncrement((int)(largeurFenetre*0.9));

//Fonctionne des que ces deux lignes sont enleve ou si on extends
de frame et pas de APPLET
add("East",vbar);
add("South",hbar);


setForeground(couleur);
}

// Pour gerer le Decalage
public void adjustmentValueChanged(AdjustmentEvent evt)
{
if (evt.getSource()==vbar) decalageV=evt.getValue();
else if (evt.getSource()==hbar) decalageH=evt.getValue();
repaint();
}

public void mousePressed(MouseEvent evt)
{
CercleSitue c;
Graphics g=getGraphics();
int x=evt.getX(),y=evt.getY();

c=new CercleSitue(10,x+decalageH,y+decalageV);
g.fillOval(x-20,y-20,40,40);
memoire.addElement(c);
}
public void mouseReleased(MouseEvent evt) {}
public void mouseEntered(MouseEvent evt) {}
public void mouseExited(MouseEvent evt) {}
public void mouseClicked(MouseEvent evt) {}


public void keyReleased(KeyEvent evt) {
}

public void keyPressed(KeyEvent evt) {
System.out.println("PRESSED");
}

public void keyTyped(KeyEvent evt) {

}




public void componentResized(ComponentEvent e)
{
System.out.println("ddd screen
height="+Toolkit.getDefaultToolkit().getScreenSize().getHeight()+"
screen
width="+Toolkit.getDefaultToolkit().getScreenSize().getWidth());

}

public void componentHidden(ComponentEvent e) {
}

public void componentShown(ComponentEvent e) {
}

public void componentMoved(ComponentEvent e) {
}



public void paint(Graphics g)
{
Enumeration lesCercles=memoire.elements();
CercleSitue c;

while(lesCercles.hasMoreElements())
{
c=(CercleSitue)lesCercles.nextElement();
g.fillOval(c.x-20-decalageH,c.y-20-decalageV,40,40);
}
}

public static void main (String[] args)
{

EssaiAscenseur4 applet = new EssaiAscenseur4();
Frame frame = new Frame();
frame.addWindowListener(new WindowAdapter() { public void
windowClosing(WindowEvent e) { System.exit(0); } } );
frame.add(applet, BorderLayout.CENTER);
frame.setTitle( "Applet Frame" );
applet.init();
applet.start();
frame.setSize(800, 800);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
frame.setLocation((d.width-frameSize.width)/2, (d.height-
frameSize.height)/2);
frame.setVisible(true);
}
}






Par curiosité, est-ce que ton applet marche à partir de l'outil
appletviewer ?
Avatar
jlp
jlp a écrit :
phil89 a écrit :
Bonjour

Je n'arrive pas à obtenir les touches clavier lorsque j'ai des
ScrollBar de définie dans mon applet ?
Ou est mon erreur je ne la vois pas !!!
Merci d'avance
Philippe


package scroll;

import java.applet.Applet;

import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class EssaiAscenseur4 extends Applet implements
AdjustmentListener,
MouseListener
,KeyListener
,ComponentListener

{
int decalageH=0;
int decalageV=0;
int largeurFenetre00;
int hauteurFenetre 0;
Vector memoire=new Vector();
Scrollbar vbar=new Scrollbar
(Scrollbar.VERTICAL,0,(int)(hauteurFenetre * 0.9),0,1000);
Scrollbar hbar=new Scrollbar
(Scrollbar.HORIZONTAL,0,(int)(largeurFenetre * 0.9),0,500);
Color couleur=Color.magenta;



public void init() {
try {
jbInit();
} catch (Exception e) {
e.printStackTrace();
}
}

private void jbInit() throws Exception {

addMouseListener(this);
addKeyListener(this);
addComponentListener(this);
setLayout(new BorderLayout());
vbar.addAdjustmentListener(this);
hbar.addAdjustmentListener(this);
vbar.setBlockIncrement((int)(hauteurFenetre * 0.9));
hbar.setBlockIncrement((int)(largeurFenetre*0.9));

//Fonctionne des que ces deux lignes sont enleve ou si on extends
de frame et pas de APPLET
add("East",vbar);
add("South",hbar);


setForeground(couleur);
}

// Pour gerer le Decalage
public void adjustmentValueChanged(AdjustmentEvent evt)
{
if (evt.getSource()==vbar) decalageV=evt.getValue();
else if (evt.getSource()==hbar) decalageH=evt.getValue();
repaint();
}

public void mousePressed(MouseEvent evt)
{
CercleSitue c;
Graphics g=getGraphics();
int x=evt.getX(),y=evt.getY();

c=new CercleSitue(10,x+decalageH,y+decalageV);
g.fillOval(x-20,y-20,40,40);
memoire.addElement(c);
}
public void mouseReleased(MouseEvent evt) {}
public void mouseEntered(MouseEvent evt) {}
public void mouseExited(MouseEvent evt) {}
public void mouseClicked(MouseEvent evt) {}


public void keyReleased(KeyEvent evt) {
}

public void keyPressed(KeyEvent evt) {
System.out.println("PRESSED");
}

public void keyTyped(KeyEvent evt) {

}




public void componentResized(ComponentEvent e)
{
System.out.println("ddd screen
height="+Toolkit.getDefaultToolkit().getScreenSize().getHeight()+"
screen
width="+Toolkit.getDefaultToolkit().getScreenSize().getWidth());

}

public void componentHidden(ComponentEvent e) {
}

public void componentShown(ComponentEvent e) {
}

public void componentMoved(ComponentEvent e) {
}



public void paint(Graphics g)
{
Enumeration lesCercles=memoire.elements();
CercleSitue c;

while(lesCercles.hasMoreElements())
{
c=(CercleSitue)lesCercles.nextElement();
g.fillOval(c.x-20-decalageH,c.y-20-decalageV,40,40);
}
}

public static void main (String[] args)
{

EssaiAscenseur4 applet = new EssaiAscenseur4();
Frame frame = new Frame();
frame.addWindowListener(new WindowAdapter() { public void
windowClosing(WindowEvent e) { System.exit(0); } } );
frame.add(applet, BorderLayout.CENTER);
frame.setTitle( "Applet Frame" );
applet.init();
applet.start();
frame.setSize(800, 800);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
frame.setLocation((d.width-frameSize.width)/2, (d.height-
frameSize.height)/2);
frame.setVisible(true);
}
}






Par curiosité, est-ce que ton applet marche à partir de l'outil
appletviewer ?


Surement un pb de sécurité lié à l'utilisation de l'Applet sur le stdout
du systeme...
Avatar
phil89
L'applet fonctionne dans le Navigateur,
A partir de l'instant ou je fais
add("East",vbar);
add("South",hbar);


je n'ai plus le KeyListener d'actif, et je ne sais pas pourquoi ?
Avatar
phil89
On 27 juin, 17:01, phil89 wrote:
L'applet fonctionne dans le Navigateur,
A partir de l'instant ou je fais
add("East",vbar);
    add("South",hbar);

je n'ai plus le KeyListener d'actif, et je ne sais pas pourquoi ?



j'ai oublié dans mon exemple la classe interne
public class CercleSitue
{
int rayon, x, y;

public CercleSitue(int rayon,int x,int y)
{
this.rayon=rayon;
this.x=x;
this.y=y;
}
}

Merci d'avance
Philippe
Avatar
phil89
J'ai essaye une version Swing, meme probleme ??