Commit 9404c08f by Adam Gerber

Merge branch 'lab06a'

Conflicts:
	src/lec05/glab/moreswing/LeetTranslator.java
parents a1dcab0d 7ce4cf76
......@@ -14,7 +14,7 @@ public class MouseClicker {
private JPanel mPanel;
public static void main(String[] args) {
JFrame frame = new JFrame("MouseClicker");
JFrame frame = new JFrame("Leeet");
frame.setContentPane(new MouseClicker().mPanel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
......
<?xml version="1.0" encoding="UTF-8"?>
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="lec05.glab.eventmodel.MouseClickerStubs">
<grid id="27dc6" binding="mPanel" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
<xy x="20" y="20" width="500" height="400"/>
</constraints>
<properties/>
<border type="none"/>
<children/>
</grid>
</form>
package lec05.glab.eventmodel;
import javax.swing.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
/**
* Created by ag on 11/3/2014.
*/
public class MouseClickerStubs {
private JPanel mPanel;
public static void main(String[] args) {
JFrame frame = new JFrame("MouseClickerStubs");
frame.setContentPane(new MouseClickerStubs().mPanel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setSize(600,400);
frame.setVisible(true);
}
public MouseClickerStubs() {
mPanel.addMouseListener(new MouseListener(){
@Override
public void mouseClicked(MouseEvent e) {
JOptionPane.showMessageDialog(mPanel,
"you clicked " + e.getSource() + " at point " + e.getPoint());
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
});
mPanel.addMouseMotionListener(new MouseMotionListener() {
@Override
public void mouseDragged(MouseEvent e) {
}
@Override
public void mouseMoved(MouseEvent e) {
System.out.println(e.getPoint());
}
});
}
}
......@@ -148,6 +148,14 @@
<text value="/"/>
</properties>
</component>
<component id="ef096" class="javax.swing.JButton" binding="mButtonClear">
<constraints>
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="C"/>
</properties>
</component>
</children>
</grid>
</form>
......@@ -5,7 +5,9 @@ import lec09.glab.structs.Queue;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Stack;
/**
......@@ -33,11 +35,14 @@ public class Calc {
private JButton mButtonMult;
private JButton mButtonDiv;
private JPanel mPanel;
private JButton mButtonClear;
//my members
//my members
private ActionListener mActionListener;
private List<String> mVals;
private double mTemp, mTotal;
private String mOp;
......@@ -53,26 +58,103 @@ public class Calc {
public Calc() {
//do any initialization
mVals = new ArrayList<>();
//create and put any listeners
mActionListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String strButtonText = ((JButton)e.getSource()).getText();
try {
int nVal = Integer.parseInt(strButtonText);
mTextField.setText(mTextField.getText() + String.valueOf(nVal));
} catch (NumberFormatException e1) {
//just set to nothing for now
if (strButtonText.equalsIgnoreCase("C")){
mTextField.setText("");
mVals.clear();
mOp = null;
mTemp = 0;
mTotal = 0;
return;
}
//equals sign
if (strButtonText.equalsIgnoreCase("=")){
mVals.add(mTextField.getText());
// mVals.add(strButtonText);
mTextField.setText("");
while (!mVals.isEmpty()){
String strVal = mVals.remove(0);
if (isNumeric(strVal)){
mTemp = Double.parseDouble(strVal);
if (mOp == null) {
mTotal = mTemp;
continue;
}
switch (mOp){
case "+":
mTotal += mTemp;
break;
case "-":
mTotal -= mTemp;
break;
case "*":
mTotal *= mTemp;
break;
case "/":
mTotal /= mTemp;
break;
}
} else {
//assign the previous operation
mOp = strVal;
}
}
mTextField.setText(String.valueOf(mTotal));
mOp = null;
mTemp = 0;
mTotal = 0;
}
else {
//numeric entry or .
if (isNumeric(strButtonText)){
mTextField.setText(mTextField.getText() + strButtonText);
}
//operator
else {
mVals.add(mTextField.getText());
mVals.add(strButtonText);
mTextField.setText("");
}
}
// try {
// int nVal = Integer.parseInt(strButtonText);
// mTextField.setText(mTextField.getText() + String.valueOf(nVal));
// } catch (NumberFormatException e1) {
//
// //just set to nothing for now
// mTextField.setText("");
//
// }
}
};
m0Button.addActionListener(mActionListener);
m1Button.addActionListener(mActionListener);
m2Button.addActionListener(mActionListener);
......@@ -88,10 +170,24 @@ public class Calc {
mButtonDiff.addActionListener(mActionListener);
mButtonMult.addActionListener(mActionListener);
mButtonDiv.addActionListener(mActionListener);
mButtonClear.addActionListener(mActionListener);
}
//http://stackoverflow.com/questions/1102891/how-to-check-if-a-string-is-a-numeric-type-in-java
public boolean isNumeric(String str)
{
for (char c : str.toCharArray())
{
if (!Character.isDigit(c) && c != '.')
return false;
}
return true;
}
......
......@@ -6,6 +6,7 @@ import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Set;
......@@ -23,7 +24,7 @@ public class LeetTranslator {
private JSlider mSlider;
//my members
private Hashtable htbLeet;
private HashMap htbLeet;
public static void main(String[] args) {
......@@ -39,7 +40,7 @@ public class LeetTranslator {
public LeetTranslator() {
//do any intialization here
populateTable();
//put actionlisteners here
//add actionlisteners here
mEditorPane.addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
......@@ -51,7 +52,7 @@ public class LeetTranslator {
}
private void populateTable(){
htbLeet = new Hashtable<String, String>();
htbLeet = new HashMap<String, String>();
htbLeet.put("a", "@");
htbLeet.put("b", "8");
htbLeet.put("c", "(");
......@@ -83,29 +84,24 @@ public class LeetTranslator {
private void translate() {
String strSentence = mEditorPane.getText();
//letters of the sentence as a set
Set<String> setLetters = new HashSet<String>();
//keys from our leet hashtable
//put all the chars
StringBuilder stringBuilder = new StringBuilder();
String strCharLeet;
for (int nC = 0; nC < strSentence.length(); nC++) {
setLetters.add(String.valueOf(strSentence.charAt(nC)));
}
for (String str : setLetters) {
String strHashValue = (String) htbLeet.get(str);
char cNormalChar = strSentence.charAt(nC);
strCharLeet = (String) htbLeet.get(String.valueOf(cNormalChar));
if ((strHashValue != null)
if ((strCharLeet != null)
&& Math.random() * 100 < mSlider.getValue()) {
strSentence = strSentence.replace(str, strHashValue);
stringBuilder.append(strCharLeet);
} else {
stringBuilder.append(cNormalChar);
}
}
Clipboard clp = Toolkit.getDefaultToolkit().getSystemClipboard();
StringSelection sel = new StringSelection(strSentence);
StringSelection sel = new StringSelection(stringBuilder.toString());
clp.setContents(sel, null);
mEditorPane.setText("");
......
......@@ -28,7 +28,7 @@ public class Painter {
private Color mColor;
public static void main(String[] args) {
JFrame frame = new JFrame("Painter");
JFrame frame = new JFrame("Leeet");
frame.setContentPane(new Painter().mPanel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
......
package lec05.glab.moreswing2;
import javax.swing.*;
import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
/**
* Created by Adam on 11/2/2015.
*/
public class Leeet implements ActionListener {
//step1 creat the frame
private JFrame frm;
private JMenuBar mJMenuBar;
private JMenu mJMenuFile;
private JMenu mJMenuEdit;
private JMenuItem mJMenuItemExit;
private JMenuItem mJMenuItemCut;
private JMenuItem mJMenuItemCopy;
private JMenuItem mJMenuItemPaste;
private JTextArea mJTextArea;
//step 2 create create the swing main method
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Leeet window = new Leeet();
window.frm.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
//4 call init from the construtor
public Leeet() {
initialize();
}
//3 create the intialize method
private void initialize() {
frm = new JFrame();
frm.setBounds(100, 100, 700, 476);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//set the components
mJMenuBar = new JMenuBar();
frm.setJMenuBar(mJMenuBar);
mJMenuFile = new JMenu("File");
mJMenuEdit = new JMenu("Edit");
mJMenuBar.add(mJMenuFile);
mJMenuBar.add(mJMenuEdit);
mJMenuItemExit = new JMenuItem("Exit");
mJMenuFile.add(mJMenuItemExit);
mJMenuItemExit.addActionListener(this);
mJMenuItemCut = new JMenuItem("Cut");
mJMenuItemCopy = new JMenuItem("Copy");
mJMenuItemPaste = new JMenuItem("Paste");
mJMenuEdit.add(mJMenuItemCut);
mJMenuItemCut.addActionListener(this);
mJMenuEdit.add(mJMenuItemCopy);
mJMenuItemCopy.addActionListener(this);
mJMenuEdit.add(mJMenuItemPaste);
mJMenuItemPaste.addActionListener(this);
mJTextArea = new JTextArea();
frm.getContentPane().add(mJTextArea, BorderLayout.CENTER);
mJTextArea.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER){
System.out.println("you pressed enter");
}
}
@Override
public void keyReleased(KeyEvent e) {
}
});
}
@Override
public void actionPerformed(ActionEvent e) {
JMenuItem jMenuItem = (JMenuItem) e.getSource();
String strName = jMenuItem.getText().toUpperCase();
switch (strName){
case "CUT":
mJTextArea.cut();
break;
case "PASTE":
mJTextArea.paste();
break;
case "COPY":
mJTextArea.copy();
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents( new StringSelection(mJTextArea.getText().toString()), null );
break;
case "EXIT":
System.exit(0);
break;
default:
break;
}
}
}
package lec05.glab.swing;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.event.MouseMotionListener;
/**
* Created by Adam on 11/2/2015.
*/
public class Painter implements ChangeListener {
//define a frame
private JFrame frm;
private JPanel mPanelIndicator;
private JPanel mPanelCenter;
private JPanel mPanelSlider;
private JSlider mSliderRed;
private JSlider mSliderGreen;
private JSlider mSliderBlue;
private Color mColor;
//creaete a main method that insantiates the ecnlosing object
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Painter window = new Painter();
window.frm.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
//constructor calls init
public Painter() {
initialize();
}
//use BorderLayout. this is the easiest one.
//https://docs.oracle.com/javase/tutorial/uiswing/layout/border.html
//our init methhod
private void initialize() {
frm = new JFrame();
frm.setBounds(100, 100, 700, 476);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//lay our componnets out
mPanelIndicator = new JPanel();
//http://stackoverflow.com/questions/17083657/make-bottom-panel-in-borderlayout-to-expand-like-center-panel
mPanelIndicator.setPreferredSize(new Dimension(frm.getWidth(), 50));
frm.getContentPane().add(mPanelIndicator, BorderLayout.NORTH);
mPanelCenter = new JPanel();
frm.getContentPane().add(mPanelCenter, BorderLayout.CENTER);
mSliderBlue = new JSlider(0,255);
mSliderGreen = new JSlider(0,255);
mSliderRed = new JSlider(0,255);
mPanelSlider = new JPanel();
mPanelSlider.add(mSliderRed);
mPanelSlider.add(mSliderGreen);
mPanelSlider.add(mSliderBlue);
frm.getContentPane().add(mPanelSlider, BorderLayout.SOUTH);
//add behavior
mColor = Color.GRAY;
mPanelIndicator.setBackground(mColor);
mSliderBlue.addChangeListener(this);
mSliderGreen.addChangeListener(this);
mSliderRed.addChangeListener(this);
mPanelCenter.addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseDragged(MouseEvent e) {
super.mouseDragged(e);
Graphics graphics = mPanelCenter.getGraphics();
graphics.setColor(mColor);
graphics.fillOval(e.getX(), e.getY(), 20,20);
}
});
// frm.pack();
// // frm.setLocationRelativeTo(null);
// frm.setVisible(true);
}
@Override
public void stateChanged(ChangeEvent e) {
mColor = new Color(mSliderRed.getValue(),
mSliderGreen.getValue(),
mSliderBlue.getValue()
);
mPanelIndicator.setBackground(mColor);
}
}
package lec06.glab.abstract_me;
import java.util.Date;
/**
* Created by ag on 11/3/2014.
*/
public class AbstractDriver {
public static void main(String[] args) {
MyAbstractDate myAbstractDate = new MyAbstractDate() {
@Override
public String getMayanArmegeddon() {
return "May 3, 2012. Hello from myAbstractDate, my type is: " + this.getClass().getName();
}
};
System.out.println(myAbstractDate.getMayanArmegeddon());
}
}
abstract class MyAbstractDate extends Date {
private int mNum;
private String mMyString;
public int getNum() {
return mNum;
}
public void setNum(int num) {
mNum = num;
}
public String getMyString() {
return mMyString;
}
public void setMyString(String string) {
mMyString = string;
}
public abstract String getMayanArmegeddon();
}
package lec06.glab.abstract_me;
import java.io.Serializable;
import java.util.Map;
/**
* Created by ag on 11/3/2014.
*/
public class InterfaceDriver {
public static void main(String[] args) {
Runnable runner = new Runnable() {
@Override
public void run() {
System.out.println("hello from runner, my type is: " + this.getClass().getName());
}
};
Thread thread = new Thread(runner);
thread.start();
}
}
......@@ -8,34 +8,15 @@ public class IterativeDriver {
*/
public static void main(String[] args) {
final int READING_WEEK = 9;
//sept 26 2011
//first day of class
MyDate mdt = new MyDate(26,8,2013);
//begin and end quarter
MyDate mdtBeginQrt = new MyDate(26,8,2013);
MyDate mdtEndQtr = new MyDate(10,11,2013);
//begin and end read-week
MyDate mdtBeginReadWeek = mdtBeginQrt.clone();
addDays(7 * READING_WEEK, mdtBeginReadWeek);
MyDate mdtEndReadWeek = mdtBeginQrt.clone();
addDays(7 * (READING_WEEK + 1) - 1, mdtEndReadWeek );
//TODO refactor this
MyDate mdt = new MyDate(29,8,2014);
MyDate mdtEndQtr = new MyDate(8,11,2014);
while(mdt.compareTo(mdtEndQtr) <= 0){
if(mdt.compareTo(mdtBeginReadWeek) < 0 || mdt.compareTo(mdtEndReadWeek) > 0){
System.out.println(mdt);
}
System.out.println(mdt);
addDays(7, mdt);
......
......@@ -2,6 +2,14 @@ package lec06.glab.junit;
public class RecursionDriver {
//press Ctrl+Shift+T to generate a Test case.
//http://junit.sourceforge.net/javadoc/org/junit/Assert.html
//make sure to install
//JUnitGenerator V2.0
//then use the alt-insert
/**
* @param args
*/
......@@ -16,10 +24,12 @@ public class RecursionDriver {
//http://www.cs.arizona.edu/icon/oddsends/palinsen.htm
System.out.println( reverseCharsRec("Marge let a moody baby doom a telegram."));
System.out.println( reverseCharsIter("Marge let a moody baby doom a telegram."));
}
//examine each frame in the debugger
System.out.println(reverseCharsRec("Bears"));
}
// ===============================================
// ==a factorial function using recursion
......
......@@ -69,7 +69,7 @@ public class RecursionDriverTest {
*/
@Test
public void reverseCharsIter_shouldReverseTheCharsIteratively() throws Exception {
assertEquals("Result", "sraeBasdf", RecursionDriver.reverseCharsIter("Bears"));
assertEquals("Result", "sraeB", RecursionDriver.reverseCharsIter("Bears"));
}
/**
......
<?xml version="1.0" encoding="UTF-8"?>
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="lec06.glab.more_ui.MyUI">
<grid id="27dc6" binding="mPanel" layout-manager="GridLayoutManager" row-count="2" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
<xy x="20" y="20" width="500" height="400"/>
</constraints>
<properties/>
<border type="none"/>
<children>
<grid id="9ca74" binding="mPanImage" custom-create="true" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
<grid row="0" column="0" row-span="1" col-span="2" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
<properties/>
<border type="none"/>
<children/>
</grid>
<component id="1eada" class="javax.swing.JButton" binding="mButtonRoll1" custom-create="true">
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="Click 1"/>
</properties>
</component>
<component id="a07eb" class="javax.swing.JButton" binding="mButtonRoll2" custom-create="true">
<constraints>
<grid row="1" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="Click 2"/>
</properties>
</component>
</children>
</grid>
</form>
package lec06.glab.more_ui;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* Created by ag on 11/2/2014.
*/
public class MyUI implements ActionListener {
private JPanel mPanel;
private JButton mButtonRoll1;
private JPanel mPanImage;
private JButton mButtonRoll2;
// private MyListener mMyListener;
public static void main(String[] args) {
JFrame frame = new JFrame("MyUI");
frame.setContentPane(new MyUI().mPanel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setSize(400,400);
frame.setVisible(true);
}
private void createUIComponents() {
//both instantiate and add behavior to our customer components
mPanImage = new ImgPan(new ImageIcon("").getImage());
mButtonRoll1 = new JButton();
mButtonRoll1.addActionListener(this);
mButtonRoll2 = new JButton();
mButtonRoll2.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(this.getClass().getName());
if (((JButton)e.getSource()).getText().equalsIgnoreCase("Click 1")){
((ImgPan) mPanImage).setImg(new ImageIcon(System.getProperty("user.dir") + "/src/lec06/glab/more_ui/freez.jpg").getImage());
} else {
((ImgPan) mPanImage).setImg(new ImageIcon(System.getProperty("user.dir") + "/src/lec06/glab/more_ui/mortal.jpg").getImage());
}
mPanImage.repaint();
}
}
class ImgPan extends JPanel {
private Image img;
private static final Dimension SIZE = new Dimension(400,300);
public ImgPan(Image img) {
this.img = img;
setPreferredSize(SIZE);
setMinimumSize(SIZE);
setMaximumSize(SIZE);
setSize(SIZE);
}
public Image getImg() {
return img;
}
public void setImg(Image img) {
this.img = img;
}
@Override
public void paintComponent(Graphics g) {
g.drawImage(img, 0,0, (int)SIZE.getWidth(), (int)SIZE.getHeight(), null);
}
}
//class MyListener implements ActionListener {
//
// @Override
// public void actionPerformed(ActionEvent e) {
//
// System.out.println(this.getClass().getName());
//
// if (((JButton)e.getSource()).getText().equalsIgnoreCase("Click 1")){
// JOptionPane.showConfirmDialog(null, "Clicked 1");
// } else {
// JOptionPane.showConfirmDialog(null, "Clicked 2");
// }
//
// }
//}
package lec06.glab.notepad;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
public class Notepad implements ActionListener {
private JFrame frame;
private JTextArea textArea;
private JMenuBar menuBar;
private JMenu menu;
private JMenu menu_1;
private JMenu menu_2;
private JMenu menu_3;
private JMenuItem menuItem;
private JMenuItem menuItem_1;
private JMenuItem menuItem_2;
private JMenuItem menuItem_3;
private JMenuItem menuItem_4;
private JMenuItem menuItem_5;
private JMenuItem menuItem_6;
private JMenuItem menuItem_7;
private JMenuItem menuItem_8;
private JMenuItem menuItem_9;
private JMenuItem menuItem_10;
private JMenuItem menuItem_11;
private JMenuItem menuItem_12;
private JMenuItem menuItem_13;
private JMenuItem menuItem_14;
private JMenuItem menuItem_15;
private JMenuItem menuItem_16;
private JMenuItem menuItem_17;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Notepad window = new Notepad();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Notepad() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setTitle("Notepad");
frame.setBounds(100, 100, 528, 420);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
textArea = new JTextArea();
frame.getContentPane().add(textArea, BorderLayout.CENTER);
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
menuBar = new JMenuBar();
frame.setJMenuBar(menuBar);
menu = new JMenu("File");
menuBar.add(menu);
menuItem = new JMenuItem("New");
menu.add(menuItem);
menuItem_1 = new JMenuItem("Open");
menu.add(menuItem_1);
menuItem_2 = new JMenuItem("Save");
menu.add(menuItem_2);
menuItem_3 = new JMenuItem("Save As...");
menu.add(menuItem_3);
menuItem_4 = new JMenuItem("Print");
menu.add(menuItem_4);
menuItem_5 = new JMenuItem("Exit");
menu.add(menuItem_5);
menu_1 = new JMenu("Edit");
menuBar.add(menu_1);
menuItem_6 = new JMenuItem("Undo");
menu_1.add(menuItem_6);
menuItem_7 = new JMenuItem("Redo");
menu_1.add(menuItem_7);
menuItem_8 = new JMenuItem("Cut");
menu_1.add(menuItem_8);
menuItem_8.addActionListener(this);
menuItem_9 = new JMenuItem("Copy");
menu_1.add(menuItem_9);
menuItem_9.addActionListener(this);
menuItem_10 = new JMenuItem("Paste");
menu_1.add(menuItem_10);
menuItem_10.addActionListener(this);
menuItem_11 = new JMenuItem("Find");
menu_1.add(menuItem_11);
menuItem_12 = new JMenuItem("Select All");
menu_1.add(menuItem_12);
menuItem_13 = new JMenuItem("Date/Time");
menu_1.add(menuItem_13);
menu_2 = new JMenu("Format");
menuBar.add(menu_2);
menuItem_14 = new JMenuItem("Font");
menu_2.add(menuItem_14);
menuItem_15 = new JMenuItem("Color");
menu_2.add(menuItem_15);
menuItem_16 = new JMenuItem("Word Wrap");
menu_2.add(menuItem_16);
menu_3 = new JMenu("Help");
menuBar.add(menu_3);
menuItem_17 = new JMenuItem("About");
menu_3.add(menuItem_17);
}
@Override
public void actionPerformed(ActionEvent e) {
JMenuItem menuItem = (JMenuItem) e.getSource();
String action = menuItem.getText();
switch (action.toUpperCase()){
case "CUT":
textArea.cut();
break;
case "COPY":
textArea.copy();
break;
case "PASTE":
textArea.paste();
break;
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment