Ik heb rechts in mijn scherm een JList, met een aantal items. Ik wil, dat als ik op een item met de rechtermuisknop klik, dat dan dat item geselecteerd word, en er een JPopupMenu tevoorschijn komt.
Ik heb het nu al voor elkaar dat ik in de JList een popupmenu heb;
maar als ik met de rechtermuisknop op een item klik, dan wordt hij niét eerst geselecteerd, maar komt er gewoon een popupmenu. Kan ik ervoor zorgen dat hij vòòrdat het popupmenu komt, éérst het item selecteerd?
Ik heb het nu al voor elkaar dat ik in de JList een popupmenu heb;
maar als ik met de rechtermuisknop op een item klik, dan wordt hij niét eerst geselecteerd, maar komt er gewoon een popupmenu. Kan ik ervoor zorgen dat hij vòòrdat het popupmenu komt, éérst het item selecteerd?
code:
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
| import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
import java.net.*;
class Channel implements ActionListener{
//Declaring Variables
public String channel;
private Client client;
private ListenSend listenSend;
public JTextArea msgField;
private JTextField msgSend;
private JList users;
private Vector name;
private JTabbedPane tabbedPane;
public Channel(){}
public Channel(String channel,Client client){
ImageIcon icon = new ImageIcon("Images/open.gif");
JPanel panel = new JPanel(new BorderLayout(3,3));
panel.setBorder(BorderFactory.createLineBorder(panel.getBackground(), 5));
msgField = new JTextArea();
msgSend = new JTextField();
panel.add(msgField, BorderLayout.CENTER);
panel.add(msgSend, BorderLayout.SOUTH);
client.tabbedPane.addTab(channel, icon, panel, "Channel: " +channel);
name = new Vector();
users = new JList(name);
msgSend.addActionListener(this);
msgField.setEditable(false);
//POPUP-Menu
final JPopupMenu popup = new JPopupMenu();
JMenuItem mi1 = new JMenuItem("Popup Item 1");
JMenuItem mi2 = new JMenuItem("Popup Item 2");
popup.add(mi1);
popup.add(mi2);
(users.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent me){
if (me.isPopupTrigger()) {
popup.show(users, me.getX(), me.getY());
users.get
}
}
public void mouseReleased(MouseEvent me) {
if (me.isPopupTrigger()) {
popup.show(users, me.getX(), me.getY());
}
}
}));
//END POPUP
panel.add(users, BorderLayout.EAST);
this.client = client;
this.listenSend = listenSend;
this.channel = channel;
this.tabbedPane = tabbedPane;
users.setFixedCellWidth(100);
}
public String channelName(){
return channel;
}
public void names(StringTokenizer st){
name.removeAllElements();
while(st.hasMoreTokens()){
name.add(st.nextToken());
}
users.updateUI();
}
public void message(String message){
msgField.append(message);
}
public void becomeOperator(){
//nog implementeren
}
public void updateGUI(){
this.updateGUI();
}
public void removeTab(){
//tabbedPane
}
public void actionPerformed(ActionEvent e){
client.listenSend.send("MSG»"+channel+"»"+msgSend.getText());
msgSend.setText("");
}
} |