I am trying to get cut and paste to work from menu. Below is code I have can someone point me where I am going wrong I have the same problem with File selection to open and save using JFileChooser.
import java.awt.*;
import java.awt.event. *;
import java.awt.datatr ansfer.Clipboar d;
import java.awt.datatr ansfer.DataFlav or;
import java.awt.datatr ansfer.StringSe lection;
import java.awt.datatr ansfer.Transfer able;
import javax.swing.*;
public class MenuCheck
{
static class MenuActionListe ner implements ActionListener
{
public void actionPerformed (ActionEvent actionEvent)
{
System.out.prin tln("Selected:" + actionEvent.get ActionCommand() );
}
}
public static void main(String[] args)
{
Runnable runner = new Runnable()
{
public void run()
{
JFrame.setDefau ltLookAndFeelDe corated(true);
JFrame aframe = new JFrame("LogTrac k");
aframe.setDefau ltCloseOperatio n(JFrame.EXIT_O N_CLOSE);
aframe.setSize( 800, 600);
aframe.setVisib le(true);
ActionListener menuListener = new MenuActionListe ner();
JMenuBar menuBar = new JMenuBar();
JMenu logMenu;
JMenuItem menuItem;
//Set up the File menu.
JMenu fileMenu = new JMenu("File");
fileMenu.setMne monic(KeyEvent. VK_F);
menuBar.add(fil eMenu);
//Set up the Open menu item for File menu.
JMenuItem OpenMenuItem = new JMenuItem("Open ");
OpenMenuItem.ad dActionListener (menuListener);
OpenMenuItem.se tMnemonic(KeyEv ent.VK_O);
OpenMenuItem.se tAccelerator(Ke yStroke.getKeyS troke(
KeyEvent.VK_O, ActionEvent.ALT _MASK));
OpenMenuItem.se tActionCommand( "open");
fileMenu.add(Op enMenuItem);
//Set up the Save menu item for File menu.
JMenuItem SaveMenuItem = new JMenuItem("Save ");
SaveMenuItem.se tMnemonic(KeyEv ent.VK_S);
SaveMenuItem.se tAccelerator(Ke yStroke.getKeyS troke(
KeyEvent.VK_S, ActionEvent.ALT _MASK));
SaveMenuItem.se tActionCommand( "save");
SaveMenuItem.ad dActionListener (menuListener);
fileMenu.add(Sa veMenuItem);
//Set up the Quit/Exit menu item for Log menu.
JMenuItem QuitMenuItem = new JMenuItem("Quit ");
QuitMenuItem.se tMnemonic(KeyEv ent.VK_Q);
QuitMenuItem.se tAccelerator(Ke yStroke.getKeyS troke(
KeyEvent.VK_Q, ActionEvent.ALT _MASK));
QuitMenuItem.se tActionCommand( "quit");
QuitMenuItem.ad dActionListener (menuListener);
fileMenu.add(Qu itMenuItem);
JMenu tileMenu = new JMenu("Tiling Frame"); tileMenu.setMne monic(KeyEvent. VK_F);
menuBar.add(til eMenu);
//Setup Copy and Paste
JMenu editMenu = new JMenu("Edit");
editMenu.setMne monic(KeyEvent. VK_E);
menuBar.add(edi tMenu);
JMenuItem cutMenuItem = new JMenuItem("Cut" , KeyEvent.VK_T);
cutMenuItem.add ActionListener( menuListener);
KeyStroke ctrlXKeyStroke = KeyStroke.getKe yStroke("contro l X");
editMenu.add(cu tMenuItem);
JMenuItem copyMenuItem = new JMenuItem ("Copy", KeyEvent.VK_C);
copyMenuItem.ad dActionListener (menuListener);
KeyStroke ctrlCKeyStroke = KeyStroke.getKe yStroke("contro l C");
copyMenuItem.se tAccelerator(ct rlCKeyStroke);
editMenu.add(co pyMenuItem);
JMenuItem pasteMenuItem = new JMenuItem("Past e", KeyEvent.VK_P);
pasteMenuItem.a ddActionListene r(menuListener) ;
KeyStroke ctrlVKeyStroke = KeyStroke.getKe yStroke("contro l V");
pasteMenuItem.s etAccelerator(c trlVKeyStroke);
pasteMenuItem.s etEnabled(false );
editMenu.add(pa steMenuItem);
aframe.setJMenu Bar(menuBar);
aframe.setVisib le(true);
JTextArea text = new JTextArea();
getContentPane( ).add(text);
Clipboard clipbd = getToolkit().ge tSystemClipboar d();
class CopyMenuItem implements ActionListener {
public void actionPerformed (ActionEvent e) {
String selection = text.getSelecte dText();
if (selection == null)
return;
StringSelection clipString = new StringSelection (selection);
clipbd.setConte nts(clipString, clipString);
}
}
class CutMenutItem implements ActionListener {
public void actionPerformed (ActionEvent e) {
String selection = text.getSelecte dText();
if (selection == null)
return;
StringSelection clipString = new StringSelection (selection);
clipbd.setConte nts(clipString, clipString);
text.replaceRan ge("", text.getSelecti onStart(), text
.getSelectionEn d());
}
}
class PastemenuItem implements ActionListener {
public void actionPerformed (ActionEvent e) {
Transferable clipData = clipbd.getConte nts(CutAndPaste .this);
try {
String clipString = (String) clipData
.getTransferDat a(DataFlavor.st ringFlavor);
text.replaceRan ge(clipString, text.getSelecti onStart(), text
.getSelectionEn d());
} catch (Exception ex) {
System.err.prin tln("Not String flavor");
}
}
}
}
};
EventQueue.invo keLater(runner) ;
}
}
thanks.