import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JTextArea;
import javax.swing.text.Document;
public class JTextAreaWithMenu extends JTextArea implements MouseListener {
private static final long serialVersionUID = 6872048458970699373L;
private JPopupMenu popmen = new JPopupMenu();
private JMenuItem menu1 = new JMenuItem( "Ausschneiden");
private JMenuItem menu2 = new JMenuItem( "Kopieren");
private JMenuItem menu3 = new JMenuItem( "Einfügen");
private JMenuItem menu4 = new JMenuItem( "Löschen");
private JMenuItem menu5 = new JMenuItem( "Alles Markieren");
private ActionListener menuListener = new ActionListener() {
public void actionPerformed(ActionEvent event) {
if(event.getActionCommand().equals("Ausschneiden")) {
try {
Robot rob = new Robot();
rob.keyPress( KeyEvent.VK_CONTROL );
rob.keyPress( KeyEvent.VK_X );
rob.keyRelease(KeyEvent.VK_CONTROL);
rob.keyRelease(KeyEvent.VK_X);
}
catch(AWTException awtE){}
} else if(event.getActionCommand().equals("Kopieren")) {
try {
Robot rob = new Robot();
rob.keyPress( KeyEvent.VK_CONTROL );
rob.keyPress( KeyEvent.VK_C );
rob.keyRelease(KeyEvent.VK_CONTROL);
rob.keyRelease(KeyEvent.VK_C);
}
catch(AWTException awtE){}
} else if(event.getActionCommand().equals("Einfügen")) {
try {
Robot rob = new Robot();
rob.keyPress( KeyEvent.VK_CONTROL );
rob.keyPress( KeyEvent.VK_V );
rob.keyRelease(KeyEvent.VK_CONTROL);
rob.keyRelease(KeyEvent.VK_V);
}
catch(AWTException awtE){}
} else if(event.getActionCommand().equals("Löschen")) {
try {
Robot rob = new Robot();
rob.keyPress( KeyEvent.VK_DELETE );
rob.keyRelease(KeyEvent.VK_DELETE);
}
catch(AWTException awtE){}
} else if(event.getActionCommand().equals("Alles Markieren")) {
try {
Robot rob = new Robot();
rob.keyPress( KeyEvent.VK_CONTROL );
rob.keyPress( KeyEvent.VK_A );
rob.keyRelease(KeyEvent.VK_CONTROL);
rob.keyRelease(KeyEvent.VK_A);
}
catch(AWTException awtE){}
}
}
};
public JTextAreaWithMenu() {
super();
this.addMouseListener(this);
setJPopupMenu();
}
public JTextAreaWithMenu(Document doc) {
super(doc);
this.addMouseListener(this);
setJPopupMenu();
}
public JTextAreaWithMenu(Document doc, String text, int rows, int columns) {
super(doc, text, rows, columns);
this.addMouseListener(this);
setJPopupMenu();
}
public JTextAreaWithMenu(int rows, int columns) {
super(rows, columns);
this.addMouseListener(this);
setJPopupMenu();
}
public JTextAreaWithMenu(String text) {
super(text);
this.addMouseListener(this);
setJPopupMenu();
}
public JTextAreaWithMenu(String text, int rows, int columns) {
super(text, rows, columns);
this.addMouseListener(this);
setJPopupMenu();
}
private void setJPopupMenu() {
menu1.addActionListener(menuListener);
menu2.addActionListener(menuListener);
menu3.addActionListener(menuListener);
menu4.addActionListener(menuListener);
menu5.addActionListener(menuListener);
popmen.add( menu1 );
popmen.add( menu2 );
popmen.add( menu3 );
popmen.add( menu4 );
popmen.addSeparator();
popmen.add( menu5 );
}
@Override
public void mouseClicked(MouseEvent me) {
if(me.getButton()==MouseEvent.BUTTON3) {
popmen.show( this, me.getX(), me.getY() );
}
}
@Override
public void mouseEntered(MouseEvent arg0) {}
@Override
public void mouseExited(MouseEvent arg0) {}
@Override
public void mousePressed(MouseEvent arg0) {}
@Override
public void mouseReleased(MouseEvent arg0) {}
}