Skip to Main Content

New to Java

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

copy/paste

807597Mar 23 2005 — edited Mar 25 2005
I created a calculator which works just fine. I added a menu to it and I am having trouble getting the Copy and Paste to work. I have read alot of forums and I have searched for sample code. What I have found does not compile in my program. Can someone please lead me in the right direction. Here is my code:

import javax.swing.*;
import javax.swing.JOptionPane;
import java.awt.*;
import java.awt.event.*;
import java.awt.datatransfer.*;
import java.io.*;

public class DoMath implements ActionListener {
DoMath(JTextField textfield) {
input = textfield;
}
public void actionPerformed(ActionEvent e) {

if (e.getActionCommand().equals("About"))
JOptionPane.showMessageDialog(null, "Author: C. Robertson \nCreated: 2005 \nVersion: 1.0", "Author", JOptionPane.INFORMATION_MESSAGE);

if (e.getActionCommand().equals("Exit"))
System.exit(0);

if (e.getActionCommand().equals("Copy"))
copy();

if (e.getActionCommand().equals("Paste"))
paste();

if (e.getActionCommand().equals("1"))
input.setText(String.valueOf(input.getText() + "1"));

if (e.getActionCommand().equals("2"))
input.setText(String.valueOf(input.getText() + "2"));

if (e.getActionCommand().equals("3"))
input.setText(String.valueOf(input.getText() + "3"));

if (e.getActionCommand().equals("4"))
input.setText(String.valueOf(input.getText() + "4"));

if (e.getActionCommand().equals("5"))
input.setText(String.valueOf(input.getText() + "5"));

if (e.getActionCommand().equals("6"))
input.setText(String.valueOf(input.getText() + "6"));

if (e.getActionCommand().equals("7"))
input.setText(String.valueOf(input.getText() + "7"));

if (e.getActionCommand().equals("8"))
input.setText(String.valueOf(input.getText() + "8"));

if (e.getActionCommand().equals("9"))
input.setText(String.valueOf(input.getText() + "9"));

if (e.getActionCommand().equals("0"))
input.setText(String.valueOf(input.getText() + "0"));

if (e.getActionCommand().equals("."))
input.setText(String.valueOf(input.getText() + "."));

if (e.getActionCommand().equals("+"))
input.setText(String.valueOf(input.getText() + " + "));

if (e.getActionCommand().equals("-"))
input.setText(String.valueOf(input.getText() + " - "));

if (e.getActionCommand().equals("*"))
input.setText(String.valueOf(input.getText() + " * "));

if (e.getActionCommand().equals("/"))
input.setText(String.valueOf(input.getText() + " / "));

if (e.getActionCommand().equals("Clear"))
input.setText(String.valueOf(""));

if (e.getActionCommand().equals("=")){
String temp = input.getText();

String temp2 = temp.substring(0, temp.indexOf(" "));
double num1 = Double.parseDouble(temp2);

temp2 = temp.substring(temp.indexOf(" "));
temp2 = temp2.substring(1);
String sign = temp2.substring(0, temp2.indexOf(" "));
temp2 = temp2.substring(temp2.indexOf(" "));
temp2 = temp2.substring(1);

double num2 = Double.parseDouble(temp2);

if (sign.equals("+"))
input.setText(String.valueOf(num1 + num2));

if (sign.equals("-"))
input.setText(String.valueOf(num1 - num2));

if (sign.equals("*"))
input.setText(String.valueOf(num1 * num2));

if (sign.equals("/"))
input.setText(String.valueOf(num1 / num2));
}

}

public void copy()
{
String s = input.getText();
StringSelection ss = new StringSelection(s);
this.getToolkit().getSystemClipboard().setContents(ss, this);
input.selectAll();
}
public void paste()
{
Clipboard c = this.getToolkit().getSystemClipboard();
Transferable t = c.getContents(this);
try
{
if (t.isDataFlavorSupported(DataFlavor.stringFlavor))
{
String s = (String) t.getTransferData(DataFlavor.stringFlavor);
input.setText(s);
}
else if (t.isDataFlavorSupported(DataFlavor.javaFileListFlavor))
{
java.util.List files = (java.util.List)
t.getTransferData(DataFlavor.javaFileListFlavor);
java.io.File file = (java.io.File)files.get(0);
input.setText(file.getName());
}
}
catch (Exception e)
{
this.getToolkit().beep();
}
}

private JTextField input;
}
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Apr 22 2005
Added on Mar 23 2005
6 comments
145 views