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 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
|
package testApplet;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JTextPane;
import javax.swing.text.BadLocationException;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyledDocument;
import ressource.GBC;
public class TextDisplayer extends JFrame{
private JTextPane left;
private JTextPane right;
protected StyledDocument documentLeft;
protected StyledDocument documentRight;
public TextDisplayer(){
super();
build();
}
private void build(){
this.setSize(new Dimension(600,400));
this.setTitle("plop");
this.setLocationRelativeTo(null);
this.left = new JTextPane();
this.right = new JTextPane();
documentLeft = left.getStyledDocument();
documentRight = right.getStyledDocument();
this.left.setEditable(true);
this.left.setFocusable(true);
this.right.setEditable(true);
this.right.setFocusable(true);
class MySuperListener implements KeyListener, ActionListener{
public MySuperListener(){
super();
}
/** Handle the key typed event from the text field. */
public void keyTyped(KeyEvent e) {
// displayInfo(e, "KEY TYPED: ");
}
/** Handle the key pressed event from the text field. */
public void keyPressed(KeyEvent e) {
displayInfo(e, "KEY PRESSED: ");
}
/** Handle the key released event from the text field. */
public void keyReleased(KeyEvent e) {
// displayInfo(e, "KEY RELEASED: ");
}
/** Handle the button click. */
public void actionPerformed(ActionEvent e) {}
private void displayInfo(KeyEvent e, String keyStatus){
if(e.getModifiers() == KeyEvent.CTRL_MASK && e.getKeyCode() == KeyEvent.VK_C)
System.out.println("je copie");
if(e.getModifiers() == KeyEvent.CTRL_MASK && e.getKeyCode() == KeyEvent.VK_V)
System.out.println("je colle");
if(e.getModifiers() == KeyEvent.CTRL_MASK && e.getKeyCode() == KeyEvent.VK_X)
System.out.println("je coupe");
if(e.getModifiers() == KeyEvent.CTRL_MASK && e.getKeyCode() == KeyEvent.VK_A)
System.out.println("je selectionne tout");
switch(e.getKeyCode())
{
case KeyEvent.VK_BACK_SPACE :
infoDiplayer(KeyBoardOperation.DEL, null, left.getCaretPosition()-1, 1);
break;
case KeyEvent.VK_A :
case KeyEvent.VK_B :
case KeyEvent.VK_C :
case KeyEvent.VK_D :
case KeyEvent.VK_E :
case KeyEvent.VK_F :
case KeyEvent.VK_H :
case KeyEvent.VK_I :
case KeyEvent.VK_J :
case KeyEvent.VK_K :
case KeyEvent.VK_L :
case KeyEvent.VK_M :
case KeyEvent.VK_N :
case KeyEvent.VK_O :
case KeyEvent.VK_P :
case KeyEvent.VK_Q :
case KeyEvent.VK_R :
case KeyEvent.VK_S :
case KeyEvent.VK_T :
case KeyEvent.VK_U :
case KeyEvent.VK_V :
case KeyEvent.VK_W :
case KeyEvent.VK_X :
case KeyEvent.VK_Y :
case KeyEvent.VK_Z :
infoDiplayer(KeyBoardOperation.ADD, "" + e.getKeyChar(), left.getCaretPosition(), -1);
break;
case KeyEvent.VK_DELETE:
infoDiplayer(KeyBoardOperation.DEL, null, left.getCaretPosition(), 1);
break;
default :
}
private void infoDiplayer(KeyBoardOperation op, String s, int offset, int length){
try{
switch(op){
case ADD:
documentRight.insertString(offset, s, new SimpleAttributeSet());
break;
case DEL:
documentRight.remove(offset, length);
break;
default:
break;
}
} catch (BadLocationException e1) {
e1.printStackTrace();
}
}
}
left.addKeyListener(new MySuperListener());
getContentPane().setLayout(new GridBagLayout());
Container cp = getContentPane();
cp.add(this.left, new GBC(0,0).setFill(GBC.BOTH).setWeight(100, 100).setAnchor(GBC.WEST).setInsets(1));
cp.add(this.right, new GBC(1,0).setFill(GBC.BOTH).setWeight(100, 100).setAnchor(GBC.EAST).setInsets(1));
this.setVisible(true);
}
} |
Partager