PDA

Volledige versie bekijken : JAVA: Linker muisklik simmuleren vanuit code



=(X)=RaVen=
17 april 2004, 21:06
De situatie is als volgt:
Ik heb een jList (javax.swing) en daar zitten namen in.
Als je rechtermuisknop klikt op die lijst krijg je een menuutje (waarmee je de geselecteerde persoon kunt kicken :D).
Nu is het probleem, als je linkerklikt op de lijst, selecteer je een naam.
Als je rechterklikt op de lijst krijg je het menuutje maar blijft de selectie zoals ze was.
Ik zou nu willen rechterklikken en ineens de naam selecteren + het menuutje tonen.
mijn code:

private void toonMenu(java.awt.event.MouseEvent evt) {
JMenuItem menuItem;

JPopupMenu popup = new JPopupMenu();
menuItem = new JMenuItem("Kick client");
menuItem.addActionListener(this);
popup.add(menuItem);
// Als men op de rechtermuisknop kliktte
if ((evt.getModifiers() & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK) {
popup.show(evt.getComponent(),evt.getX(), evt.getY());
}
}
public void actionPerformed(ActionEvent e) {
String s = (String) cboChatters.getSelectedValue();
if(s != null && !s.equals("@Admin")) {
server.kickClient(s);
}
}
Kan je dus vanuit de code gewoon zeggen "ik heb ook links geklikt", zonder effectief te klikken.

Voor je antwoord, 2 opmerkingen.
1) ik heb (uitgebreid) gegoogled.
2) ik heb het over JAVA, niet JavaScript.

mvg
=(X)=RaVen=

fat-beavis
17 april 2004, 22:38
Misschien es formateren:scream:

servi
17 april 2004, 23:40
omwille van deze opmerkingen en in andere threads is fat-beavis geband.

Ollie
18 april 2004, 00:13
De JList class heeft een method


public int locationToIndex (Point p)

die, naar ik aanneem, de index van het item op positie p (x, y coördinaten) geeft. Eens je de index van het geklikte item kent, kan je deze selecteren met de method


public void setSelectedIndex (int index)

waarna, je je popup menu kan tonen.

=(X)=RaVen=
18 april 2004, 22:25
wreed merci, eindelijk een deftig antwoord :)
Zal sebiet is ineens proberen :niceone:

=(X)=RaVen=
18 april 2004, 23:23
private void toonMenu(java.awt.event.MouseEvent evt) {
JMenuItem menuItem;

JPopupMenu popup = new JPopupMenu();
menuItem = new JMenuItem("Kick client");
menuItem.addActionListener(this);
popup.add(menuItem);
if ((evt.getModifiers() & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK) {
popup.show(evt.getComponent(),evt.getX(), evt.getY());
int index = cboChatters.locationToIndex(evt.getPoint());
cboChatters.setSelectedIndex(index);
}
}
ty het werkt :bow:

wickey
19 april 2004, 02:17
Originally posted by servi
omwille van deze opmerkingen en in andere threads is fat-beavis geband.

Eigenlijk dank ik u hier voor servi. Als ik naar de laaste 5topics kijk waar hij op heeft gerepleyd ... ist voze commentaar :)