|
|
|
|
Bizarre... Je ne vois que deux trucs possibles :
|
Bon, finalement, je viens de tester maintenant... Ce que je t'ai dit au départ marche nickel... Je te donne la portion de code du JPanel qui contient la barre :
jScrollBar1 = new javax.swing.JScrollBar(); add(jScrollBar1); jScrollBar1.setValue(jScrollBar1.getMaximum()); Les valeurs mini et maxi sont par défaut 0 et 100... Si ça marche toujours pas, donne-moi ton code. J'essaierai de voir ce qui va pas avec... Bonne soirée ! Si à gauche j'ai l'amont, c'est bon... Si à gauche j'ai l'aval, j'suis bancal... |
Le problème c'est que j'utilise un JscrollPane
private JLabel affichageScenario = new JLabel("Aucun sc\u00e9nario n'a \u00e9t\u00e9 charg\u00e9");
/** Panneau muni d'un ascenseur contenant le texte de déroulement du scénario */
private JScrollPane panneauScenario = new JScrollPane(affichageScenario);;
private JScrollBar ascenceur = new JScrollBar()
(...)
ascenceur.setValue(ascenceur.getMaximum());
panneauScenario.setVerticalScrollBar(ascenceur);
PanneauPrincipal.add(panneauScenario);
et la scrollbar reste en haut ! Dohm qui vous bouleg tous |
Bon, essaye de mettre la ligne ascenceur.setValue(ascenceur.getMaximum()); complètement à la fin du code (peut-être que le setVerticalScrollBar ou le add réinitialise la valeur de ta barre.
|
J'ai l'impression que l'objet Jscrollpane annule la méthode setvalue
System.out.println("valeur courante :"+ascenceur.getValue());
System.out.println("max : "+ascenceur.getMaximum());
ascenceur.setValue(ascenceur.getMaximum());
System.out.println("valeur courante2 : "+ascenceur.getValue());
validate();
et voila les résultats de cela : Date Courante22 valeur courante :0 max : 514 valeur courante2 : 0 valeur courante :0 max : 528 valeur courante2 : 11 il trouve bien un max mais la mise à jour ne se fait pas ! Dohm qui vous bouleg tous |
Voilà, le code suivant marche... Regarde ce qui diffère par rapport au tien.
/*
* TestDohm.java
*
* Created on 1 avril 2004, 22:12
*/
/**
*
* @author Bernard
*/
public class TestDohm extends javax.swing.JFrame {
/** Creates new form TestDohm */
public TestDohm() {
initComponents();
javax.swing.JScrollBar barre = jScrollPane.getVerticalScrollBar();
barre.setValue(barre.getMaximum());
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
private void initComponents() {
jScrollPane = new javax.swing.JScrollPane();
jPanel = new javax.swing.JPanel();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Test");
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
jScrollPane.setMinimumSize(new java.awt.Dimension(300, 300));
jScrollPane.setPreferredSize(new java.awt.Dimension(300, 300));
jPanel.setMinimumSize(new java.awt.Dimension(500, 500));
jPanel.setPreferredSize(new java.awt.Dimension(500, 500));
jScrollPane.setViewportView(jPanel);
getContentPane().add(jScrollPane, java.awt.BorderLayout.CENTER);
pack();
}
/** Exit the Application */
private void exitForm(java.awt.event.WindowEvent evt) {
System.exit(0);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
new TestDohm().show();
}
// Variables declaration - do not modify
private javax.swing.JPanel jPanel;
private javax.swing.JScrollPane jScrollPane;
// End of variables declaration
}
Si ça cloche toujours, n'hésite pas... A+ Si à gauche j'ai l'amont, c'est bon... Si à gauche j'ai l'aval, j'suis bancal... |
Salut !
|
Trop bizarre, là seule façon que j'ai trouvé pour que ça marche une fois sur 2 c'est
/////////// mise à jour de l'ascenceur //////////////////////
panneauScenario.setMinimumSize(new java.awt.Dimension(300, 300));
panneauScenario.setPreferredSize(new java.awt.Dimension(300, 300));
panneauScenario.setViewportView(affichageScenario);
// ascenceur.setValue(ascenceur.getMaximum());
System.out.println("//////////////////////////////////////////////////////////");
System.out.println("valeur courante :"+ascenceur.getValue());
System.out.println("max : "+ascenceur.getMaximum());
ascenceur.setValue(ascenceur.getMaximum());
System.out.println("valeur courante2 : "+ascenceur.getValue());
panneauScenario.revalidate();
ascenceur.setValue(ascenceur.getMaximum());
panneauScenario.revalidate();
à l'endroit ou j'augmente la taille de mon texte contenu ds le panneau, et si je ne mets pas 2 "ascenceur.setValue(ascenceur.getMaximum());" ça ne marche pas ! En plus, ça ne marche qu'une fois sur 2. un coup il est en bas, je rajoute du texte, il est au 3 quart, je rajoute du texte, en bas ...ect ... .... Z'y comprennez qq chose vous ? |
Oui je le récupères comme ça et la méthode validate permet de valider les modifications et de mettre à jour l'affichage
|
> T'es bien sympa ami Dahu, je tenais à te le dire ....
|
Bof, j'ai rien trouvé de bizarre dans ton code... A priori, je vois pas trop pourquoi ça marche pas...
|
Ceci dit, je viens de remarquer un truc...
|