Salut !
je veux realiser une classe TextBox qui étend la classe JTextField tout en offrant les possibilités de copier/couper/coller.
Comment fair mes amis...!?
Merci
Version imprimable
Salut !
je veux realiser une classe TextBox qui étend la classe JTextField tout en offrant les possibilités de copier/couper/coller.
Comment fair mes amis...!?
Merci
Le composant JTextFeild possède les methode copy(), cut(), paste(), ...
oui mais comment fair mon amis !?Citation:
Envoyé par Regis.C
tu peux me donné moi un exemple du code
Non-sans blague, en detection du click droit de la souris sur le champs texte (voir MouseListener et SwingUtilities.isRightMouseButton(MouseEvent event)), tu construis et affiche un JPopupMenu avec des Action ou des JMenuItems+ActionListener qui appellent les methodes appropriees du champs texte cible.Code:
1
2 myTextField.copy() ...
De plus les JTextComponent disposent de la methode getActions() qui retourne un tableau des actions disponibles, toutes pretes, a l'usage sur le champs ou la zone de texte cible. Attention cependant il y a beaucoup beaucoup d'actions (genre le menu popup cree avec ces actions ne rentre pas dans mon ecran).
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 package test; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class TestFieldAction { /** Program entry point. * @param args Arguments from the command line. */ public static void main(String ...args) { SwingUtilities.invokeLater(new Runnable() { /** {@inheritDoc} */ public void run() { final JTextField field = new JTextField(20); field.addMouseListener(new MouseAdapter() { /** {@inheritDoc} */ public void mouseClicked(MouseEvent event) { if (SwingUtilities.isRightMouseButton(event)) { Action[] actions = field.getActions(); JPopupMenu popup = new JPopupMenu(); for (Action action : actions) { popup.add(action); } popup.show(field, event.getX(), event.getY()); } } }); JFrame frame = new JFrame("Test"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(field); frame.pack(); frame.setVisible(true); } }); } }
Merci !