Boutons et sliders n'ont aucun effet :(
Salut,
Je m'inspire de sources qui fonctionnent, mais moi quand je l'utilise pour mes tests, ça ne fonctionne pas.
Je veux, pour tester, mettre à jour une image dessinée sur un Graphics2D, soit lorsque l'on déplace un slider, soit lorsque l'on clique sur un bouton.
Voici un bout de ma jsp :
Code:
1 2 3 4 5 6 7 8 9 10
| <h:form>
<rich:inputNumberSlider showInput="false" showBoundaryValues="true" showToolTip="false" value="#{paintData.radius}" step="1" minValue="10" maxValue="50">
<a4j:support event="onchange" reRender="painter" />
<f:convertNumber />
</rich:inputNumberSlider>
</h:form>
<a4j:commandLink styleClass="button" rendered="true" value="refresh" action="#{paintData.random}" reRender="painter" />
<rich:paint2D id="painter" width="300" height="300" format="png" data="#{paintData}" paint="#{paintBean.paint}" /> |
Voici PaintBean.java:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| import java.awt.Color;
import java.awt.Graphics2D;
public class PaintBean {
public void paint(Graphics2D g, Object obj) {
System.out.println("********** PAINT ************");
g.setColor(Color.RED);
PaintData data = (PaintData) obj;
g.fillOval(100, 100, data.getRadius(), data.getRadius());
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| import java.io.Serializable;
import java.util.Random;
public class PaintData implements Serializable {
private static final Random RANDOM = new Random();
private int radius = 15;
public int getRadius() {
return radius;
}
public void setRadius(int radius) {
this.radius = radius;
}
public void random() {
setRadius(RANDOM.nextInt(40) + 10);
}
} |
La méthode paint() est bien appelée lors du chargement de la page, mais quand je clique sur le bouton ou que je déplace le slider, elle n'est pas réappelée...
Comment faire cela?
Merci de votre aide, je débute en JSF :)
PS: comme valeur de reRender, j'ai écrit "painter", mais j'ai vu parfois ":painter" (avec un ':' devant), dans les deux cas ça ne marche pas pour moi...