Toon posts:

[JAVA} Welk object is geselecteerd

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo beste Tweakers,

Ik ben een programma aan het schrijven voor een touchpad via Java appley in met Swing. Nu wil ik dus weten welk object de gebruiker heeft geselecteerd dit omdat ik dan de juiste dingen kan uitsturen met de touchscreen keyboard.

Ik heb al wat gezocht maar ben er ngo niet uit kwam iets met getfocus tegen maar dit werkte niet.

Ik hoop dat jullie me verder kunnen helpen :).

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 09-12-2025
Je geeft dus enkele objecten weer welke de gebruiker kan selecteren? Je zult dan events moeten gaan afvangen en op basis daarvan acties uitvoeren. Dit kun je doen met behulp van de listeners beschikbaar in AWT en Swing. Kun je misschien iets beter uitleggen wat je al geprobeerd hebt, liefst met code (in minimale vorm).

Noushka's Magnificent Dream | Unity


Verwijderd

Topicstarter
Ik heb dus een invoer scherm bovenin met verschillende cards van een cardlayout, hiermee switch ik tussen de cards.via een menu in een adnere classe.
Onderin heb ik een toetsenbord nagemaakt. Sinds de applicatie gaat draaien op een touchscreen heb je geen muis of keyboard. Maar ze meoten wel dingen kunne invoeren via de toetsenbord die ik on screen gemaakt hebt.

Nu is het zo dat ik wil weten welk object der geselecteerd is (oa Jtextfield Jcombobox ondere texfield etc etc) want dan kan ik dat vertellen aan mijn keyboard classe zodat die weet naar welke onbject de a of de r moet versturen die de gebruiker intikt op het scherm.

Hier is een gedeelte code van de cardlayout waarin ik dus wil zien welke object geselecteerd is:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 public CenterMenu(FocusListener listener) {
        cl.addFocusListener(listener);
        fontButton = new Font("ARIAL", Font.BOLD, 24);
        fontLabel = new Font("ARIAL", Font.PLAIN, 18);
        fontText = new Font("ARIAL", Font.PLAIN, 18);
        fontText = new Font("ARIAL", Font.BOLD, 15);
        this.setLayout(xYLayout1);
        cl = new JPanel();
        cl.setLayout(cardLayout);
        xYLayout1.setHeight(550);
        xYLayout1.setWidth(750);
        try {
            requestFocus();
            jbInit();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }


    private void jbInit() throws Exception {
        iTreinNummer = 0;
        pMenu = new JPanel(xYLayout1);
        pMenu.setBackground(Color.yellow);

        bRoute = new JButton("Route");
        bRoute.setFont(fontButton);
        bRoute.addActionListener(this);
        tRoute = new JTextPane();
        tRoute.setText("Via dit Menu Item Kunt u Rit Informatie invoeren en/of wijzigen.");
        tRoute.setFont(fontText);
        tRoute.setBackground(Color.yellow);
        tRoute.setForeground(Color.blue);


etc etc invoer van de objecten ...

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 public void actionPerformed(ActionEvent e) {
        iTreinNummer = 0;
        if (e.getSource() == bRoute) {
            cardLayout.show(cl, "kaart1");
            iTreinNummer = 1;
        }
    }

    public void SetCard(String kaart) {
        cardLayout.show(cl, kaart);
        if (kaart == "kaart1") {
            iTreinNummer = 1;
        }

    }

    public void SetText(String text) {
        if(iTreinNummer == 1) {
            if(text == "DEL") {
                Document document = tTreinNummer.getDocument();
                try {
                    document.remove(document.getLength() - 1, 1);
                } catch (BadLocationException ex) {
                }
            }
            else if(text == "Clear") {
                tTreinNummer.setText("");
            }
            else {
                tTreinNummer.setText(tTreinNummer.getText() + text);
            }
        }
    }
   
    public void focusGained(FocusEvent e) {
        System.out.println("focus gained");
    }
    
    public void focusLost(FocusEvent e) {
        System.out.println("focus gained");
    }


ik heb al wat geprobeert met de foculistener maar hij vind de listener niet als ik het wil added.

alvast bedankt voor de hulp :D

Verwijderd

als je e.getActionCommand() gebruikt krijg je een string terug.
als je nu bij elk object een actionCommand instelt, dan kun je daar op filteren.

code:
1
2
3
4
5
6
7
8
9
public void actionPerformed(ActionEvent e)
{
    String command = e.getActionCommand();
        
    if(command.equals("A"))
    {
          //doe iets
    }
}


zoiets?

edit: actionCommand instellen voor bijvoorbeeld een JButton:

code:
1
2
JButton knopje = new JButton("KNOP");
knopje.setActionCommand("knop");

[ Voor 18% gewijzigd door Verwijderd op 29-09-2006 10:25 ]


Verwijderd

Topicstarter
Dit wrkt niet met een JTextArea (iig heb ik het niet aan de praat weten te krijgen, het zou wel handig zijn maar het doet het niet )

ik heb het wel met focusgained gedaan nu dus dat wrkt nu wel :D

IIG bedankt voor je quik reply :D

Verwijderd

Verwijderd schreef op vrijdag 29 september 2006 @ 10:43:
Dit wrkt niet met een JTextArea (iig heb ik het niet aan de praat weten te krijgen, het zou wel handig zijn maar het doet het niet )

ik heb het wel met focusgained gedaan nu dus dat wrkt nu wel :D

IIG bedankt voor je quik reply :D
met JTextArea idd niet, maar dat maakt nu niet meer uit dus! 8)

Verwijderd

Topicstarter
Hehe nee, ik kan het object nu krijgen met e.getSouce alleen moet ik die nog kunnen uitfilteren dat er de naam van de JTextArea uitkomt....... als ik dit met een button wil doen is het simpel... enig idee hoe ik dat nu meot doen ?

edit heb het opgelost dank u voor de aandacht :D

[ Voor 10% gewijzigd door Verwijderd op 29-09-2006 11:39 ]

Pagina: 1