Avatar billede intel4004 Novice
05. maj 2004 - 20:53 Der er 3 kommentarer og
1 løsning

Problemer i forbindelse med brug af JSlider

Jeg benytter en JSlider kaldet jslAdjustPwm:

  JSlider jslAdjustPwm = new JSlider(
      SwingConstants.HORIZONTAL, 30, 100, 50
  );
  jslAdjustPwm.setMajorTickSpacing(10);
  jslAdjustPwm.setPaintTicks(true);
  jslAdjustPwm.setSnapToTicks(true);
  jslAdjustPwm.setMinorTickSpacing(10);

Problemet ligger i at slideren bruges til at sende enkelte karakterer via serielporten.

  public void stateChanged(ChangeEvent e)
  {
      if (e.getSource() == jslAdjustPwm)
      {
          sendChar(70 + (jslAdjustPwm.getValue() - 30) / 10);
      }
  }

Problemet ligger i at som det fungerer nu, sender den karakteren hvergang slideren flytter sig. Det kan godt blive til mange gange. Jeg vil gerne have det så slideren kun sender den pågældende karakter hvergang den rammer en MajorTick - dem som der er 7 af.

Er dette muligt?

Mvh Intel4004

PS: Jeg bruger ingen Look and Feel - er det nødvendigt at definere en sådan??
Avatar billede arne_v Ekspert
05. maj 2004 - 20:55 #1
Du har vel et default look and feel ?
Avatar billede soreno Praktikant
05. maj 2004 - 20:56 #2
Intervallet på din slider er veldefineret ?

Så kan du bare sætte et test ind i din stateChanged

Noget ala:
if (e.getSource() == jslAdjustPwm)
{
    int val = (jslAdjustPwm.getValue() - 30);
    if(val % 7 == 0)
    {
        sendChar(70 + val / 10);
    }
}
Avatar billede intel4004 Novice
05. maj 2004 - 21:23 #3
Hmm jeg har fundet en anden metode hvor jeg gemmer nuværende værdi og tjecker om den er forskellig fra forrige værdi. Hvis dette er tilfældet sendes den pågældende (for værdien) karakter.

Det sjove er at det faktisk fungerer rigtig fint... :)
Avatar billede intel4004 Novice
17. maj 2004 - 19:21 #4
jeg bruger metoden jeg fortæller om - så spørgsmålet lukkes.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester