Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package myDrawingSoftware;
- import graphicalObjects.Shapes;
- import java.awt.Color;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.util.ArrayList;
- import java.util.List;
- import javax.swing.JFileChooser;
- public class Memory {
- static ArrayList<Shapes> myShapes = new ArrayList<Shapes>();
- private static int shapeSelector = 1;
- private static Color colorSelector = Color.RED;
- public Memory() {
- }
- public static int getShape(){
- return shapeSelector;
- }
- public static void setShape(int choice){
- shapeSelector = choice;
- }
- public void setColor(Color choice){
- this.colorSelector = choice;
- }
- public Color getColor(){
- return colorSelector;
- }
- public ArrayList<Shapes> getArrayList(){
- return myShapes;
- }
- public void saveToFile(){
- JFileChooser chooser = new JFileChooser();
- chooser.showSaveDialog(null);
- File f = chooser.getSelectedFile();
- FileOutputStream fos = null;
- try {
- fos = new FileOutputStream(f);
- } catch (FileNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- ObjectOutputStream oos = null;
- try {
- oos = new ObjectOutputStream(fos);
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- try {
- oos.writeObject(myShapes);
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- try {
- oos.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- public void openFromFile(File file){
- FileInputStream fis = null;
- try {
- fis = new FileInputStream(file);
- } catch (FileNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- ObjectInputStream ois = null;
- try {
- ois = new ObjectInputStream(fis);
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- try {
- myShapes = (ArrayList<Shapes>) ois.readObject();
- } catch (ClassNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- try {
- ois.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- public void chooseFile() {
- JFileChooser chooser = new JFileChooser();
- chooser.showSaveDialog(null);
- File f = chooser.getSelectedFile();
- if (f != null){
- openFromFile(f);
- }
- }
- }
- package myDrawingSoftware;
- import java.awt.BorderLayout;
- import java.awt.Color;
- import java.awt.Dimension;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.util.ArrayList;
- import javax.swing.BorderFactory;
- import javax.swing.BoxLayout;
- import javax.swing.JButton;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- public class MyPanel extends JPanel {
- public MyPanel(){
- final Memory memory = new Memory();
- setLayout(new BorderLayout());
- final ArrayList<JButton> colorButtonList = new ArrayList();
- final ArrayList<JButton> shapeButtonList = new ArrayList();
- // skapa högra panelen
- JPanel eastPanel = new JPanel();
- eastPanel.setPreferredSize(new Dimension(60, 1000));
- eastPanel.setBackground(Color.LIGHT_GRAY);
- eastPanel.setLayout(new BoxLayout(eastPanel, BoxLayout.Y_AXIS));
- eastPanel.add(new JLabel(" Color"));
- final JButton blue = new JButton(" ");
- blue.setBackground(Color.BLUE);
- blue.setPreferredSize(new Dimension(60,30));
- blue.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- memory.setColor(Color.BLUE);
- for (JButton button : colorButtonList){
- button.setBorder(BorderFactory.createEmptyBorder());
- }
- blue.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
- }
- });
- colorButtonList.add(blue);
- eastPanel.add(blue);
- final JButton red = new JButton(" ");
- red.setBackground(Color.RED);
- red.setPreferredSize(new Dimension(60,30));
- red.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- memory.setColor(Color.RED);
- for (JButton button : colorButtonList){
- button.setBorder(BorderFactory.createEmptyBorder());
- }
- red.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
- }
- });
- colorButtonList.add(red);
- eastPanel.add(red);
- final JButton yellow = new JButton(" ");
- yellow.setBackground(Color.YELLOW);
- yellow.setPreferredSize(new Dimension(60,30));
- yellow.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- memory.setColor(Color.YELLOW);
- for (JButton button : colorButtonList){
- button.setBorder(BorderFactory.createEmptyBorder());
- }
- yellow.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
- }
- });
- colorButtonList.add(yellow);
- eastPanel.add(yellow);
- final JButton black = new JButton(" ");
- black.setBackground(Color.BLACK);
- black.setForeground(Color.WHITE);
- black.setPreferredSize(new Dimension(60,30));
- black.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- memory.setColor(Color.BLACK);
- for (JButton button : colorButtonList){
- button.setBorder(BorderFactory.createEmptyBorder());
- }
- black.setBorder(BorderFactory.createLineBorder(Color.WHITE, 2));
- }
- });
- colorButtonList.add(black);
- eastPanel.add(black);
- final JButton green = new JButton(" ");
- green.setBackground(Color.GREEN);
- green.setPreferredSize(new Dimension(60,30));
- green.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- memory.setColor(Color.GREEN);
- for (JButton button : colorButtonList){
- button.setBorder(BorderFactory.createEmptyBorder());
- }
- green.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
- }
- });
- colorButtonList.add(green);
- eastPanel.add(green);
- final JButton orange = new JButton(" ");
- orange.setBackground(Color.ORANGE);
- orange.setPreferredSize(new Dimension(60,30));
- orange.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- memory.setColor(Color.ORANGE);
- for (JButton button : colorButtonList){
- button.setBorder(BorderFactory.createEmptyBorder());
- }
- orange.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
- }
- });
- colorButtonList.add(orange);
- eastPanel.add(orange);
- final JButton gray = new JButton(" ");
- gray.setBackground(Color.GRAY);
- gray.setPreferredSize(new Dimension(60,30));
- gray.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- memory.setColor(Color.GRAY);
- for (JButton button : colorButtonList){
- button.setBorder(BorderFactory.createEmptyBorder());
- }
- gray.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
- }
- });
- colorButtonList.add(gray);
- eastPanel.add(gray);
- final JButton cyan = new JButton(" ");
- cyan.setBackground(Color.CYAN);
- //cyan.setPreferredSize(new Dimension(60,30));
- cyan.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- memory.setColor(Color.CYAN);
- for (JButton button : colorButtonList){
- button.setBorder(BorderFactory.createEmptyBorder());
- }
- cyan.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
- }
- });
- colorButtonList.add(cyan);
- eastPanel.add(cyan);
- eastPanel.add(new JLabel("Shapes"));
- final JButton circle = new JButton("Circle");
- circle.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- memory.setShape(1);
- for (JButton button : shapeButtonList){
- button.setBorder(BorderFactory.createEmptyBorder());
- }
- circle.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
- }
- });
- shapeButtonList.add(circle);
- eastPanel.add(circle);
- final JButton square = new JButton("Square");
- square.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- memory.setShape(2);
- for (JButton button : shapeButtonList){
- button.setBorder(BorderFactory.createEmptyBorder());
- }
- square.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
- }
- });
- shapeButtonList.add(square);
- eastPanel.add(square);
- final JButton triangle = new JButton("Triangle");
- triangle.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- memory.setShape(3);
- for (JButton button : shapeButtonList){
- button.setBorder(BorderFactory.createEmptyBorder());
- }
- triangle.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
- }
- });
- shapeButtonList.add(triangle);
- eastPanel.add(triangle);
- for (JButton button : colorButtonList){
- button.setBorder(BorderFactory.createEmptyBorder());
- }
- for (JButton button : shapeButtonList){
- button.setBorder(BorderFactory.createEmptyBorder());
- }
- blue.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
- circle.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
- //skapa nedre panelen
- JPanel southPanel = new JPanel();
- southPanel.setLayout(new BoxLayout(southPanel, BoxLayout.X_AXIS));
- southPanel.setBackground(Color.LIGHT_GRAY);
- eastPanel.setBackground(Color.LIGHT_GRAY);
- //lägg till allt i fönstret och skapa det
- this.add(new PaintingArea());
- this.add(eastPanel, BorderLayout.EAST);
- this.add(southPanel, BorderLayout.SOUTH);
- //this.add(text, BorderLayout.CENTER);etBackground(Color.LIGHT_GRAY);
- JButton reset = new JButton("Reset");
- reset.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- memory.getArrayList().clear();
- }
- });
- southPanel.add(reset);
- JButton save = new JButton("Save");
- save.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- memory.saveToFile();
- }
- });
- southPanel.add(save);
- JButton open = new JButton("Open");
- open.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- memory.chooseFile();
- }
- });
- southPanel.add(open);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement