Avatar billede clit_commander Nybegynder
27. juni 2005 - 17:33 Der er 11 kommentarer

Lave en listener som lytter på en int.

Hej Alle.

Jeg skal bruge en listener som lytter til en Integer, hvis denne Integer ændrer sig skal listeneren ændre teksten i en JLabel.

Jeg har prøvet noget af de listeners som findes i java men jeg kan ikke få dem til at passe i mit tilfælde.

Mvh

Mads
Avatar billede mikkelbm Nybegynder
27. juni 2005 - 17:48 #1
Der er mig bekendt ikke noget indbygget i Java til det. Men jeg kan lige prøve om jeg kan bikse noget sammen.

Men... Ved du ikke hvornår den Integer ændrer sig? Du må ha' en metode hvor du sætter den nye værdi?
Avatar billede mikkelbm Nybegynder
27. juni 2005 - 17:59 #2
Og nu jeg tænker over det - så kan en Integer ikke skifte værdi.
Avatar billede mikkelbm Nybegynder
27. juni 2005 - 17:59 #3
Prøv at forklar lidt bredere, hvad det er du gerne vil opnå?
Avatar billede clit_commander Nybegynder
27. juni 2005 - 18:12 #4
Hej mikkelbm.

Jeg har lavet et program som bliver styret via en fjernbetjening, inde i programmet vil jeg nu gerne have et keyboard så man kan taste ind via fjernbetjeningen, fjernbetjeningen virker på den måde, at jeg har lavet en "robot" inde i programmet som "trykker" på en knap på det rigtige keyboard, de forskellige menuer har så en listener som denne "frame.registerKeyboardAction(actionListener(1), tastL, JComponent.WHEN_IN_FOCUSED_WINDOW);, det er så actionListener(1) som ændrer på den int.

Mvh

Mads
Avatar billede clit_commander Nybegynder
27. juni 2005 - 18:19 #5
Hvis du har et eksempel på et andet program hvor der er et keyboard indbygget i programmet, kan jeg også bruge dette.

Mvh

Mads
Avatar billede mikkelbm Nybegynder
27. juni 2005 - 18:29 #6
Når din actionListener bliver fyret, så ved du vel også hvad du skal gøre?
Avatar billede mikkelbm Nybegynder
27. juni 2005 - 18:30 #7
Kan du smide lidt kode herind, så vi kan se hensigten?
Avatar billede mikkelbm Nybegynder
27. juni 2005 - 18:48 #8
Har lavet et lille eksempel, du kan tage udgangpunkt i:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class TestInput extends JPanel
{
    public TestInput()
    {
        ActionListener listener1 =  new ActionListener()
        {
            public void actionPerformed(ActionEvent evt)
            {
                System.out.println ("You have pressed F2");
            }
        };
       
        ActionListener listener2 =  new ActionListener()
        {
            public void actionPerformed(ActionEvent evt)
            {
                System.out.println ("You have pressed L");
            }
        };
       
        ActionListener listener3 =  new ActionListener()
        {
            public void actionPerformed(ActionEvent evt)
            {
                System.out.println ("You have pressed M");
            }
        };
       
        this.registerKeyboardAction(listener1, KeyStroke.getKeyStroke("F2"), JComponent.WHEN_IN_FOCUSED_WINDOW);
        this.registerKeyboardAction(listener2, KeyStroke.getKeyStroke("L"), JComponent.WHEN_IN_FOCUSED_WINDOW);
        this.registerKeyboardAction(listener3, KeyStroke.getKeyStroke("M"), JComponent.WHEN_IN_FOCUSED_WINDOW);
    }
   
    public static void main (String[] args)
    {
        JFrame frame = new JFrame ();
        frame.setSize(400, 400);
        frame.getContentPane().add( new TestInput());
        frame.setVisible(true);
    }
}
Avatar billede mikkelbm Nybegynder
27. juni 2005 - 18:50 #9
Og i stedet for en System.out.println (...) udfører du så den kode du vil ha' kørt.
Avatar billede mikkelbm Nybegynder
29. juni 2005 - 21:45 #10
Brugbart?
Avatar billede mikkelbm Nybegynder
24. juli 2005 - 01:36 #11
Lukketid?
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