From 340c338b471682b534a40f732318c18ab27a92ac Mon Sep 17 00:00:00 2001 From: Johan Date: Tue, 12 Apr 2016 13:53:47 +0200 Subject: [PATCH 01/28] test --- src/places/Place.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/places/Place.java b/src/places/Place.java index 0442c6e..b45932f 100644 --- a/src/places/Place.java +++ b/src/places/Place.java @@ -20,7 +20,6 @@ public Place(String name, Position position, TravelCategory color){ this(name, position); this.color = color; setVisible(true); - int i = 0; } public String getName(){ From 7f8896086b4a2d5c734928ed3cc84a774a8d9ea2 Mon Sep 17 00:00:00 2001 From: Johan Date: Thu, 21 Apr 2016 14:11:04 +0200 Subject: [PATCH 02/28] =?UTF-8?q?Fr=C3=A5n=20b=C3=A4rbar...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/places/ProgramTest.java | 149 +++++++++++++++++++++++++++++++++ src/places/TravelCategory.java | 1 + 2 files changed, 150 insertions(+) create mode 100644 src/places/ProgramTest.java diff --git a/src/places/ProgramTest.java b/src/places/ProgramTest.java new file mode 100644 index 0000000..99cb828 --- /dev/null +++ b/src/places/ProgramTest.java @@ -0,0 +1,149 @@ +package places; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.*; +import java.awt.event.*; + + + +public class ProgramTest extends JFrame{ + + private boolean nyInfo = true; // bestämmer stäng eller ej. + private ImageIcon bild = new ImageIcon("jarvafaltet.png"); // ska inte öppnas förän man öppnar fil. Flytta ut ur konstruktor!? + private JLabel imageLabel = new JLabel(bild); // SE BILD + + private JMenuBar menu = new JMenuBar(); + private JMenu archive = new JMenu("Archive"); // new Map, Load Places, Save, Exit + private JMenuItem newMap = new JMenuItem("New Map"); + private JFileChooser jfc = new JFileChooser(); + + private JPanel northPanel = new JPanel(); + private JPanel eastPanel = new JPanel(); + private JPanel centerPanel = new JPanel(); + + private JLabel newPlaceLabel = new JLabel("New:"); + + String[] JComboAlternativ = {"NamedPlace", "DescribedPlace"}; + private JComboBox choosePlaceType = new JComboBox(JComboAlternativ); + + private JTextField searchField = new JTextField("Search", 10); + + private JButton searchButton = new JButton("Search"); + private JButton hideButton = new JButton("Hide"); + private JButton removeButton = new JButton("Remove"); + private JButton whatIsHereButton = new JButton("What is here?"); + + private JScrollPane mapScrollbar = new JScrollPane(); + + private JLabel categoriesLabel = new JLabel("Categories"); + private String[] categories = {"Bus", "Train", "Subway"} ; + private JList categoryList = new JList(categories); + private JButton hideCategoryButton = new JButton("Hide category"); + + + public ProgramTest(){ + //JFrame program = new JFrame("Inlupp 2"); + super("Inlupp 2"); + Exit exitWindow = new Exit(); + this.addWindowListener(exitWindow); + setJMenuBar(menu); + menu.add(archive); + + newMap.addActionListener(new NewMapLyss()); + archive.add(newMap); + + JMenuItem loadPlaces = new JMenuItem("Load Places"); + archive.add(loadPlaces); + JMenuItem save = new JMenuItem("Save"); + archive.add(save); + + JMenuItem exit = new JMenuItem("Exit"); + exit.addActionListener(new ExitLyss()); + archive.add(exit); + + setLayout(new BorderLayout()); + northPanel.add(newPlaceLabel); + northPanel.add(choosePlaceType); + northPanel.add(searchField); + northPanel.add(searchButton); + northPanel.add(hideButton); + northPanel.add(removeButton); + northPanel.add(whatIsHereButton); + add(northPanel, BorderLayout.NORTH); + add(eastPanel, BorderLayout.EAST); + eastPanel.setLayout(new BoxLayout(eastPanel,BoxLayout.Y_AXIS)); + eastPanel.add(categoriesLabel); + categoryList.setAlignmentX(LEFT_ALIGNMENT); //Alignement (verkar bugga -> vänster blir höger) + eastPanel.add(categoryList); + categoryList.setFixedCellWidth(150); + hideCategoryButton.setAlignmentX(LEFT_ALIGNMENT); //Alignment + eastPanel.add(hideCategoryButton); + + add(centerPanel, BorderLayout.CENTER); //SE BILD + centerPanel.add(imageLabel); //SE BILD + + setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); + setSize(650, 220); + setLocationRelativeTo(null); + setVisible(true); + + + } + + class NewMapLyss implements ActionListener{ + public void actionPerformed(ActionEvent ave){ + jfc.showOpenDialog(newMap); + } + } + + + class LoadPlacesLyss implements ActionListener{ + public void actionPerformed(ActionEvent ave){ + // load + } + } + + class SaveLyss implements ActionListener{ + public void actionPerformed(ActionEvent ave){ + // save + } + } + + class ExitLyss implements ActionListener{ + public void actionPerformed(ActionEvent ave){ + int ok = JOptionPane.OK_OPTION; + if(!nyInfo){ + System.exit(0); + }else{ + int svar = JOptionPane.showConfirmDialog(null,"Vill du avsluta ändć?","Osparade ändringar", + JOptionPane.OK_CANCEL_OPTION); + + if(svar == ok){ + System.exit(0); + } + } + } + } + + public class Exit extends WindowAdapter{ + @Override + public void windowClosing(WindowEvent wev){ + if(!nyInfo){ + System.exit(0); + }else{ + int svar = JOptionPane.showConfirmDialog(null, "Vill du avsluta ändć?", "Osparade ändringar", + JOptionPane.OK_CANCEL_OPTION); + if(svar == JOptionPane.OK_OPTION){ + System.exit(0); + } + } + } + } + + public static void main(String []args){ + ProgramTest program = new ProgramTest(); + + + } +} + diff --git a/src/places/TravelCategory.java b/src/places/TravelCategory.java index 912a169..77c2179 100644 --- a/src/places/TravelCategory.java +++ b/src/places/TravelCategory.java @@ -1,3 +1,4 @@ package places; public enum TravelCategory {BUS,TRAIN,SUBWAY,NO_CATEGORY} + From 37ac7ba73f06110c3c558a768cae15a3704b937a Mon Sep 17 00:00:00 2001 From: "Johan.Eklundh" Date: Thu, 21 Apr 2016 14:24:11 +0200 Subject: [PATCH 03/28] =?UTF-8?q?sm=C3=A5=20f=C3=B6r=C3=A4ndringar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/places/ProgramTest.java | 44 ++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/src/places/ProgramTest.java b/src/places/ProgramTest.java index 99cb828..83fc67d 100644 --- a/src/places/ProgramTest.java +++ b/src/places/ProgramTest.java @@ -8,8 +8,8 @@ public class ProgramTest extends JFrame{ - private boolean nyInfo = true; // bestämmer stäng eller ej. - private ImageIcon bild = new ImageIcon("jarvafaltet.png"); // ska inte öppnas förän man öppnar fil. Flytta ut ur konstruktor!? + private boolean nyInfo = true; // bestïżœmmer stïżœng eller ej. + private ImageIcon bild = new ImageIcon("jarvafaltet.png"); // ska inte ïżœppnas fïżœrïżœn man ïżœppnar fil. Flytta ut ur konstruktor!? private JLabel imageLabel = new JLabel(bild); // SE BILD private JMenuBar menu = new JMenuBar(); @@ -73,7 +73,7 @@ public ProgramTest(){ add(eastPanel, BorderLayout.EAST); eastPanel.setLayout(new BoxLayout(eastPanel,BoxLayout.Y_AXIS)); eastPanel.add(categoriesLabel); - categoryList.setAlignmentX(LEFT_ALIGNMENT); //Alignement (verkar bugga -> vänster blir höger) + categoryList.setAlignmentX(LEFT_ALIGNMENT); //Alignement (verkar bugga -> vĂ€nster blir höger) eastPanel.add(categoryList); categoryList.setFixedCellWidth(150); hideCategoryButton.setAlignmentX(LEFT_ALIGNMENT); //Alignment @@ -90,6 +90,21 @@ public ProgramTest(){ } + private void avsluta(){ + int ok = JOptionPane.OK_OPTION; + if(!nyInfo){ + System.exit(0); + }else{ + int svar = JOptionPane.showConfirmDialog(null,"Vill du avsluta Ă€ndĂ„?","Osparade Ă€ndringar", + JOptionPane.OK_CANCEL_OPTION); + + if(svar == ok){ + System.exit(0); + } + } + } + + class NewMapLyss implements ActionListener{ public void actionPerformed(ActionEvent ave){ jfc.showOpenDialog(newMap); @@ -111,35 +126,18 @@ public void actionPerformed(ActionEvent ave){ class ExitLyss implements ActionListener{ public void actionPerformed(ActionEvent ave){ - int ok = JOptionPane.OK_OPTION; - if(!nyInfo){ - System.exit(0); - }else{ - int svar = JOptionPane.showConfirmDialog(null,"Vill du avsluta ändć?","Osparade ändringar", - JOptionPane.OK_CANCEL_OPTION); - - if(svar == ok){ - System.exit(0); - } - } + avsluta(); } } public class Exit extends WindowAdapter{ @Override public void windowClosing(WindowEvent wev){ - if(!nyInfo){ - System.exit(0); - }else{ - int svar = JOptionPane.showConfirmDialog(null, "Vill du avsluta ändć?", "Osparade ändringar", - JOptionPane.OK_CANCEL_OPTION); - if(svar == JOptionPane.OK_OPTION){ - System.exit(0); - } - } + avsluta(); } } + public static void main(String []args){ ProgramTest program = new ProgramTest(); From b3b2435665f5d7d2bac1294e5a7fae9b90ac8aed Mon Sep 17 00:00:00 2001 From: "Johan.Eklundh" Date: Thu, 21 Apr 2016 21:11:02 +0200 Subject: [PATCH 04/28] =?UTF-8?q?p=C3=A5v=C3=A4g=20mot=20visad=20karta?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/places/ProgramTest.java | 65 +++++++++++++++++++++++++++++++------ 1 file changed, 55 insertions(+), 10 deletions(-) diff --git a/src/places/ProgramTest.java b/src/places/ProgramTest.java index 83fc67d..de1077f 100644 --- a/src/places/ProgramTest.java +++ b/src/places/ProgramTest.java @@ -3,24 +3,30 @@ import javax.swing.event.*; import java.awt.*; import java.awt.event.*; +import java.io.*; public class ProgramTest extends JFrame{ - private boolean nyInfo = true; // bestïżœmmer stïżœng eller ej. - private ImageIcon bild = new ImageIcon("jarvafaltet.png"); // ska inte ïżœppnas fïżœrïżœn man ïżœppnar fil. Flytta ut ur konstruktor!? - private JLabel imageLabel = new JLabel(bild); // SE BILD + private boolean nyInfo = true; // bestĂ€mmer stĂ€ng eller ej. + private String longName; + private File valdFil; + private JMenuBar menu = new JMenuBar(); private JMenu archive = new JMenu("Archive"); // new Map, Load Places, Save, Exit - private JMenuItem newMap = new JMenuItem("New Map"); - private JFileChooser jfc = new JFileChooser(); + JMenuItem newMap = new JMenuItem("New Map"); + + private JFileChooser jfc = new JFileChooser("."); // startar filsökning frĂ„n aktuell mapp + private JPanel northPanel = new JPanel(); private JPanel eastPanel = new JPanel(); private JPanel centerPanel = new JPanel(); + + private JLabel newPlaceLabel = new JLabel("New:"); String[] JComboAlternativ = {"NamedPlace", "DescribedPlace"}; @@ -49,6 +55,7 @@ public ProgramTest(){ setJMenuBar(menu); menu.add(archive); + newMap.addActionListener(new NewMapLyss()); archive.add(newMap); @@ -79,11 +86,14 @@ public ProgramTest(){ hideCategoryButton.setAlignmentX(LEFT_ALIGNMENT); //Alignment eastPanel.add(hideCategoryButton); - add(centerPanel, BorderLayout.CENTER); //SE BILD - centerPanel.add(imageLabel); //SE BILD + centerPanel.setLayout(new FlowLayout()); //GRID LR BOXLAYOUT FIXAR STORLEKEN PÅ BILDEN MEN VAD MED SCROLLPANE? + + add(centerPanel, BorderLayout.CENTER); //SE BILD --------------------> om centerPanel byts till imgaeLabel syns kartan... vad fel? om centerPanel.setLayout != null syns bilden alltid. + //SE BILD --------------------------> lĂ€gg till objekt av ImageLabel classen setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); - setSize(650, 220); + setSize(650, 650); + setResizable(false); setLocationRelativeTo(null); setVisible(true); @@ -107,7 +117,17 @@ private void avsluta(){ class NewMapLyss implements ActionListener{ public void actionPerformed(ActionEvent ave){ - jfc.showOpenDialog(newMap); + int ok = jfc.APPROVE_OPTION; + int jfcSvar = jfc.showOpenDialog(newMap); // för att kunna ladda filer + if (jfcSvar == ok){ + valdFil = jfc.getSelectedFile(); + longName = valdFil.getAbsolutePath(); + System.out.println(longName); + centerPanel.add(new ImageLabel(longName)); + centerPanel.validate(); + centerPanel.repaint(); + } + } } @@ -130,7 +150,7 @@ public void actionPerformed(ActionEvent ave){ } } - public class Exit extends WindowAdapter{ + class Exit extends WindowAdapter{ @Override public void windowClosing(WindowEvent wev){ avsluta(); @@ -138,6 +158,31 @@ public void windowClosing(WindowEvent wev){ } + class ImageLabel extends JPanel{ + + private ImageIcon bakgrundsbild; + + public ImageLabel(String longName){ + setLayout(null); + ProgramTest.this.longName = longName; + bakgrundsbild = new ImageIcon(longName); // absolut sökvĂ€g!? kan skriva "jarvafaltet.png" varför funkar inte longName---> pekar pĂ„ null + System.out.println("" + longName); + centerPanel.add(mapScrollbar); + centerPanel.validate(); + centerPanel.repaint(); + + } // skulle kunna göra en ny konstruktor som bugger upp fönstret igen fast med bild denna gĂ„ng.... + + + + protected void paintComponent(Graphics g){ + super.paintComponent(g); + g.drawImage(bakgrundsbild.getImage(), 0, 0, this); // ta bort getwidth + getHeight för bildensnaturliga storlek + } + } + + + public static void main(String []args){ ProgramTest program = new ProgramTest(); From bb071248d60ba5f1adc94f5d15c6cf03d5369033 Mon Sep 17 00:00:00 2001 From: "Johan.Eklundh" Date: Thu, 21 Apr 2016 23:12:28 +0200 Subject: [PATCH 05/28] =?UTF-8?q?b=C3=A4ttre?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/places/ProgramTest.java | 51 +++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/src/places/ProgramTest.java b/src/places/ProgramTest.java index de1077f..419825a 100644 --- a/src/places/ProgramTest.java +++ b/src/places/ProgramTest.java @@ -39,7 +39,7 @@ public class ProgramTest extends JFrame{ private JButton removeButton = new JButton("Remove"); private JButton whatIsHereButton = new JButton("What is here?"); - private JScrollPane mapScrollbar = new JScrollPane(); + private JLabel categoriesLabel = new JLabel("Categories"); private String[] categories = {"Bus", "Train", "Subway"} ; @@ -86,14 +86,13 @@ public ProgramTest(){ hideCategoryButton.setAlignmentX(LEFT_ALIGNMENT); //Alignment eastPanel.add(hideCategoryButton); - centerPanel.setLayout(new FlowLayout()); //GRID LR BOXLAYOUT FIXAR STORLEKEN PÅ BILDEN MEN VAD MED SCROLLPANE? + centerPanel.setLayout(new BorderLayout()); //GRID LR BOXLAYOUT FIXAR STORLEKEN PÅ BILDEN MEN VAD MED SCROLLPANE? -----BorderLayout lĂ€gger i mitten och alla över varandra. - add(centerPanel, BorderLayout.CENTER); //SE BILD --------------------> om centerPanel byts till imgaeLabel syns kartan... vad fel? om centerPanel.setLayout != null syns bilden alltid. - //SE BILD --------------------------> lĂ€gg till objekt av ImageLabel classen + add(centerPanel, BorderLayout.CENTER); setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); setSize(650, 650); - setResizable(false); + //setResizable(false); setLocationRelativeTo(null); setVisible(true); @@ -116,18 +115,28 @@ private void avsluta(){ class NewMapLyss implements ActionListener{ + + JScrollPane mapScrollbar; + ImageLabel imageLabel; + public void actionPerformed(ActionEvent ave){ - int ok = jfc.APPROVE_OPTION; + int ok = JFileChooser.APPROVE_OPTION; int jfcSvar = jfc.showOpenDialog(newMap); // för att kunna ladda filer if (jfcSvar == ok){ - valdFil = jfc.getSelectedFile(); - longName = valdFil.getAbsolutePath(); - System.out.println(longName); - centerPanel.add(new ImageLabel(longName)); - centerPanel.validate(); - centerPanel.repaint(); - } - + + if(centerPanel.getComponents() != null){ + centerPanel.removeAll(); + } + + valdFil = jfc.getSelectedFile(); + longName = valdFil.getAbsolutePath(); + + imageLabel = new ImageLabel(longName); + mapScrollbar = new JScrollPane(imageLabel); + centerPanel.add(mapScrollbar); + centerPanel.validate(); + mapScrollbar.validate(); + } } } @@ -163,21 +172,19 @@ class ImageLabel extends JPanel{ private ImageIcon bakgrundsbild; public ImageLabel(String longName){ + setLayout(null); ProgramTest.this.longName = longName; - bakgrundsbild = new ImageIcon(longName); // absolut sökvĂ€g!? kan skriva "jarvafaltet.png" varför funkar inte longName---> pekar pĂ„ null - System.out.println("" + longName); - centerPanel.add(mapScrollbar); - centerPanel.validate(); - centerPanel.repaint(); - - } // skulle kunna göra en ny konstruktor som bugger upp fönstret igen fast med bild denna gĂ„ng.... + bakgrundsbild = new ImageIcon(longName); + System.out.println(longName); + //super.setBounds(getX(), getY(), bakgrundsbild.getIconWidth(),bakgrundsbild.getIconHeight()); // funkar inte utan vidare implementering.. + } protected void paintComponent(Graphics g){ super.paintComponent(g); - g.drawImage(bakgrundsbild.getImage(), 0, 0, this); // ta bort getwidth + getHeight för bildensnaturliga storlek + g.drawImage(bakgrundsbild.getImage(), 0, 0, this); // ta bort getwidth + getHeight för bildensnaturliga storlek } } From c7722ed4ebb2eb612ced5e90107d5d3bc2a3d90c Mon Sep 17 00:00:00 2001 From: "Johan.Eklundh" Date: Fri, 22 Apr 2016 17:17:06 +0200 Subject: [PATCH 06/28] =?UTF-8?q?ScrollPane=20funkar=20som=20det=20ska,=20?= =?UTF-8?q?men=20d=C3=A5lig=20koll=20p=C3=A5=20vad=20jag=20har=20gjort...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/places/ProgramTest.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/places/ProgramTest.java b/src/places/ProgramTest.java index 419825a..0473073 100644 --- a/src/places/ProgramTest.java +++ b/src/places/ProgramTest.java @@ -19,7 +19,7 @@ public class ProgramTest extends JFrame{ JMenuItem newMap = new JMenuItem("New Map"); private JFileChooser jfc = new JFileChooser("."); // startar filsökning frĂ„n aktuell mapp - + JScrollPane mapScrollbar; private JPanel northPanel = new JPanel(); private JPanel eastPanel = new JPanel(); @@ -87,7 +87,6 @@ public ProgramTest(){ eastPanel.add(hideCategoryButton); centerPanel.setLayout(new BorderLayout()); //GRID LR BOXLAYOUT FIXAR STORLEKEN PÅ BILDEN MEN VAD MED SCROLLPANE? -----BorderLayout lĂ€gger i mitten och alla över varandra. - add(centerPanel, BorderLayout.CENTER); setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); @@ -116,8 +115,8 @@ private void avsluta(){ class NewMapLyss implements ActionListener{ - JScrollPane mapScrollbar; - ImageLabel imageLabel; + + ImageIcon imageLabel; public void actionPerformed(ActionEvent ave){ int ok = JFileChooser.APPROVE_OPTION; @@ -131,11 +130,15 @@ public void actionPerformed(ActionEvent ave){ valdFil = jfc.getSelectedFile(); longName = valdFil.getAbsolutePath(); - imageLabel = new ImageLabel(longName); - mapScrollbar = new JScrollPane(imageLabel); - centerPanel.add(mapScrollbar); + imageLabel = new ImageIcon(longName); + mapScrollbar = new JScrollPane(new JLabel(imageLabel)); // OK, nu funkar det + centerPanel.add(mapScrollbar); //Men vad har jag gjort? :/ centerPanel.validate(); mapScrollbar.validate(); + + +// getContentPane().add(mapScrollbar); +// getContentPane().validate(); ---> FUNKAR LIKA DÅLIGT.. } } } @@ -167,7 +170,7 @@ public void windowClosing(WindowEvent wev){ } - class ImageLabel extends JPanel{ + class ImageLabel extends JPanel{ // pĂ„verkar ingenting om den extendar JPanel, JLabel lr JComponent private ImageIcon bakgrundsbild; From abcc6a55beaed5a535c92057eddb1f6fb9b34bd9 Mon Sep 17 00:00:00 2001 From: "Johan.Eklundh" Date: Fri, 22 Apr 2016 17:20:01 +0200 Subject: [PATCH 07/28] =?UTF-8?q?ImageLabelklassen,=20verkar=20inte=20beh?= =?UTF-8?q?=C3=B6vas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/places/ProgramTest.java | 42 ++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/places/ProgramTest.java b/src/places/ProgramTest.java index 0473073..b533e99 100644 --- a/src/places/ProgramTest.java +++ b/src/places/ProgramTest.java @@ -132,7 +132,7 @@ public void actionPerformed(ActionEvent ave){ imageLabel = new ImageIcon(longName); mapScrollbar = new JScrollPane(new JLabel(imageLabel)); // OK, nu funkar det - centerPanel.add(mapScrollbar); //Men vad har jag gjort? :/ + centerPanel.add(mapScrollbar); //Men vad har jag gjort? :/ ----> ImageLabel, klassen behövs inte alls nu! centerPanel.validate(); mapScrollbar.validate(); @@ -170,26 +170,26 @@ public void windowClosing(WindowEvent wev){ } - class ImageLabel extends JPanel{ // pĂ„verkar ingenting om den extendar JPanel, JLabel lr JComponent - - private ImageIcon bakgrundsbild; - - public ImageLabel(String longName){ - - setLayout(null); - ProgramTest.this.longName = longName; - bakgrundsbild = new ImageIcon(longName); - System.out.println(longName); - //super.setBounds(getX(), getY(), bakgrundsbild.getIconWidth(),bakgrundsbild.getIconHeight()); // funkar inte utan vidare implementering.. - } - - - - protected void paintComponent(Graphics g){ - super.paintComponent(g); - g.drawImage(bakgrundsbild.getImage(), 0, 0, this); // ta bort getwidth + getHeight för bildensnaturliga storlek - } - } +// class ImageLabel extends JPanel{ // pĂ„verkar ingenting om den extendar JPanel, JLabel lr JComponent +// +// private ImageIcon bakgrundsbild; +// +// public ImageLabel(String longName){ +// +// setLayout(null); +// ProgramTest.this.longName = longName; +// bakgrundsbild = new ImageIcon(longName); +// System.out.println(longName); +// //super.setBounds(getX(), getY(), bakgrundsbild.getIconWidth(),bakgrundsbild.getIconHeight()); // funkar inte utan vidare implementering.. +// } +// +// +// +// protected void paintComponent(Graphics g){ +// super.paintComponent(g); +// g.drawImage(bakgrundsbild.getImage(), 0, 0, this); // ta bort getwidth + getHeight för bildensnaturliga storlek +// } +// } From f59d300c5fb419da99edbe5e8b3d6f0ecb106d69 Mon Sep 17 00:00:00 2001 From: "Johan.Eklundh" Date: Mon, 25 Apr 2016 21:43:29 +0200 Subject: [PATCH 08/28] =?UTF-8?q?n=C3=A4sta=20steg,=20grafisk=20implemente?= =?UTF-8?q?ring=20av=20platser.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/places/DescribedPlace.java | 2 +- src/places/NamedPlace.java | 2 +- src/places/Place.java | 20 ++++-- src/places/ProgramTest.java | 116 ++++++++++++++++++++++++++++++++- src/places/TravelCategory.java | 15 ++++- 5 files changed, 145 insertions(+), 10 deletions(-) diff --git a/src/places/DescribedPlace.java b/src/places/DescribedPlace.java index 8a70b5d..59a13ac 100644 --- a/src/places/DescribedPlace.java +++ b/src/places/DescribedPlace.java @@ -10,7 +10,7 @@ public DescribedPlace(String name, Position position, String description){ } - public DescribedPlace(String name, Position position, TravelCategory color, String description){ + public DescribedPlace(String name, Position position, TravelCategory color, String description){ // Om vi ska sĂ€tta kategori via Place, behövs inte denna konstruktor..!? super(name, position, color); this.description = description; diff --git a/src/places/NamedPlace.java b/src/places/NamedPlace.java index eb247b8..499481a 100644 --- a/src/places/NamedPlace.java +++ b/src/places/NamedPlace.java @@ -6,7 +6,7 @@ public NamedPlace(String name, Position position){ super(name, position); } - public NamedPlace(String name, Position position, TravelCategory color){ + public NamedPlace(String name, Position position, TravelCategory color){ // Om vi ska sĂ€tta kategori via Place, behövs inte denna konstruktor..!? super(name, position, color); } diff --git a/src/places/Place.java b/src/places/Place.java index b45932f..d2c9d5f 100644 --- a/src/places/Place.java +++ b/src/places/Place.java @@ -1,13 +1,14 @@ package places; -import javax.swing.JComponent; // kanske ladda allt? alltsć -> * +import javax.swing.JComponent; // kanske ladda allt? alltsĂ„ -> * +//import java.awt.event.*; Place skulle kunna ---> implements ActionListener----> prövar att addera detta till program klassen istĂ€llet. public abstract class Place extends JComponent { private String name; private Position position; - private TravelCategory color = TravelCategory.NO_CATEGORY;// kategori - buss, tćg, t-bana + private TravelCategory color;// kategori - buss, tĂ„g, t-bana private boolean showInfo; - //private boolean visible; // behövs ej? JComponent -> setVisible() + //private boolean visible; // behövs ej? JComponent -> setVisible() private boolean marked; public Place(String name, Position position){ @@ -24,8 +25,8 @@ public Place(String name, Position position, TravelCategory color){ public String getName(){ return name; - } // dessa getMetoder borde inte behövas dć den ärever frćn JComponent och alltsć - //ska representeras grafiskt som en trekant pć kartan. + } // dessa getMetoder borde inte behövas dĂ„ den Ă€rver frĂ„n JComponent och alltsĂ„ + //ska representeras grafiskt som en trekant pĂ„ kartan. public Position getPosition(){ return position; @@ -35,6 +36,11 @@ public TravelCategory getColor(){ return color; } + public void setCategory(TravelCategory color){ + this.color = color; + } + + public boolean getShowInfo(){ return showInfo; } @@ -42,6 +48,10 @@ public boolean getMarked(){ return marked; } + public String toString(){ + //if () // kolla child + return color.toString() + position + name ; // först + PLATSTYP + sist + BESKRIVNING + } } diff --git a/src/places/ProgramTest.java b/src/places/ProgramTest.java index b533e99..d028a7c 100644 --- a/src/places/ProgramTest.java +++ b/src/places/ProgramTest.java @@ -14,6 +14,7 @@ public class ProgramTest extends JFrame{ private File valdFil; + private JMenuBar menu = new JMenuBar(); private JMenu archive = new JMenu("Archive"); // new Map, Load Places, Save, Exit JMenuItem newMap = new JMenuItem("New Map"); @@ -47,6 +48,9 @@ public class ProgramTest extends JFrame{ private JButton hideCategoryButton = new JButton("Hide category"); + /*------------------------------------------------------------------ CONSTRUCTOR ----------------------------------------------------------------------*/ + + public ProgramTest(){ //JFrame program = new JFrame("Inlupp 2"); super("Inlupp 2"); @@ -70,7 +74,11 @@ public ProgramTest(){ setLayout(new BorderLayout()); northPanel.add(newPlaceLabel); + choosePlaceType.addActionListener(new ChoosePlaceTypeLyss()); northPanel.add(choosePlaceType); + + + northPanel.add(searchField); northPanel.add(searchButton); northPanel.add(hideButton); @@ -81,8 +89,10 @@ public ProgramTest(){ eastPanel.setLayout(new BoxLayout(eastPanel,BoxLayout.Y_AXIS)); eastPanel.add(categoriesLabel); categoryList.setAlignmentX(LEFT_ALIGNMENT); //Alignement (verkar bugga -> vĂ€nster blir höger) - eastPanel.add(categoryList); categoryList.setFixedCellWidth(150); + categoryList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // Om jag vill kunna deselecta en kategori mĂ„ste jag till föra en klass dĂ€r jag implementerat detta. + eastPanel.add(categoryList); + hideCategoryButton.setAlignmentX(LEFT_ALIGNMENT); //Alignment eastPanel.add(hideCategoryButton); @@ -98,6 +108,8 @@ public ProgramTest(){ } + /*------------------------------------------------------------- METHODS -----------------------------------------------------------------------------------*/ + private void avsluta(){ int ok = JOptionPane.OK_OPTION; if(!nyInfo){ @@ -113,6 +125,107 @@ private void avsluta(){ } + /*--------------------------------------------------------------- CLASSES ----------------------------------------------------------------------------------*/ + + class MouseLyss extends MouseAdapter{ + private Position nyPlatsPosition; + + + public void mouseClicked(MouseEvent mev){ + nyPlatsPosition = new Position(mev.getX(), mev.getY()); + + // STÄLLA TILLBAKA MUSPEKAREN!? + } + + public Position getNyPlatsPosition(){ + return nyPlatsPosition; + } + } + + class ChoosePlaceTypeLyss implements ActionListener{ + + TravelCategory colorToUse; + Place nyPlats; + MouseLyss mouseLyss = new MouseLyss(); + + public void actionPerformed(ActionEvent ave){ + //ÄNDRA TILL CROSSHAIR Vid click pĂ„ kartan, get position och anvĂ€nd i skapandet av en plats. + + setCursor(Cursor.CROSSHAIR_CURSOR); + mapScrollbar.addMouseListener(mouseLyss); //SKA DEN ADDAS TILL MAPSCROLLBAR ELLER TILL BILDEN? --> Ger Nullpointer om man inte laddat en bild först. fixa?! + + Position nyPlatsPosition = mouseLyss.getNyPlatsPosition(); // Position ska Ă€ndras till dĂ€r anvĂ€ndaren markerar pĂ„ kartan. + + + /* ----------------------------------------NEDAN FUNKAR SO FAR--------------------------------------*/ + + JPanel namedPlacePanel= new JPanel(); + JPanel describedPlacePanel = new JPanel(); + + JPanel rad1= new JPanel(); + JPanel rad2 = new JPanel(); + + JTextField textField = new JTextField(10); + JTextField describeField = new JTextField(10); + + rad1.add(new JLabel("Platsens namn:")); + rad1.add(textField); + + rad2.add(new JLabel("Description:")); + rad2.add(describeField); + + String name = textField.getText(); + String description = describeField.getText(); + + + if(choosePlaceType.getSelectedItem().equals(("NamedPlace"))){ + namedPlacePanel.setLayout(new BoxLayout(namedPlacePanel, BoxLayout.Y_AXIS)); + namedPlacePanel.add(rad1); + + String ifyllt = JOptionPane.showInputDialog(null, namedPlacePanel, "New Named Place", JOptionPane.QUESTION_MESSAGE); // den hĂ€r ska bli frĂ„geformulĂ€ret + + if(ifyllt != null){ + nyPlats = new NamedPlace(name , nyPlatsPosition); // Denna mĂ„ste sparas i en samling. + System.out.println((String)choosePlaceType.getSelectedItem()); //För att visa att det gĂ„r! + }else{ + return; + } + + + + + }else if(choosePlaceType.getSelectedItem().equals("DescribedPlace")){ + + describedPlacePanel.setLayout(new BoxLayout(describedPlacePanel, BoxLayout.Y_AXIS)); + describedPlacePanel.add(rad1); + describedPlacePanel.add(rad2); + + JOptionPane.showMessageDialog(null, describedPlacePanel , "New Described Place", JOptionPane.QUESTION_MESSAGE); //FrĂ„geformulĂ€ret + + + + nyPlats = new DescribedPlace(name, nyPlatsPosition, description); + + System.out.println((String)choosePlaceType.getSelectedItem()); ////För att visa att det gĂ„r! + } + + if(!(categoryList.isSelectionEmpty())){ + String color = (String)categoryList.getSelectedValue(); + + for(TravelCategory c : TravelCategory.values()){ + + if(color.equalsIgnoreCase(c.name())){ + colorToUse = c; + nyPlats.setCategory(colorToUse); + System.out.println("DEN NYA PLATSEN HAR NU FÅTT EN KATEGORI!!!"); + } + } + } + } + } + + + class NewMapLyss implements ActionListener{ @@ -195,7 +308,6 @@ public void windowClosing(WindowEvent wev){ public static void main(String []args){ ProgramTest program = new ProgramTest(); - } } diff --git a/src/places/TravelCategory.java b/src/places/TravelCategory.java index 77c2179..80a0f89 100644 --- a/src/places/TravelCategory.java +++ b/src/places/TravelCategory.java @@ -1,4 +1,17 @@ package places; -public enum TravelCategory {BUS,TRAIN,SUBWAY,NO_CATEGORY} +public enum TravelCategory { + BUS ("Bus"), + TRAIN ("Train"), + SUBWAY ("Subway"); + //NO_CATEGORY + + private String category; + + + private TravelCategory(String category){ + this.category = category; + } + +} From e4fdcf01752177299490de22b44868dcec61c72d Mon Sep 17 00:00:00 2001 From: Johan Date: Tue, 26 Apr 2016 15:59:23 +0200 Subject: [PATCH 09/28] CROSSHAIR = fixat --- src/places/Position.java | 22 ++++++++++++++++++++++ src/places/ProgramTest.java | 22 ++++++++++++++++++---- 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/src/places/Position.java b/src/places/Position.java index d4cffd9..70967d2 100644 --- a/src/places/Position.java +++ b/src/places/Position.java @@ -13,7 +13,29 @@ public Position(int x, int y){ public int getX(){ return positionX; } + public int getY(){ return positionY; } + + @Override + public boolean equals(Object o){ // till för jĂ€mförelser i hashMap + + if(o instanceof Position){ + + Position comparePos=(Position)o; + + if(comparePos.getX() == positionX && comparePos.getY() == positionY){ + return true; + } + } + + return false; + } + + + @Override + public int hashCode(){ //// till för jĂ€mförelser i hashMap + return positionX * 31 + positionY; + } } diff --git a/src/places/ProgramTest.java b/src/places/ProgramTest.java index d028a7c..74edc16 100644 --- a/src/places/ProgramTest.java +++ b/src/places/ProgramTest.java @@ -135,13 +135,27 @@ public void mouseClicked(MouseEvent mev){ nyPlatsPosition = new Position(mev.getX(), mev.getY()); // STÄLLA TILLBAKA MUSPEKAREN!? - } - + } public Position getNyPlatsPosition(){ return nyPlatsPosition; } + + private boolean mouse = false; + int hoverX; + int hoverY; + + + public void mouseEntered(MouseEvent mev){ + hoverX = mev.getX(); + hoverY = mev.getY(); + Cursor c = Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR); + + if(mapScrollbar.contains(hoverX,hoverY)) + mapScrollbar.setCursor(c); + } } + class ChoosePlaceTypeLyss implements ActionListener{ TravelCategory colorToUse; @@ -151,9 +165,9 @@ class ChoosePlaceTypeLyss implements ActionListener{ public void actionPerformed(ActionEvent ave){ //ÄNDRA TILL CROSSHAIR Vid click pĂ„ kartan, get position och anvĂ€nd i skapandet av en plats. - setCursor(Cursor.CROSSHAIR_CURSOR); - mapScrollbar.addMouseListener(mouseLyss); //SKA DEN ADDAS TILL MAPSCROLLBAR ELLER TILL BILDEN? --> Ger Nullpointer om man inte laddat en bild först. fixa?! + mapScrollbar.addMouseListener(mouseLyss); //SKA DEN ADDAS TILL MAPSCROLLBAR ELLER TILL BILDEN? --> Ger Nullpointer om man inte laddat en bild först. fixa?! + mapScrollbar.addMouseMotionListener(mouseLyss); Position nyPlatsPosition = mouseLyss.getNyPlatsPosition(); // Position ska Ă€ndras till dĂ€r anvĂ€ndaren markerar pĂ„ kartan. From 1c3cd65470d42d003f0e0658bd464e75f0a9e553 Mon Sep 17 00:00:00 2001 From: Johan Date: Tue, 26 Apr 2016 22:19:13 +0200 Subject: [PATCH 10/28] =?UTF-8?q?Lost=20p=C3=A5=20mapScrollbar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/places/DescribedPlace.java | 6 ++ src/places/NamedPlace.java | 6 ++ src/places/Place.java | 32 ++++++++- src/places/ProgramTest.java | 126 +++++++++++++++++++-------------- 4 files changed, 112 insertions(+), 58 deletions(-) diff --git a/src/places/DescribedPlace.java b/src/places/DescribedPlace.java index 59a13ac..306eb35 100644 --- a/src/places/DescribedPlace.java +++ b/src/places/DescribedPlace.java @@ -1,5 +1,7 @@ package places; +import java.awt.Graphics; + public class DescribedPlace extends Place{ private String description; @@ -15,4 +17,8 @@ public DescribedPlace(String name, Position position, TravelCategory color, Stri this.description = description; } + + protected void paintPlaceInfo(Graphics g){ + + } } diff --git a/src/places/NamedPlace.java b/src/places/NamedPlace.java index 499481a..d68bafc 100644 --- a/src/places/NamedPlace.java +++ b/src/places/NamedPlace.java @@ -1,5 +1,7 @@ package places; +import java.awt.Graphics; + public class NamedPlace extends Place{ public NamedPlace(String name, Position position){ @@ -10,4 +12,8 @@ public NamedPlace(String name, Position position, TravelCategory color){ // Om super(name, position, color); } + + protected void paintPlaceInfo(Graphics g){ + + } } diff --git a/src/places/Place.java b/src/places/Place.java index d2c9d5f..d249c66 100644 --- a/src/places/Place.java +++ b/src/places/Place.java @@ -1,21 +1,26 @@ package places; -import javax.swing.JComponent; // kanske ladda allt? alltsĂ„ -> * +import javax.swing.*; // kanske ladda allt? alltsĂ„ -> * + +import places.ProgramTest.ImageArea; +import places.ProgramTest.MouseLyss; + //import java.awt.event.*; Place skulle kunna ---> implements ActionListener----> prövar att addera detta till program klassen istĂ€llet. +import java.awt.*; public abstract class Place extends JComponent { private String name; private Position position; private TravelCategory color;// kategori - buss, tĂ„g, t-bana - private boolean showInfo; + private boolean showInfo = false; //private boolean visible; // behövs ej? JComponent -> setVisible() private boolean marked; public Place(String name, Position position){ this.name = name; this.position = position; - setVisible(true); + } public Place(String name, Position position, TravelCategory color){ this(name, position); @@ -53,5 +58,26 @@ public String toString(){ return color.toString() + position + name ; // först + PLATSTYP + sist + BESKRIVNING } + @Override + protected void paintComponent(Graphics g){ + super.paintComponent(g); + + g.fillRect(250,250,250,250); // EX mĂ„lning... ska sen bli en polygon --> trekant. + g.setColor(Color.BLACK); +// if(showInfo){ +// paintPlaceInfo(g); +// }else{ +// paintPlace(g); +// } + } + + private void paintPlace(Graphics g) { + g.fillRect(250,250,250,250); // EX mĂ„lning... ska sen bli en polygon --> trekant. + g.setColor(Color.BLACK); + + } + protected abstract void paintPlaceInfo(Graphics g); + // OBS! mĂ„ste va abstract och definieras i varje given Place-child + } diff --git a/src/places/ProgramTest.java b/src/places/ProgramTest.java index 74edc16..46cb697 100644 --- a/src/places/ProgramTest.java +++ b/src/places/ProgramTest.java @@ -12,9 +12,13 @@ public class ProgramTest extends JFrame{ private boolean nyInfo = true; // bestĂ€mmer stĂ€ng eller ej. private String longName; private File valdFil; + public MouseLyss mouseLyss; + private ImageIcon image; + private ImageArea imageArea; - - + private Registry register = new Registry(); + + private JMenuBar menu = new JMenuBar(); private JMenu archive = new JMenu("Archive"); // new Map, Load Places, Save, Exit JMenuItem newMap = new JMenuItem("New Map"); @@ -127,20 +131,49 @@ private void avsluta(){ /*--------------------------------------------------------------- CLASSES ----------------------------------------------------------------------------------*/ - class MouseLyss extends MouseAdapter{ - private Position nyPlatsPosition; + class ImageArea extends JPanel{ + + ImageArea(){ + image = new ImageIcon(longName); + setLayout(null); + } + + protected void paintComponent(Graphics g){ + super.paintComponent(g); + g.drawImage(image.getImage(), 0, 0, this); + + } + } + + + class MouseClicked extends MouseAdapter{ + private Position nyPlatsPosition; + private int X; + private int Y; + public void mouseClicked(MouseEvent mev){ nyPlatsPosition = new Position(mev.getX(), mev.getY()); - + X= mev.getX(); + Y= mev.getY(); // STÄLLA TILLBAKA MUSPEKAREN!? } + public Position getNyPlatsPosition(){ return nyPlatsPosition; } + public int getX(){ + return X; + } + public int getY(){ + return Y; + } + } + + class MouseLyss extends MouseAdapter{ + - private boolean mouse = false; int hoverX; int hoverY; @@ -150,25 +183,25 @@ public void mouseEntered(MouseEvent mev){ hoverY = mev.getY(); Cursor c = Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR); - if(mapScrollbar.contains(hoverX,hoverY)) + if(mapScrollbar.contains(hoverX,hoverY)){ mapScrollbar.setCursor(c); + + } } } class ChoosePlaceTypeLyss implements ActionListener{ - TravelCategory colorToUse; Place nyPlats; - MouseLyss mouseLyss = new MouseLyss(); public void actionPerformed(ActionEvent ave){ - //ÄNDRA TILL CROSSHAIR Vid click pĂ„ kartan, get position och anvĂ€nd i skapandet av en plats. - - + TravelCategory colorToUse; + mouseLyss = new MouseLyss(); + MouseClicked posLyss = new MouseClicked(); mapScrollbar.addMouseListener(mouseLyss); //SKA DEN ADDAS TILL MAPSCROLLBAR ELLER TILL BILDEN? --> Ger Nullpointer om man inte laddat en bild först. fixa?! - mapScrollbar.addMouseMotionListener(mouseLyss); - Position nyPlatsPosition = mouseLyss.getNyPlatsPosition(); // Position ska Ă€ndras till dĂ€r anvĂ€ndaren markerar pĂ„ kartan. + //Position nyPlatsPosition = mouseLyss.getNyPlatsPosition(); // Position ska Ă€ndras till dĂ€r anvĂ€ndaren markerar pĂ„ kartan. + /* ----------------------------------------NEDAN FUNKAR SO FAR--------------------------------------*/ @@ -183,7 +216,6 @@ public void actionPerformed(ActionEvent ave){ JTextField describeField = new JTextField(10); rad1.add(new JLabel("Platsens namn:")); - rad1.add(textField); rad2.add(new JLabel("Description:")); rad2.add(describeField); @@ -198,10 +230,24 @@ public void actionPerformed(ActionEvent ave){ String ifyllt = JOptionPane.showInputDialog(null, namedPlacePanel, "New Named Place", JOptionPane.QUESTION_MESSAGE); // den hĂ€r ska bli frĂ„geformulĂ€ret - if(ifyllt != null){ - nyPlats = new NamedPlace(name , nyPlatsPosition); // Denna mĂ„ste sparas i en samling. - System.out.println((String)choosePlaceType.getSelectedItem()); //För att visa att det gĂ„r! + if(ifyllt != null && ifyllt.length()>0){ + System.out.println(ifyllt); //TEST ---> funkar + mapScrollbar.addMouseListener(posLyss); // spelar ingen roll om den sĂ€tts pĂ„ mapScrollbar eller imageArea.. fĂ„r inte till det. + + Position nyPlatsPosition = new Position(posLyss.getX(), posLyss.getY()); // börjar bli förvirrad, men borde lĂ€sa av att jag klickar innan plats skapas! + + System.out.println(nyPlatsPosition.getX()); // ---> NULL + System.out.println(posLyss.getNyPlatsPosition()); // ---> NULL + + if(nyPlatsPosition != null){ + nyPlats = new NamedPlace(name , nyPlatsPosition); // Denna mĂ„ste sparas i en samling. + register.addPlace(nyPlats); // VÄNTA NU, DEN ADDERAR PLATSEN INNAN JAG HAR KLICKAT! + + + System.out.println((String)choosePlaceType.getSelectedItem()); //För att visa att det gĂ„r! + } }else{ + System.out.println("Tom strĂ€ng"); // TEST ---> Funkar return; } @@ -209,7 +255,7 @@ public void actionPerformed(ActionEvent ave){ }else if(choosePlaceType.getSelectedItem().equals("DescribedPlace")){ - + Position nyPlatsPosition = posLyss.getNyPlatsPosition(); describedPlacePanel.setLayout(new BoxLayout(describedPlacePanel, BoxLayout.Y_AXIS)); describedPlacePanel.add(rad1); describedPlacePanel.add(rad2); @@ -242,9 +288,6 @@ public void actionPerformed(ActionEvent ave){ class NewMapLyss implements ActionListener{ - - ImageIcon imageLabel; - public void actionPerformed(ActionEvent ave){ int ok = JFileChooser.APPROVE_OPTION; int jfcSvar = jfc.showOpenDialog(newMap); // för att kunna ladda filer @@ -256,16 +299,13 @@ public void actionPerformed(ActionEvent ave){ valdFil = jfc.getSelectedFile(); longName = valdFil.getAbsolutePath(); + imageArea = new ImageArea(); + mapScrollbar = new JScrollPane(new JLabel(image));//------------------------------- Har lyft ut ImageArea till instansvariabel för att kunna lĂ€gga PlaceGUI pĂ„ den. + // nu syns inte/ funkar inte scrollbaren... det gör den pĂ„ JLabel varianten av en bild. - imageLabel = new ImageIcon(longName); - mapScrollbar = new JScrollPane(new JLabel(imageLabel)); // OK, nu funkar det - centerPanel.add(mapScrollbar); //Men vad har jag gjort? :/ ----> ImageLabel, klassen behövs inte alls nu! - centerPanel.validate(); - mapScrollbar.validate(); - - -// getContentPane().add(mapScrollbar); -// getContentPane().validate(); ---> FUNKAR LIKA DÅLIGT.. + centerPanel.add(mapScrollbar); + centerPanel.validate(); // NödvĂ€ndig? + mapScrollbar.validate(); // NödvĂ€ndig? } } } @@ -296,30 +336,6 @@ public void windowClosing(WindowEvent wev){ } } - -// class ImageLabel extends JPanel{ // pĂ„verkar ingenting om den extendar JPanel, JLabel lr JComponent -// -// private ImageIcon bakgrundsbild; -// -// public ImageLabel(String longName){ -// -// setLayout(null); -// ProgramTest.this.longName = longName; -// bakgrundsbild = new ImageIcon(longName); -// System.out.println(longName); -// //super.setBounds(getX(), getY(), bakgrundsbild.getIconWidth(),bakgrundsbild.getIconHeight()); // funkar inte utan vidare implementering.. -// } -// -// -// -// protected void paintComponent(Graphics g){ -// super.paintComponent(g); -// g.drawImage(bakgrundsbild.getImage(), 0, 0, this); // ta bort getwidth + getHeight för bildensnaturliga storlek -// } -// } - - - public static void main(String []args){ ProgramTest program = new ProgramTest(); From 50c81ea83e75e1b5a33c750b95dc48dc1073642c Mon Sep 17 00:00:00 2001 From: Johan Date: Wed, 27 Apr 2016 20:11:45 +0200 Subject: [PATCH 11/28] =?UTF-8?q?F=C3=A5r=20inte=20till=20grafisk=20implem?= =?UTF-8?q?entation=20av=20plats?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/places/NamedPlace.java | 11 +- src/places/Place.java | 27 ++-- src/places/ProgramTest.java | 237 ++++++++++++++++++------------------ 3 files changed, 143 insertions(+), 132 deletions(-) diff --git a/src/places/NamedPlace.java b/src/places/NamedPlace.java index d68bafc..44f128c 100644 --- a/src/places/NamedPlace.java +++ b/src/places/NamedPlace.java @@ -1,5 +1,6 @@ package places; +import java.awt.Color; import java.awt.Graphics; public class NamedPlace extends Place{ @@ -13,7 +14,15 @@ public NamedPlace(String name, Position position, TravelCategory color){ // Om } - protected void paintPlaceInfo(Graphics g){ +// private void paintPlace(Graphics g) { +// super.paintComponent(g); +// +// +// +// } + @Override + protected void paintPlaceInfo(Graphics g) { + // TODO Auto-generated method stub } } diff --git a/src/places/Place.java b/src/places/Place.java index d249c66..531a581 100644 --- a/src/places/Place.java +++ b/src/places/Place.java @@ -14,7 +14,7 @@ public abstract class Place extends JComponent { private TravelCategory color;// kategori - buss, tĂ„g, t-bana private boolean showInfo = false; //private boolean visible; // behövs ej? JComponent -> setVisible() - private boolean marked; + private boolean marked = false; public Place(String name, Position position){ this.name = name; @@ -42,7 +42,11 @@ public TravelCategory getColor(){ } public void setCategory(TravelCategory color){ + try{ this.color = color; + }catch(NullPointerException e){ + // Inget problem, dĂ„ Place kan va kategorilös! + } } @@ -55,26 +59,23 @@ public boolean getMarked(){ public String toString(){ //if () // kolla child - return color.toString() + position + name ; // först + PLATSTYP + sist + BESKRIVNING + return position + name ; // först + PLATSTYP + sist + BESKRIVNING } @Override protected void paintComponent(Graphics g){ - super.paintComponent(g); - - g.fillRect(250,250,250,250); // EX mĂ„lning... ska sen bli en polygon --> trekant. - g.setColor(Color.BLACK); -// if(showInfo){ -// paintPlaceInfo(g); -// }else{ -// paintPlace(g); -// } + if(showInfo){ + paintPlaceInfo(g); + }else{ + paintPlace(g); + } } private void paintPlace(Graphics g) { - g.fillRect(250,250,250,250); // EX mĂ„lning... ska sen bli en polygon --> trekant. - g.setColor(Color.BLACK); + super.paintComponent(g); + g.fillRect(position.getX(),position.getY(),250,250); // EX mĂ„lning... ska sen bli en polygon --> trekant. + g.setColor(Color.BLACK); } protected abstract void paintPlaceInfo(Graphics g); // OBS! mĂ„ste va abstract och definieras i varje given Place-child diff --git a/src/places/ProgramTest.java b/src/places/ProgramTest.java index 46cb697..63ce1d1 100644 --- a/src/places/ProgramTest.java +++ b/src/places/ProgramTest.java @@ -13,8 +13,10 @@ public class ProgramTest extends JFrame{ private String longName; private File valdFil; public MouseLyss mouseLyss; - private ImageIcon image; private ImageArea imageArea; + private ImageIcon image; + private String name; + private String description; private Registry register = new Registry(); @@ -113,6 +115,67 @@ public ProgramTest(){ } /*------------------------------------------------------------- METHODS -----------------------------------------------------------------------------------*/ + private TravelCategory choosePlaceCategory(){ + + if(!(categoryList.isSelectionEmpty())){ + String color = (String)categoryList.getSelectedValue(); + + for(TravelCategory c : TravelCategory.values()){ + if(color.equalsIgnoreCase(c.name())){ + return c; + } + } + } + return null; + } + + private String createNamedPlace(){ + JPanel namedPlacePanel= new JPanel(); + + namedPlacePanel.setLayout(new BoxLayout(namedPlacePanel, BoxLayout.Y_AXIS)); + namedPlacePanel.add(new JLabel("Platsens namn:")); + + + String ifyllt = JOptionPane.showInputDialog(null, namedPlacePanel, "New Named Place", JOptionPane.QUESTION_MESSAGE); + if(ifyllt.length()> 0){ + return ifyllt; + } + return null; + } + + private String[] createDescribedPlace(){ + JPanel describedPlacePanel = new JPanel(); + + JPanel rad1= new JPanel(); + JPanel rad2 = new JPanel(); + + JTextField nameField = new JTextField(10); + JTextField describeField = new JTextField(10); + + rad1.add(new JLabel("Platsens namn:")); + rad1.add(nameField); + + rad2.add(new JLabel("Description:")); + rad2.add(describeField); + + describedPlacePanel.setLayout(new BoxLayout(describedPlacePanel, BoxLayout.Y_AXIS)); + describedPlacePanel.add(rad1); + describedPlacePanel.add(rad2); + + if(JOptionPane.showConfirmDialog(null, describedPlacePanel, "New Described Place", JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION){ + + + String name = nameField.getText(); + String description = describeField.getText(); + + if(name.length()>0 && description.length()>0){ + String[] nameAndDescription = {name, description}; + return nameAndDescription; + } + } + return null; + } + private void avsluta(){ int ok = JOptionPane.OK_OPTION; @@ -133,8 +196,6 @@ private void avsluta(){ class ImageArea extends JPanel{ - - ImageArea(){ image = new ImageIcon(longName); setLayout(null); @@ -143,142 +204,83 @@ class ImageArea extends JPanel{ protected void paintComponent(Graphics g){ super.paintComponent(g); g.drawImage(image.getImage(), 0, 0, this); - } } - class MouseClicked extends MouseAdapter{ - private Position nyPlatsPosition; - private int X; - private int Y; - - public void mouseClicked(MouseEvent mev){ - nyPlatsPosition = new Position(mev.getX(), mev.getY()); - X= mev.getX(); - Y= mev.getY(); - // STÄLLA TILLBAKA MUSPEKAREN!? - } - - public Position getNyPlatsPosition(){ - return nyPlatsPosition; - } - public int getX(){ - return X; - } - public int getY(){ - return Y; - } - } + class MouseLyss extends MouseAdapter{ - - - int hoverX; - int hoverY; - + int clickX; + int clickY; + Position pos; + Cursor c; public void mouseEntered(MouseEvent mev){ - hoverX = mev.getX(); - hoverY = mev.getY(); - Cursor c = Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR); - - if(mapScrollbar.contains(hoverX,hoverY)){ + c = Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR); mapScrollbar.setCursor(c); + } + + public void mouseClicked(MouseEvent mev){ + Place nyPlats; + + if(name != null){ + System.out.println(name); + + clickX = mev.getX(); + clickY = mev.getY(); + Position nyPlatsPosition = new Position(clickX, clickY); + System.out.println(mev.getX()); + + + if(nyPlatsPosition != null){ + nyPlats = new NamedPlace(name , nyPlatsPosition); + register.addPlace(nyPlats); + imageArea.add(nyPlats, imageArea); + + System.out.println(nyPlats); + System.out.println((String)choosePlaceType.getSelectedItem()); //För att visa att det gĂ„r! + } + }else{ + System.out.println("Tom strĂ€ng"); // TEST ---> Funkar + return; } } + + public void mouseExited(MouseEvent mev){ + c = Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR); + mapScrollbar.setCursor(c); + } + + public Position getClick(){ + pos = new Position (clickX, clickY); + return pos; + } } class ChoosePlaceTypeLyss implements ActionListener{ - Place nyPlats; - public void actionPerformed(ActionEvent ave){ TravelCategory colorToUse; mouseLyss = new MouseLyss(); - MouseClicked posLyss = new MouseClicked(); - mapScrollbar.addMouseListener(mouseLyss); //SKA DEN ADDAS TILL MAPSCROLLBAR ELLER TILL BILDEN? --> Ger Nullpointer om man inte laddat en bild först. fixa?! - //Position nyPlatsPosition = mouseLyss.getNyPlatsPosition(); // Position ska Ă€ndras till dĂ€r anvĂ€ndaren markerar pĂ„ kartan. - - - + imageArea.addMouseListener(mouseLyss); /* ----------------------------------------NEDAN FUNKAR SO FAR--------------------------------------*/ - JPanel namedPlacePanel= new JPanel(); - JPanel describedPlacePanel = new JPanel(); - - JPanel rad1= new JPanel(); - JPanel rad2 = new JPanel(); - - JTextField textField = new JTextField(10); - JTextField describeField = new JTextField(10); - - rad1.add(new JLabel("Platsens namn:")); - - rad2.add(new JLabel("Description:")); - rad2.add(describeField); - - String name = textField.getText(); - String description = describeField.getText(); - if(choosePlaceType.getSelectedItem().equals(("NamedPlace"))){ - namedPlacePanel.setLayout(new BoxLayout(namedPlacePanel, BoxLayout.Y_AXIS)); - namedPlacePanel.add(rad1); - - String ifyllt = JOptionPane.showInputDialog(null, namedPlacePanel, "New Named Place", JOptionPane.QUESTION_MESSAGE); // den hĂ€r ska bli frĂ„geformulĂ€ret - - if(ifyllt != null && ifyllt.length()>0){ - System.out.println(ifyllt); //TEST ---> funkar - mapScrollbar.addMouseListener(posLyss); // spelar ingen roll om den sĂ€tts pĂ„ mapScrollbar eller imageArea.. fĂ„r inte till det. - - Position nyPlatsPosition = new Position(posLyss.getX(), posLyss.getY()); // börjar bli förvirrad, men borde lĂ€sa av att jag klickar innan plats skapas! - - System.out.println(nyPlatsPosition.getX()); // ---> NULL - System.out.println(posLyss.getNyPlatsPosition()); // ---> NULL - - if(nyPlatsPosition != null){ - nyPlats = new NamedPlace(name , nyPlatsPosition); // Denna mĂ„ste sparas i en samling. - register.addPlace(nyPlats); // VÄNTA NU, DEN ADDERAR PLATSEN INNAN JAG HAR KLICKAT! - - - System.out.println((String)choosePlaceType.getSelectedItem()); //För att visa att det gĂ„r! - } - }else{ - System.out.println("Tom strĂ€ng"); // TEST ---> Funkar - return; - } - - - - - }else if(choosePlaceType.getSelectedItem().equals("DescribedPlace")){ - Position nyPlatsPosition = posLyss.getNyPlatsPosition(); - describedPlacePanel.setLayout(new BoxLayout(describedPlacePanel, BoxLayout.Y_AXIS)); - describedPlacePanel.add(rad1); - describedPlacePanel.add(rad2); - - JOptionPane.showMessageDialog(null, describedPlacePanel , "New Described Place", JOptionPane.QUESTION_MESSAGE); //FrĂ„geformulĂ€ret - - - - nyPlats = new DescribedPlace(name, nyPlatsPosition, description); - - System.out.println((String)choosePlaceType.getSelectedItem()); ////För att visa att det gĂ„r! + name = createNamedPlace(); } - - if(!(categoryList.isSelectionEmpty())){ - String color = (String)categoryList.getSelectedValue(); - - for(TravelCategory c : TravelCategory.values()){ + else if(choosePlaceType.getSelectedItem().equals("DescribedPlace")){ + String[] nameAndDescription = createDescribedPlace(); + if(nameAndDescription != null && nameAndDescription.length>0){ + name = nameAndDescription[0]; + description = nameAndDescription[1]; - if(color.equalsIgnoreCase(c.name())){ - colorToUse = c; - nyPlats.setCategory(colorToUse); - System.out.println("DEN NYA PLATSEN HAR NU FÅTT EN KATEGORI!!!"); - } + System.out.println((String)choosePlaceType.getSelectedItem()); ////För att visa att det gĂ„r! + System.out.println(name); + System.out.println(description); } } } @@ -300,12 +302,11 @@ public void actionPerformed(ActionEvent ave){ valdFil = jfc.getSelectedFile(); longName = valdFil.getAbsolutePath(); imageArea = new ImageArea(); - mapScrollbar = new JScrollPane(new JLabel(image));//------------------------------- Har lyft ut ImageArea till instansvariabel för att kunna lĂ€gga PlaceGUI pĂ„ den. - // nu syns inte/ funkar inte scrollbaren... det gör den pĂ„ JLabel varianten av en bild. - + imageArea.setSize(image.getIconWidth(),image.getIconHeight()); + imageArea.setPreferredSize(new Dimension(image.getIconWidth(),image.getIconHeight())); //kan skapa platser utanför bilden.. :( + mapScrollbar = new JScrollPane(imageArea); centerPanel.add(mapScrollbar); - centerPanel.validate(); // NödvĂ€ndig? - mapScrollbar.validate(); // NödvĂ€ndig? + centerPanel.validate(); } } } From ff6132f94d867d445fc597dd906362ff8cbad04a Mon Sep 17 00:00:00 2001 From: Johan Date: Wed, 27 Apr 2016 20:47:58 +0200 Subject: [PATCH 12/28] Nu kan den rita! :) --- src/places/DescribedPlace.java | 10 +++++----- src/places/NamedPlace.java | 12 +++--------- src/places/Place.java | 21 +++++++++++++-------- src/places/ProgramTest.java | 6 +++++- 4 files changed, 26 insertions(+), 23 deletions(-) diff --git a/src/places/DescribedPlace.java b/src/places/DescribedPlace.java index 306eb35..3e76148 100644 --- a/src/places/DescribedPlace.java +++ b/src/places/DescribedPlace.java @@ -12,11 +12,11 @@ public DescribedPlace(String name, Position position, String description){ } - public DescribedPlace(String name, Position position, TravelCategory color, String description){ // Om vi ska sĂ€tta kategori via Place, behövs inte denna konstruktor..!? - super(name, position, color); - this.description = description; - - } +// public DescribedPlace(String name, Position position, TravelCategory color, String description){ // Om vi ska sĂ€tta kategori via Place, behövs inte denna konstruktor..!? +// super(name, position, color); +// this.description = description; +// +// } protected void paintPlaceInfo(Graphics g){ diff --git a/src/places/NamedPlace.java b/src/places/NamedPlace.java index 44f128c..202ec0b 100644 --- a/src/places/NamedPlace.java +++ b/src/places/NamedPlace.java @@ -9,17 +9,11 @@ public NamedPlace(String name, Position position){ super(name, position); } - public NamedPlace(String name, Position position, TravelCategory color){ // Om vi ska sĂ€tta kategori via Place, behövs inte denna konstruktor..!? - super(name, position, color); - - } - -// private void paintPlace(Graphics g) { -// super.paintComponent(g); -// -// +// public NamedPlace(String name, Position position, TravelCategory color){ // Om vi ska sĂ€tta kategori via Place, behövs inte denna konstruktor..!? +// super(name, position, color); // // } + @Override protected void paintPlaceInfo(Graphics g) { // TODO Auto-generated method stub diff --git a/src/places/Place.java b/src/places/Place.java index 531a581..45541ca 100644 --- a/src/places/Place.java +++ b/src/places/Place.java @@ -13,20 +13,24 @@ public abstract class Place extends JComponent { private Position position; private TravelCategory color;// kategori - buss, tĂ„g, t-bana private boolean showInfo = false; - //private boolean visible; // behövs ej? JComponent -> setVisible() private boolean marked = false; public Place(String name, Position position){ this.name = name; this.position = position; setVisible(true); + setBounds(position.getX(), position.getY(), 250, 250); + setPreferredSize (new Dimension(250,250)); + setMaximumSize (new Dimension(250,250)); + setMinimumSize (new Dimension(250,250)); } - public Place(String name, Position position, TravelCategory color){ - this(name, position); - this.color = color; - setVisible(true); - } +// public Place(String name, Position position, TravelCategory color){ +// this(name, position); +// this.color = color; +// setVisible(true); +// +// } public String getName(){ return name; @@ -73,9 +77,10 @@ protected void paintComponent(Graphics g){ private void paintPlace(Graphics g) { super.paintComponent(g); - - g.fillRect(position.getX(),position.getY(),250,250); // EX mĂ„lning... ska sen bli en polygon --> trekant. g.setColor(Color.BLACK); + g.fillRect(position.getX(),position.getY(),250,250); // EX mĂ„lning... ska sen bli en polygon --> trekant. + + } protected abstract void paintPlaceInfo(Graphics g); // OBS! mĂ„ste va abstract och definieras i varje given Place-child diff --git a/src/places/ProgramTest.java b/src/places/ProgramTest.java index 63ce1d1..a0c1545 100644 --- a/src/places/ProgramTest.java +++ b/src/places/ProgramTest.java @@ -237,7 +237,11 @@ public void mouseClicked(MouseEvent mev){ if(nyPlatsPosition != null){ nyPlats = new NamedPlace(name , nyPlatsPosition); register.addPlace(nyPlats); - imageArea.add(nyPlats, imageArea); + imageArea.add(nyPlats); //Kanske till mapScrollbar? + +// nyPlats.repaint(); +// imageArea.validate(); +// nyPlats.validate(); System.out.println(nyPlats); System.out.println((String)choosePlaceType.getSelectedItem()); //För att visa att det gĂ„r! From e91562377a848ef21bdeb67ac01c66824925389d Mon Sep 17 00:00:00 2001 From: Johan Date: Wed, 27 Apr 2016 21:29:24 +0200 Subject: [PATCH 13/28] =?UTF-8?q?F=C3=B6rsta=20f=C3=B6rs=C3=B6k:=20m=C3=A5?= =?UTF-8?q?lad=20trekant.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/places/Place.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/places/Place.java b/src/places/Place.java index 45541ca..62eb1ea 100644 --- a/src/places/Place.java +++ b/src/places/Place.java @@ -14,6 +14,8 @@ public abstract class Place extends JComponent { private TravelCategory color;// kategori - buss, tĂ„g, t-bana private boolean showInfo = false; private boolean marked = false; + private int[] xLed = {0,100,100}; + private int[] yLed = {0,0,100}; public Place(String name, Position position){ this.name = name; @@ -78,7 +80,11 @@ protected void paintComponent(Graphics g){ private void paintPlace(Graphics g) { super.paintComponent(g); g.setColor(Color.BLACK); - g.fillRect(position.getX(),position.getY(),250,250); // EX mĂ„lning... ska sen bli en polygon --> trekant. +// g.fillRect(position.getX(),position.getY(),250,250); Denna gör rektangel. // EX mĂ„lning... ska sen bli en polygon --> trekant. + g.drawPolygon(xLed, yLed, 3); +// int[] xLed = {position.getX() - 25,position.getX() + 25,position.getX()}; +// int[] yLed = {position.getY() -25 ,position.getY() -25 ,position.getY()}; ----> Experiment! +// g.drawPolygon(xLed, yLed, 3); } From 1123c6b4743e60932db4d258a15b0ea99634e86c Mon Sep 17 00:00:00 2001 From: Johan Date: Wed, 27 Apr 2016 21:33:09 +0200 Subject: [PATCH 14/28] =?UTF-8?q?Trekant=20p=C3=A5=20spets?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/places/Place.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/places/Place.java b/src/places/Place.java index 62eb1ea..ebe3953 100644 --- a/src/places/Place.java +++ b/src/places/Place.java @@ -14,8 +14,8 @@ public abstract class Place extends JComponent { private TravelCategory color;// kategori - buss, tĂ„g, t-bana private boolean showInfo = false; private boolean marked = false; - private int[] xLed = {0,100,100}; - private int[] yLed = {0,0,100}; + private int[] xLed = {0,50,100}; + private int[] yLed = {0,100,0}; public Place(String name, Position position){ this.name = name; From d402c6444c7f63532c22784a8fb1e512550d1b84 Mon Sep 17 00:00:00 2001 From: Johan Date: Thu, 28 Apr 2016 15:01:51 +0200 Subject: [PATCH 15/28] =?UTF-8?q?metod=20polygonber=C3=A4kning?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/places/Place.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/places/Place.java b/src/places/Place.java index ebe3953..1aab111 100644 --- a/src/places/Place.java +++ b/src/places/Place.java @@ -1,8 +1,8 @@ package places; import javax.swing.*; // kanske ladda allt? alltsĂ„ -> * -import places.ProgramTest.ImageArea; -import places.ProgramTest.MouseLyss; +//import places.ProgramTest.ImageArea; +//import places.ProgramTest.MouseLyss; //import java.awt.event.*; Place skulle kunna ---> implements ActionListener----> prövar att addera detta till program klassen istĂ€llet. import java.awt.*; @@ -14,8 +14,8 @@ public abstract class Place extends JComponent { private TravelCategory color;// kategori - buss, tĂ„g, t-bana private boolean showInfo = false; private boolean marked = false; - private int[] xLed = {0,50,100}; - private int[] yLed = {0,100,0}; + private int[] xLed = {0,10,21}; + private int[] yLed = {0,21,0}; public Place(String name, Position position){ this.name = name; @@ -34,6 +34,14 @@ public Place(String name, Position position){ // // } + private void calculatePolygon(Position pos){ //Ska anvĂ€ndas för slutgiltiga polygonen... + int posX = pos.getX(); + int posY = pos.getY(); + int[] xAxis = {posX -10, posX, posX +10}; + int[] yAxis ={posY -10, posY, posY +10}; + + } + public String getName(){ return name; } // dessa getMetoder borde inte behövas dĂ„ den Ă€rver frĂ„n JComponent och alltsĂ„ @@ -81,7 +89,7 @@ private void paintPlace(Graphics g) { super.paintComponent(g); g.setColor(Color.BLACK); // g.fillRect(position.getX(),position.getY(),250,250); Denna gör rektangel. // EX mĂ„lning... ska sen bli en polygon --> trekant. - g.drawPolygon(xLed, yLed, 3); + g.fillPolygon(xLed, yLed, 3); // int[] xLed = {position.getX() - 25,position.getX() + 25,position.getX()}; // int[] yLed = {position.getY() -25 ,position.getY() -25 ,position.getY()}; ----> Experiment! // g.drawPolygon(xLed, yLed, 3); From eba9ad3e71796a6bc49a28732707effd7186bc55 Mon Sep 17 00:00:00 2001 From: Johan Date: Thu, 28 Apr 2016 16:45:06 +0200 Subject: [PATCH 16/28] ute o cycklar --- src/places/Place.java | 28 +++++++++++++++------------- src/places/ProgramTest.java | 8 +++++--- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/places/Place.java b/src/places/Place.java index 1aab111..d24ad2c 100644 --- a/src/places/Place.java +++ b/src/places/Place.java @@ -14,14 +14,14 @@ public abstract class Place extends JComponent { private TravelCategory color;// kategori - buss, tĂ„g, t-bana private boolean showInfo = false; private boolean marked = false; - private int[] xLed = {0,10,21}; - private int[] yLed = {0,21,0}; + private int[] xLed = {0,10,20}; + private int[] yLed = {0,10,0}; public Place(String name, Position position){ this.name = name; this.position = position; setVisible(true); - setBounds(position.getX(), position.getY(), 250, 250); + setBounds(position.getX(),position.getY(), 250, 250); setPreferredSize (new Dimension(250,250)); setMaximumSize (new Dimension(250,250)); setMinimumSize (new Dimension(250,250)); @@ -34,14 +34,6 @@ public Place(String name, Position position){ // // } - private void calculatePolygon(Position pos){ //Ska anvĂ€ndas för slutgiltiga polygonen... - int posX = pos.getX(); - int posY = pos.getY(); - int[] xAxis = {posX -10, posX, posX +10}; - int[] yAxis ={posY -10, posY, posY +10}; - - } - public String getName(){ return name; } // dessa getMetoder borde inte behövas dĂ„ den Ă€rver frĂ„n JComponent och alltsĂ„ @@ -50,6 +42,12 @@ public String getName(){ public Position getPosition(){ return position; } + public int getPositionX(){ + return position.getX(); + } + public int getPositionY(){ + return position.getY(); + } public TravelCategory getColor(){ return color; @@ -87,9 +85,13 @@ protected void paintComponent(Graphics g){ private void paintPlace(Graphics g) { super.paintComponent(g); + int[] xLed = {position.getX(),position.getX() +10,position.getX()+20}; + int[] yLed = {position.getY(),position.getY()+10,position.getY()}; g.setColor(Color.BLACK); -// g.fillRect(position.getX(),position.getY(),250,250); Denna gör rektangel. // EX mĂ„lning... ska sen bli en polygon --> trekant. - g.fillPolygon(xLed, yLed, 3); + + g.fillRect(position.getX(),position.getY(),250,250); //Denna gör rektangel. // EX mĂ„lning... ska sen bli en polygon --> trekant. + +// g.drawPolygon(xLed, yLed, 3); // int[] xLed = {position.getX() - 25,position.getX() + 25,position.getX()}; // int[] yLed = {position.getY() -25 ,position.getY() -25 ,position.getY()}; ----> Experiment! // g.drawPolygon(xLed, yLed, 3); diff --git a/src/places/ProgramTest.java b/src/places/ProgramTest.java index a0c1545..8d5df70 100644 --- a/src/places/ProgramTest.java +++ b/src/places/ProgramTest.java @@ -239,9 +239,11 @@ public void mouseClicked(MouseEvent mev){ register.addPlace(nyPlats); imageArea.add(nyPlats); //Kanske till mapScrollbar? -// nyPlats.repaint(); -// imageArea.validate(); -// nyPlats.validate(); + nyPlats.setBounds(50, 300, 250, 250); + nyPlats.validate(); + nyPlats.repaint(); + imageArea.validate(); + System.out.println(nyPlats); System.out.println((String)choosePlaceType.getSelectedItem()); //För att visa att det gĂ„r! From 88fdf12f9bbc77adeb244f8bf56f5ac0ed3b6305 Mon Sep 17 00:00:00 2001 From: Johan Date: Thu, 28 Apr 2016 19:13:34 +0200 Subject: [PATCH 17/28] Named & Described -Place --- src/places/Place.java | 50 +++++++++++++++--------------- src/places/Position.java | 4 +-- src/places/ProgramTest.java | 61 +++++++++++++++++++------------------ 3 files changed, 59 insertions(+), 56 deletions(-) diff --git a/src/places/Place.java b/src/places/Place.java index d24ad2c..5f35437 100644 --- a/src/places/Place.java +++ b/src/places/Place.java @@ -1,10 +1,7 @@ package places; import javax.swing.*; // kanske ladda allt? alltsĂ„ -> * -//import places.ProgramTest.ImageArea; -//import places.ProgramTest.MouseLyss; -//import java.awt.event.*; Place skulle kunna ---> implements ActionListener----> prövar att addera detta till program klassen istĂ€llet. import java.awt.*; public abstract class Place extends JComponent { @@ -14,25 +11,19 @@ public abstract class Place extends JComponent { private TravelCategory color;// kategori - buss, tĂ„g, t-bana private boolean showInfo = false; private boolean marked = false; - private int[] xLed = {0,10,20}; - private int[] yLed = {0,10,0}; + public Place(String name, Position position){ this.name = name; this.position = position; + + this.setBounds(position.getX()-20,position.getY()-25,40,25); + this.setPreferredSize (new Dimension(100,100)); + this.setMaximumSize (new Dimension(100,100)); + this.setMinimumSize (new Dimension(100,100)); setVisible(true); - setBounds(position.getX(),position.getY(), 250, 250); - setPreferredSize (new Dimension(250,250)); - setMaximumSize (new Dimension(250,250)); - setMinimumSize (new Dimension(250,250)); } -// public Place(String name, Position position, TravelCategory color){ -// this(name, position); -// this.color = color; -// setVisible(true); -// -// } public String getName(){ return name; @@ -85,18 +76,29 @@ protected void paintComponent(Graphics g){ private void paintPlace(Graphics g) { super.paintComponent(g); - int[] xLed = {position.getX(),position.getX() +10,position.getX()+20}; - int[] yLed = {position.getY(),position.getY()+10,position.getY()}; g.setColor(Color.BLACK); + int[] xLed = {0,20,40}; + int[] yLed = {0,25,0}; - g.fillRect(position.getX(),position.getY(),250,250); //Denna gör rektangel. // EX mĂ„lning... ska sen bli en polygon --> trekant. - -// g.drawPolygon(xLed, yLed, 3); -// int[] xLed = {position.getX() - 25,position.getX() + 25,position.getX()}; -// int[] yLed = {position.getY() -25 ,position.getY() -25 ,position.getY()}; ----> Experiment! -// g.drawPolygon(xLed, yLed, 3); - + if(color != null){ + switch(color.toString()){ + + case "BUS": + g.setColor(Color.RED); + break; + + case "TRAIN": + g.setColor(Color.GREEN); + break; + + case "SUBWAY": + g.setColor(Color.BLUE); + break; + default: + } + } + g.fillPolygon(xLed, yLed, 3); } protected abstract void paintPlaceInfo(Graphics g); // OBS! mĂ„ste va abstract och definieras i varje given Place-child diff --git a/src/places/Position.java b/src/places/Position.java index 70967d2..69197c0 100644 --- a/src/places/Position.java +++ b/src/places/Position.java @@ -6,8 +6,8 @@ public class Position { private int positionY; public Position(int x, int y){ - x = positionX; - y = positionY; + positionX = x; + positionY = y; } public int getX(){ diff --git a/src/places/ProgramTest.java b/src/places/ProgramTest.java index 8d5df70..7bea976 100644 --- a/src/places/ProgramTest.java +++ b/src/places/ProgramTest.java @@ -82,9 +82,6 @@ public ProgramTest(){ northPanel.add(newPlaceLabel); choosePlaceType.addActionListener(new ChoosePlaceTypeLyss()); northPanel.add(choosePlaceType); - - - northPanel.add(searchField); northPanel.add(searchButton); northPanel.add(hideButton); @@ -207,9 +204,6 @@ protected void paintComponent(Graphics g){ } } - - - class MouseLyss extends MouseAdapter{ int clickX; int clickY; @@ -226,29 +220,42 @@ public void mouseClicked(MouseEvent mev){ Place nyPlats; if(name != null){ - System.out.println(name); - - clickX = mev.getX(); - clickY = mev.getY(); - Position nyPlatsPosition = new Position(clickX, clickY); + Position nyPlatsPosition = new Position(mev.getX(), mev.getY()); System.out.println(mev.getX()); - if(nyPlatsPosition != null){ - nyPlats = new NamedPlace(name , nyPlatsPosition); - register.addPlace(nyPlats); - imageArea.add(nyPlats); //Kanske till mapScrollbar? - - nyPlats.setBounds(50, 300, 250, 250); - nyPlats.validate(); - nyPlats.repaint(); - imageArea.validate(); + System.out.println(nyPlatsPosition.getX()); +//-----------------------------------BestĂ€m huruvida du ska göra NamedPlace lr DescribedPlace----------------------------------------------------------------- - - System.out.println(nyPlats); - System.out.println((String)choosePlaceType.getSelectedItem()); //För att visa att det gĂ„r! + if(choosePlaceType.getSelectedItem().equals(("NamedPlace"))){ + nyPlats = new NamedPlace(name , nyPlatsPosition); + nyPlats.setCategory(choosePlaceCategory()); + + register.addPlace(nyPlats); + imageArea.add(nyPlats); + + nyPlats.repaint(); + + System.out.println(nyPlats); + System.out.println((String)choosePlaceType.getSelectedItem()); //För att visa att det gĂ„r! + + } + else if(choosePlaceType.getSelectedItem().equals("DescribedPlace")){ + nyPlats = new DescribedPlace(name , nyPlatsPosition, description); + nyPlats.setCategory(choosePlaceCategory()); + + + register.addPlace(nyPlats); + imageArea.add(nyPlats); + + nyPlats.repaint(); + + System.out.println(nyPlats); + System.out.println((String)choosePlaceType.getSelectedItem()); //För att visa att det gĂ„r! + } } - }else{ + } + else{ System.out.println("Tom strĂ€ng"); // TEST ---> Funkar return; } @@ -269,10 +276,8 @@ public Position getClick(){ class ChoosePlaceTypeLyss implements ActionListener{ public void actionPerformed(ActionEvent ave){ - TravelCategory colorToUse; mouseLyss = new MouseLyss(); imageArea.addMouseListener(mouseLyss); - /* ----------------------------------------NEDAN FUNKAR SO FAR--------------------------------------*/ if(choosePlaceType.getSelectedItem().equals(("NamedPlace"))){ @@ -283,10 +288,6 @@ else if(choosePlaceType.getSelectedItem().equals("DescribedPlace")){ if(nameAndDescription != null && nameAndDescription.length>0){ name = nameAndDescription[0]; description = nameAndDescription[1]; - - System.out.println((String)choosePlaceType.getSelectedItem()); ////För att visa att det gĂ„r! - System.out.println(name); - System.out.println(description); } } } From cb5eb6563b0ba45d16d5884c76723c2f6aa1ac82 Mon Sep 17 00:00:00 2001 From: Johan Date: Thu, 28 Apr 2016 21:33:37 +0200 Subject: [PATCH 18/28] =?UTF-8?q?kan=20markera,=20jobbar=20p=C3=A5=20showI?= =?UTF-8?q?nfo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/places/DescribedPlace.java | 7 +--- src/places/NamedPlace.java | 14 ++++--- src/places/Place.java | 71 +++++++++++++++++++++++++++++++--- src/places/ProgramTest.java | 8 ++-- 4 files changed, 80 insertions(+), 20 deletions(-) diff --git a/src/places/DescribedPlace.java b/src/places/DescribedPlace.java index 3e76148..f07a575 100644 --- a/src/places/DescribedPlace.java +++ b/src/places/DescribedPlace.java @@ -11,14 +11,9 @@ public DescribedPlace(String name, Position position, String description){ this.description = description; } - -// public DescribedPlace(String name, Position position, TravelCategory color, String description){ // Om vi ska sĂ€tta kategori via Place, behövs inte denna konstruktor..!? -// super(name, position, color); -// this.description = description; -// -// } protected void paintPlaceInfo(Graphics g){ + } } diff --git a/src/places/NamedPlace.java b/src/places/NamedPlace.java index 202ec0b..8428570 100644 --- a/src/places/NamedPlace.java +++ b/src/places/NamedPlace.java @@ -9,14 +9,18 @@ public NamedPlace(String name, Position position){ super(name, position); } -// public NamedPlace(String name, Position position, TravelCategory color){ // Om vi ska sĂ€tta kategori via Place, behövs inte denna konstruktor..!? -// super(name, position, color); -// -// } @Override protected void paintPlaceInfo(Graphics g) { - // TODO Auto-generated method stub + int x = getBounds().width; + int y = getBounds().height; +// this.setBounds(getPositionX()-15,getPositionY()-25, x *3 ,y ); // Experiment vill göra lĂ€ngre textruta! + + g.setColor(Color.WHITE); + g.fillRect(0, 0,getBounds().width-1, getBounds().height -1); + g.setColor(Color.BLACK); + g.drawString(getName(), 0, 0 + (getBounds().height -1)); + repaint(); } } diff --git a/src/places/Place.java b/src/places/Place.java index 5f35437..1440b90 100644 --- a/src/places/Place.java +++ b/src/places/Place.java @@ -3,6 +3,8 @@ import java.awt.*; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; public abstract class Place extends JComponent { @@ -16,8 +18,9 @@ public abstract class Place extends JComponent { public Place(String name, Position position){ this.name = name; this.position = position; + this.addMouseListener(new MarkLyss()); - this.setBounds(position.getX()-20,position.getY()-25,40,25); + this.setBounds(position.getX()-15,position.getY()-25,30,25); this.setPreferredSize (new Dimension(100,100)); this.setMaximumSize (new Dimension(100,100)); this.setMinimumSize (new Dimension(100,100)); @@ -77,7 +80,7 @@ protected void paintComponent(Graphics g){ private void paintPlace(Graphics g) { super.paintComponent(g); g.setColor(Color.BLACK); - int[] xLed = {0,20,40}; + int[] xLed = {0,15,30}; int[] yLed = {0,25,0}; if(color != null){ @@ -99,9 +102,67 @@ private void paintPlace(Graphics g) { } g.fillPolygon(xLed, yLed, 3); + + if(marked){ + g.setColor(Color.RED); + g.drawRect(0, 0,getBounds().width-1, getBounds().height -1); + } } - protected abstract void paintPlaceInfo(Graphics g); - // OBS! mĂ„ste va abstract och definieras i varje given Place-child - + protected abstract void paintPlaceInfo(Graphics g); // Utseende och Info definieras i varje given Place-child + class MarkLyss implements MouseListener{ + + + public void mouseClicked(MouseEvent mev){ + switch(mev.getButton()){ + + case MouseEvent.BUTTON1: + System.out.println("VÄNSTER"); + if(marked) + marked = false; + else + marked = true; + repaint(); + break; + + case MouseEvent.BUTTON3: + System.out.println("HÖGER"); + if(showInfo) + showInfo = false; + else + showInfo = true; + repaint(); + break; + + default: + return; + } + } + + @Override + public void mouseEntered(MouseEvent arg0) { + // TODO Auto-generated method stub + + } + + @Override + public void mouseExited(MouseEvent arg0) { + // TODO Auto-generated method stub + + } + + @Override + public void mousePressed(MouseEvent arg0) { + // TODO Auto-generated method stub + + } + + @Override + public void mouseReleased(MouseEvent arg0) { + // TODO Auto-generated method stub + + } + } } + + diff --git a/src/places/ProgramTest.java b/src/places/ProgramTest.java index 7bea976..6d04ced 100644 --- a/src/places/ProgramTest.java +++ b/src/places/ProgramTest.java @@ -191,6 +191,7 @@ private void avsluta(){ /*--------------------------------------------------------------- CLASSES ----------------------------------------------------------------------------------*/ + class ImageArea extends JPanel{ ImageArea(){ @@ -228,7 +229,7 @@ public void mouseClicked(MouseEvent mev){ //-----------------------------------BestĂ€m huruvida du ska göra NamedPlace lr DescribedPlace----------------------------------------------------------------- if(choosePlaceType.getSelectedItem().equals(("NamedPlace"))){ - nyPlats = new NamedPlace(name , nyPlatsPosition); + nyPlats = new NamedPlace(name , nyPlatsPosition); nyPlats.setCategory(choosePlaceCategory()); register.addPlace(nyPlats); @@ -241,7 +242,8 @@ public void mouseClicked(MouseEvent mev){ } else if(choosePlaceType.getSelectedItem().equals("DescribedPlace")){ - nyPlats = new DescribedPlace(name , nyPlatsPosition, description); + nyPlats = new DescribedPlace(name , nyPlatsPosition, description); +// nyPlats.addMouseListener(new MarkLyss()); nyPlats.setCategory(choosePlaceCategory()); @@ -272,7 +274,6 @@ public Position getClick(){ } } - class ChoosePlaceTypeLyss implements ActionListener{ public void actionPerformed(ActionEvent ave){ @@ -293,7 +294,6 @@ else if(choosePlaceType.getSelectedItem().equals("DescribedPlace")){ } } - class NewMapLyss implements ActionListener{ From 11efd1b06d243f36aa40efdaec138ac5ca509976 Mon Sep 17 00:00:00 2001 From: Johan Date: Fri, 29 Apr 2016 12:03:20 +0200 Subject: [PATCH 19/28] marked and described namedPlace --- src/places/NamedPlace.java | 13 +++++++++---- src/places/Place.java | 26 +++++++++++++++++++++----- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/src/places/NamedPlace.java b/src/places/NamedPlace.java index 8428570..78a6f5b 100644 --- a/src/places/NamedPlace.java +++ b/src/places/NamedPlace.java @@ -12,15 +12,20 @@ public NamedPlace(String name, Position position){ @Override protected void paintPlaceInfo(Graphics g) { - int x = getBounds().width; - int y = getBounds().height; -// this.setBounds(getPositionX()-15,getPositionY()-25, x *3 ,y ); // Experiment vill göra lĂ€ngre textruta! + int newX = getSizeX() *3; // EXPERIMENT + + System.out.println(getSizeX()); + System.out.println(newX); + + this.setBounds(getPositionX()-15,getPositionY()-25, newX ,getSizeY() ); g.setColor(Color.WHITE); g.fillRect(0, 0,getBounds().width-1, getBounds().height -1); g.setColor(Color.BLACK); g.drawString(getName(), 0, 0 + (getBounds().height -1)); - repaint(); + + drawIfMarked(g); + } } diff --git a/src/places/Place.java b/src/places/Place.java index 1440b90..67fa0e5 100644 --- a/src/places/Place.java +++ b/src/places/Place.java @@ -13,6 +13,8 @@ public abstract class Place extends JComponent { private TravelCategory color;// kategori - buss, tĂ„g, t-bana private boolean showInfo = false; private boolean marked = false; + private int sizeX = 30; + private int sizeY = 25; public Place(String name, Position position){ @@ -20,7 +22,7 @@ public Place(String name, Position position){ this.position = position; this.addMouseListener(new MarkLyss()); - this.setBounds(position.getX()-15,position.getY()-25,30,25); + this.setBounds(position.getX()-15,position.getY()-25,sizeX,sizeY); this.setPreferredSize (new Dimension(100,100)); this.setMaximumSize (new Dimension(100,100)); this.setMinimumSize (new Dimension(100,100)); @@ -42,6 +44,12 @@ public int getPositionX(){ public int getPositionY(){ return position.getY(); } + public int getSizeX(){ + return sizeX; + } + public int getSizeY(){ + return sizeY; + } public TravelCategory getColor(){ return color; @@ -68,6 +76,13 @@ public String toString(){ return position + name ; // först + PLATSTYP + sist + BESKRIVNING } + public void drawIfMarked(Graphics g){ + if(marked){ + g.setColor(Color.RED); + g.drawRect(0, 0,getBounds().width-1, getBounds().height -1); + } + } + @Override protected void paintComponent(Graphics g){ if(showInfo){ @@ -79,6 +94,9 @@ protected void paintComponent(Graphics g){ private void paintPlace(Graphics g) { super.paintComponent(g); + + this.setBounds(getPositionX()-15,getPositionY()-25, sizeX ,sizeY); + g.setColor(Color.BLACK); int[] xLed = {0,15,30}; int[] yLed = {0,25,0}; @@ -103,10 +121,8 @@ private void paintPlace(Graphics g) { g.fillPolygon(xLed, yLed, 3); - if(marked){ - g.setColor(Color.RED); - g.drawRect(0, 0,getBounds().width-1, getBounds().height -1); - } + drawIfMarked(g); + } protected abstract void paintPlaceInfo(Graphics g); // Utseende och Info definieras i varje given Place-child From a6a8e92830eaf173cf9b90c7bf27801bf2321f52 Mon Sep 17 00:00:00 2001 From: Johan Date: Fri, 29 Apr 2016 12:42:28 +0200 Subject: [PATCH 20/28] named & described, marked och described --- src/places/DescribedPlace.java | 18 ++++++++++++++++++ src/places/Place.java | 4 +++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/places/DescribedPlace.java b/src/places/DescribedPlace.java index f07a575..27bc744 100644 --- a/src/places/DescribedPlace.java +++ b/src/places/DescribedPlace.java @@ -1,5 +1,6 @@ package places; +import java.awt.Color; import java.awt.Graphics; public class DescribedPlace extends Place{ @@ -14,6 +15,23 @@ public DescribedPlace(String name, Position position, String description){ protected void paintPlaceInfo(Graphics g){ + int newX = getSizeX() *3; // EXPERIMENT + int newY = getSizeY() *2; + + + System.out.println(getSizeX()); + System.out.println(newX); + + this.setBounds(getPositionX()-15,getPositionY()-25, newX , newY); + + g.setColor(Color.WHITE); + g.fillRect(0, 0,getBounds().width-1, getBounds().height -1); + g.setColor(Color.BLACK); + g.drawString(getName(), 0, 0 + (getBounds().height - getSizeY())); + g.drawString(description, 0, 0 + (getBounds().height -1)); + + + drawIfMarked(g); } } diff --git a/src/places/Place.java b/src/places/Place.java index 67fa0e5..cd61d77 100644 --- a/src/places/Place.java +++ b/src/places/Place.java @@ -88,7 +88,9 @@ protected void paintComponent(Graphics g){ if(showInfo){ paintPlaceInfo(g); }else{ - paintPlace(g); + paintPlace(g); + // denna if-sats skulle kunna ligga utanför paintComponent + //och i sĂ„ fall kunde describedPlace representeras av en pĂ„lagd panel med en textArea. hade nog varit snyggare... } } From 120266d9a182c786ff681cbf65951c7378080538 Mon Sep 17 00:00:00 2001 From: Johan Date: Fri, 29 Apr 2016 13:00:51 +0200 Subject: [PATCH 21/28] Cursors fixat + bara en plats i taget = fixat --- src/places/ProgramTest.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/places/ProgramTest.java b/src/places/ProgramTest.java index 6d04ced..c8e51c2 100644 --- a/src/places/ProgramTest.java +++ b/src/places/ProgramTest.java @@ -223,6 +223,10 @@ public void mouseClicked(MouseEvent mev){ if(name != null){ Position nyPlatsPosition = new Position(mev.getX(), mev.getY()); System.out.println(mev.getX()); + imageArea.removeMouseListener(this); + c = Cursor.getDefaultCursor(); + mapScrollbar.setCursor(c); + //TA BORT CROSSHAIR? if(nyPlatsPosition != null){ System.out.println(nyPlatsPosition.getX()); From ad2283874fe45ec3dbb778fef2666fcdd066fa20 Mon Sep 17 00:00:00 2001 From: Johan Date: Fri, 29 Apr 2016 13:46:53 +0200 Subject: [PATCH 22/28] =?UTF-8?q?Hide=20=C3=A4r=20gjort?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/places/Place.java | 14 ++++++++++++-- src/places/ProgramTest.java | 19 ++++++++++++++++++- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/places/Place.java b/src/places/Place.java index cd61d77..4231d2a 100644 --- a/src/places/Place.java +++ b/src/places/Place.java @@ -51,6 +51,10 @@ public int getSizeY(){ return sizeY; } + void setDontShowInfo(){ + showInfo = false; + } + public TravelCategory getColor(){ return color; } @@ -136,10 +140,16 @@ public void mouseClicked(MouseEvent mev){ case MouseEvent.BUTTON1: System.out.println("VÄNSTER"); - if(marked) + if(marked){ marked = false; - else + Registry.MARKED_PLACE.remove(Place.this); + //TA BORT UR MARKED LIST + } + else{ marked = true; + Registry.MARKED_PLACE.add(Place.this); + // LÄGG TILL I MARKEDLIST + } repaint(); break; diff --git a/src/places/ProgramTest.java b/src/places/ProgramTest.java index c8e51c2..554baa1 100644 --- a/src/places/ProgramTest.java +++ b/src/places/ProgramTest.java @@ -84,6 +84,7 @@ public ProgramTest(){ northPanel.add(choosePlaceType); northPanel.add(searchField); northPanel.add(searchButton); + hideButton.addActionListener(new HideLyss()); northPanel.add(hideButton); northPanel.add(removeButton); northPanel.add(whatIsHereButton); @@ -246,6 +247,8 @@ public void mouseClicked(MouseEvent mev){ } else if(choosePlaceType.getSelectedItem().equals("DescribedPlace")){ + + if(description != null){ nyPlats = new DescribedPlace(name , nyPlatsPosition, description); // nyPlats.addMouseListener(new MarkLyss()); nyPlats.setCategory(choosePlaceCategory()); @@ -258,11 +261,15 @@ else if(choosePlaceType.getSelectedItem().equals("DescribedPlace")){ System.out.println(nyPlats); System.out.println((String)choosePlaceType.getSelectedItem()); //För att visa att det gĂ„r! + } } } } else{ - System.out.println("Tom strĂ€ng"); // TEST ---> Funkar + System.out.println("Tom strĂ€ng"); // TEST ---> Funkar INFÖR EN POP-UP! + imageArea.removeMouseListener(this); + c = Cursor.getDefaultCursor(); + mapScrollbar.setCursor(c); return; } } @@ -298,6 +305,16 @@ else if(choosePlaceType.getSelectedItem().equals("DescribedPlace")){ } } + class HideLyss implements ActionListener{ + + public void actionPerformed(ActionEvent ave){ + for(Place p : Registry.MARKED_PLACE){ + p.setDontShowInfo(); + p.setVisible(false); + } + } + } + class NewMapLyss implements ActionListener{ From 91e38917bc60a432f53cffe31bdfe6846f4cd3ee Mon Sep 17 00:00:00 2001 From: Johan Date: Fri, 29 Apr 2016 15:26:20 +0200 Subject: [PATCH 23/28] Register add metoder --- src/places/ProgramTest.java | 60 +++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/src/places/ProgramTest.java b/src/places/ProgramTest.java index 554baa1..fa80f6b 100644 --- a/src/places/ProgramTest.java +++ b/src/places/ProgramTest.java @@ -87,6 +87,7 @@ public ProgramTest(){ hideButton.addActionListener(new HideLyss()); northPanel.add(hideButton); northPanel.add(removeButton); + whatIsHereButton.addActionListener(new WhatIsHereLyss()); northPanel.add(whatIsHereButton); add(northPanel, BorderLayout.NORTH); add(eastPanel, BorderLayout.EAST); @@ -206,6 +207,56 @@ protected void paintComponent(Graphics g){ } } + class MapClick implements MouseListener{ // visar allt inom arean... + int xAxis; + int yAxis; + + @Override + public void mouseClicked(MouseEvent mev){ + xAxis = mev.getX() -10; + yAxis = mev.getY() -10; + + + for(int i = 0; i<21; i++){ + for(int j = 0; j<21; j ++){ + Position p = new Position(xAxis +j,yAxis +i); + + if(register.positionPlaceCollection.containsKey(p)){ + Place place = register.positionPlaceCollection.get(p); + place.setVisible(true); + System.out.println(place.getName()); + imageArea.removeMouseListener(this); + } + } + } + } + + + @Override + public void mouseEntered(MouseEvent arg0) { + // TODO Auto-generated method stub + + } + + @Override + public void mouseExited(MouseEvent arg0) { + // TODO Auto-generated method stub + + } + + @Override + public void mousePressed(MouseEvent arg0) { + // TODO Auto-generated method stub + + } + + @Override + public void mouseReleased(MouseEvent arg0) { + // TODO Auto-generated method stub + + } + } + class MouseLyss extends MouseAdapter{ int clickX; int clickY; @@ -315,6 +366,15 @@ public void actionPerformed(ActionEvent ave){ } } + class WhatIsHereLyss implements ActionListener{ + + public void actionPerformed(ActionEvent ave){ + MapClick mapClick = new MapClick(); + imageArea.addMouseListener(mapClick); + + } + } + class NewMapLyss implements ActionListener{ From c0afb836f55964ff1b9e3f23847f014108afdb3b Mon Sep 17 00:00:00 2001 From: Johan Date: Fri, 29 Apr 2016 17:31:21 +0200 Subject: [PATCH 24/28] HideCategory = implementerat --- src/places/Place.java | 4 ++++ src/places/ProgramTest.java | 41 +++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/src/places/Place.java b/src/places/Place.java index 4231d2a..cd76a75 100644 --- a/src/places/Place.java +++ b/src/places/Place.java @@ -51,6 +51,10 @@ public int getSizeY(){ return sizeY; } + void setNotMarked(){ + marked = false; + } + void setDontShowInfo(){ showInfo = false; } diff --git a/src/places/ProgramTest.java b/src/places/ProgramTest.java index fa80f6b..91b832c 100644 --- a/src/places/ProgramTest.java +++ b/src/places/ProgramTest.java @@ -99,6 +99,7 @@ public ProgramTest(){ eastPanel.add(categoryList); hideCategoryButton.setAlignmentX(LEFT_ALIGNMENT); //Alignment + hideCategoryButton.addActionListener(new HideCategoryLyss()); eastPanel.add(hideCategoryButton); centerPanel.setLayout(new BorderLayout()); //GRID LR BOXLAYOUT FIXAR STORLEKEN PÅ BILDEN MEN VAD MED SCROLLPANE? -----BorderLayout lĂ€gger i mitten och alla över varandra. @@ -375,6 +376,46 @@ public void actionPerformed(ActionEvent ave){ } } + class HideCategoryLyss implements ActionListener{ + + public void actionPerformed(ActionEvent ave){ + String toCheck = categoryList.getSelectedValue(); + if(categoryList.getSelectedValue()!= null){ + switch(toCheck){ + case "Bus": + for(Place p : register.busPlace){ + System.out.print("Bus"); + p.setNotMarked(); + p.setDontShowInfo(); + p.setVisible(false); + } + break; + + + case "Train": + for(Place p : register.trainPlace){ + System.out.print("tĂ„g"); + p.setNotMarked(); + p.setDontShowInfo(); + p.setVisible(false); + } + break; + + case "Subway": + for(Place p : register.subwayPlace){ + System.out.print("t-bana"); + p.setNotMarked(); + p.setDontShowInfo(); + p.setVisible(false); + } + break; + + + default: + } + } + } + } class NewMapLyss implements ActionListener{ From 7193e6ffd3bbd62050a4909c59a20bf5bf756299 Mon Sep 17 00:00:00 2001 From: Johan Date: Fri, 29 Apr 2016 18:55:04 +0200 Subject: [PATCH 25/28] Search = implementerad --- src/places/Place.java | 7 ++++++ src/places/ProgramTest.java | 48 +++++++++++++++++++++++++++++++++++-- 2 files changed, 53 insertions(+), 2 deletions(-) diff --git a/src/places/Place.java b/src/places/Place.java index cd76a75..d065066 100644 --- a/src/places/Place.java +++ b/src/places/Place.java @@ -51,12 +51,19 @@ public int getSizeY(){ return sizeY; } + void setMarked(){ + marked = true; + repaint(); + } + void setNotMarked(){ marked = false; + repaint(); } void setDontShowInfo(){ showInfo = false; + repaint(); } public TravelCategory getColor(){ diff --git a/src/places/ProgramTest.java b/src/places/ProgramTest.java index 91b832c..d0c21ad 100644 --- a/src/places/ProgramTest.java +++ b/src/places/ProgramTest.java @@ -83,6 +83,7 @@ public ProgramTest(){ choosePlaceType.addActionListener(new ChoosePlaceTypeLyss()); northPanel.add(choosePlaceType); northPanel.add(searchField); + searchButton.addActionListener(new SearchLyss()); northPanel.add(searchButton); hideButton.addActionListener(new HideLyss()); northPanel.add(hideButton); @@ -95,7 +96,8 @@ public ProgramTest(){ eastPanel.add(categoriesLabel); categoryList.setAlignmentX(LEFT_ALIGNMENT); //Alignement (verkar bugga -> vĂ€nster blir höger) categoryList.setFixedCellWidth(150); - categoryList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // Om jag vill kunna deselecta en kategori mĂ„ste jag till föra en klass dĂ€r jag implementerat detta. + categoryList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + categoryList.addListSelectionListener(new ShowCategoryLyss()); eastPanel.add(categoryList); hideCategoryButton.setAlignmentX(LEFT_ALIGNMENT); //Alignment @@ -357,6 +359,14 @@ else if(choosePlaceType.getSelectedItem().equals("DescribedPlace")){ } } + class SearchLyss implements ActionListener{ + + public void actionPerformed(ActionEvent ave){ + String searchName = searchField.getText(); + register.searchByName(searchName); + } + } + class HideLyss implements ActionListener{ public void actionPerformed(ActionEvent ave){ @@ -376,6 +386,41 @@ public void actionPerformed(ActionEvent ave){ } } + class ShowCategoryLyss implements ListSelectionListener{ + + public void valueChanged(ListSelectionEvent lev){ + String toCheck = categoryList.getSelectedValue(); + + if(categoryList.getSelectedValue()!= null){ + switch(toCheck){ + case "Bus": + for(Place p : register.busPlace){ + System.out.print("Bus"); + p.setVisible(true); + } + break; + + + case "Train": + for(Place p : register.trainPlace){ + System.out.print("tĂ„g"); + p.setVisible(true); + } + break; + + case "Subway": + for(Place p : register.subwayPlace){ + System.out.print("t-bana"); + p.setVisible(true); + } + break; + + default: + } + } + } + } + class HideCategoryLyss implements ActionListener{ public void actionPerformed(ActionEvent ave){ @@ -410,7 +455,6 @@ public void actionPerformed(ActionEvent ave){ } break; - default: } } From c995d4b1081c16f70eca58337ba1a2ae8bd9af44 Mon Sep 17 00:00:00 2001 From: Johan Date: Fri, 29 Apr 2016 23:19:54 +0200 Subject: [PATCH 26/28] felaktig... --- src/places/DescribedPlace.java | 9 ++-- src/places/NamedPlace.java | 8 ++-- src/places/Place.java | 27 +++++------ src/places/Position.java | 4 +- src/places/ProgramTest.java | 86 ++++++++++++++++++++-------------- src/places/TravelCategory.java | 14 ++---- 6 files changed, 78 insertions(+), 70 deletions(-) diff --git a/src/places/DescribedPlace.java b/src/places/DescribedPlace.java index 27bc744..712c9d3 100644 --- a/src/places/DescribedPlace.java +++ b/src/places/DescribedPlace.java @@ -7,12 +7,13 @@ public class DescribedPlace extends Place{ private String description; - public DescribedPlace(String name, Position position, String description){ - super(name, position); +/*-------------------------------------------------CONSTRUCTOR--------------------------------------------------------*/ + public DescribedPlace(String name, Position position, Registry register, String description){ + super(name, position, register); this.description = description; - } +/*---------------------------------------------------METHODS----------------------------------------------------------*/ protected void paintPlaceInfo(Graphics g){ int newX = getSizeX() *3; // EXPERIMENT @@ -30,8 +31,6 @@ protected void paintPlaceInfo(Graphics g){ g.drawString(getName(), 0, 0 + (getBounds().height - getSizeY())); g.drawString(description, 0, 0 + (getBounds().height -1)); - drawIfMarked(g); - } } diff --git a/src/places/NamedPlace.java b/src/places/NamedPlace.java index 78a6f5b..659ba18 100644 --- a/src/places/NamedPlace.java +++ b/src/places/NamedPlace.java @@ -5,11 +5,12 @@ public class NamedPlace extends Place{ - public NamedPlace(String name, Position position){ - super(name, position); - +/*----------------------------------------------------CONSTRUCTOR--------------------------------------------------*/ + public NamedPlace(String name, Position position, Registry register){ + super(name, position, register); } +/*------------------------------------------------------METHODS----------------------------------------------------*/ @Override protected void paintPlaceInfo(Graphics g) { @@ -26,6 +27,5 @@ protected void paintPlaceInfo(Graphics g) { g.drawString(getName(), 0, 0 + (getBounds().height -1)); drawIfMarked(g); - } } diff --git a/src/places/Place.java b/src/places/Place.java index d065066..da40821 100644 --- a/src/places/Place.java +++ b/src/places/Place.java @@ -1,7 +1,5 @@ package places; -import javax.swing.*; // kanske ladda allt? alltsĂ„ -> * - - +import javax.swing.*; import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; @@ -10,16 +8,18 @@ public abstract class Place extends JComponent { private String name; private Position position; - private TravelCategory color;// kategori - buss, tĂ„g, t-bana + private TravelCategory color; private boolean showInfo = false; private boolean marked = false; private int sizeX = 30; private int sizeY = 25; + Registry register; - - public Place(String name, Position position){ +/*------------------------------------------------CONSTRUCTOR---------------------------------------------------------------*/ + public Place(String name, Position position, Registry register){ this.name = name; this.position = position; + this.register = register; this.addMouseListener(new MarkLyss()); this.setBounds(position.getX()-15,position.getY()-25,sizeX,sizeY); @@ -27,13 +27,12 @@ public Place(String name, Position position){ this.setMaximumSize (new Dimension(100,100)); this.setMinimumSize (new Dimension(100,100)); setVisible(true); - } +/*-------------------------------------------------METHODS-------------------------------------------------------------------*/ public String getName(){ return name; - } // dessa getMetoder borde inte behövas dĂ„ den Ă€rver frĂ„n JComponent och alltsĂ„ - //ska representeras grafiskt som en trekant pĂ„ kartan. + } public Position getPosition(){ return position; @@ -86,8 +85,7 @@ public boolean getMarked(){ return marked; } - public String toString(){ - //if () // kolla child + public String toString(){ // kolla child return position + name ; // först + PLATSTYP + sist + BESKRIVNING } @@ -105,7 +103,7 @@ protected void paintComponent(Graphics g){ }else{ paintPlace(g); // denna if-sats skulle kunna ligga utanför paintComponent - //och i sĂ„ fall kunde describedPlace representeras av en pĂ„lagd panel med en textArea. hade nog varit snyggare... + //och i sĂ„ fall kunde describedPlace istĂ€llet representeras av en pĂ„lagd panel med en textArea. } } @@ -143,6 +141,7 @@ private void paintPlace(Graphics g) { } protected abstract void paintPlaceInfo(Graphics g); // Utseende och Info definieras i varje given Place-child +/*----------------------------------------------------------CLASSES---------------------------------------------------------*/ class MarkLyss implements MouseListener{ @@ -153,12 +152,12 @@ public void mouseClicked(MouseEvent mev){ System.out.println("VÄNSTER"); if(marked){ marked = false; - Registry.MARKED_PLACE.remove(Place.this); + register.getMarkedPlace().remove(Place.this); //TA BORT UR MARKED LIST } else{ marked = true; - Registry.MARKED_PLACE.add(Place.this); + register.getMarkedPlace().add(Place.this); // LÄGG TILL I MARKEDLIST } repaint(); diff --git a/src/places/Position.java b/src/places/Position.java index 69197c0..5950d06 100644 --- a/src/places/Position.java +++ b/src/places/Position.java @@ -4,12 +4,14 @@ public class Position { private int positionX; private int positionY; - + +/*-----------------------------------------------------CONSTRUCTOR------------------------------------------------------*/ public Position(int x, int y){ positionX = x; positionY = y; } +/*-------------------------------------------------------METHODS--------------------------------------------------------*/ public int getX(){ return positionX; } diff --git a/src/places/ProgramTest.java b/src/places/ProgramTest.java index d0c21ad..7a65859 100644 --- a/src/places/ProgramTest.java +++ b/src/places/ProgramTest.java @@ -17,12 +17,10 @@ public class ProgramTest extends JFrame{ private ImageIcon image; private String name; private String description; - private Registry register = new Registry(); - - + private JMenuBar menu = new JMenuBar(); - private JMenu archive = new JMenu("Archive"); // new Map, Load Places, Save, Exit + private JMenu archive = new JMenu("Archive"); JMenuItem newMap = new JMenuItem("New Map"); private JFileChooser jfc = new JFileChooser("."); // startar filsökning frĂ„n aktuell mapp @@ -32,8 +30,6 @@ public class ProgramTest extends JFrame{ private JPanel eastPanel = new JPanel(); private JPanel centerPanel = new JPanel(); - - private JLabel newPlaceLabel = new JLabel("New:"); String[] JComboAlternativ = {"NamedPlace", "DescribedPlace"}; @@ -46,19 +42,14 @@ public class ProgramTest extends JFrame{ private JButton removeButton = new JButton("Remove"); private JButton whatIsHereButton = new JButton("What is here?"); - - private JLabel categoriesLabel = new JLabel("Categories"); private String[] categories = {"Bus", "Train", "Subway"} ; private JList categoryList = new JList(categories); private JButton hideCategoryButton = new JButton("Hide category"); - /*------------------------------------------------------------------ CONSTRUCTOR ----------------------------------------------------------------------*/ - public ProgramTest(){ - //JFrame program = new JFrame("Inlupp 2"); super("Inlupp 2"); Exit exitWindow = new Exit(); this.addWindowListener(exitWindow); @@ -70,6 +61,7 @@ public ProgramTest(){ archive.add(newMap); JMenuItem loadPlaces = new JMenuItem("Load Places"); + loadPlaces.addActionListener(new LoadPlacesLyss()); archive.add(loadPlaces); JMenuItem save = new JMenuItem("Save"); archive.add(save); @@ -87,6 +79,7 @@ public ProgramTest(){ northPanel.add(searchButton); hideButton.addActionListener(new HideLyss()); northPanel.add(hideButton); + removeButton.addActionListener(new RemoveLyss()); northPanel.add(removeButton); whatIsHereButton.addActionListener(new WhatIsHereLyss()); northPanel.add(whatIsHereButton); @@ -94,17 +87,17 @@ public ProgramTest(){ add(eastPanel, BorderLayout.EAST); eastPanel.setLayout(new BoxLayout(eastPanel,BoxLayout.Y_AXIS)); eastPanel.add(categoriesLabel); - categoryList.setAlignmentX(LEFT_ALIGNMENT); //Alignement (verkar bugga -> vĂ€nster blir höger) + categoryList.setAlignmentX(LEFT_ALIGNMENT); categoryList.setFixedCellWidth(150); categoryList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); categoryList.addListSelectionListener(new ShowCategoryLyss()); eastPanel.add(categoryList); - hideCategoryButton.setAlignmentX(LEFT_ALIGNMENT); //Alignment + hideCategoryButton.setAlignmentX(LEFT_ALIGNMENT); hideCategoryButton.addActionListener(new HideCategoryLyss()); eastPanel.add(hideCategoryButton); - centerPanel.setLayout(new BorderLayout()); //GRID LR BOXLAYOUT FIXAR STORLEKEN PÅ BILDEN MEN VAD MED SCROLLPANE? -----BorderLayout lĂ€gger i mitten och alla över varandra. + centerPanel.setLayout(new BorderLayout()); add(centerPanel, BorderLayout.CENTER); setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); @@ -112,8 +105,6 @@ public ProgramTest(){ //setResizable(false); setLocationRelativeTo(null); setVisible(true); - - } /*------------------------------------------------------------- METHODS -----------------------------------------------------------------------------------*/ @@ -164,8 +155,8 @@ private String[] createDescribedPlace(){ describedPlacePanel.add(rad1); describedPlacePanel.add(rad2); - if(JOptionPane.showConfirmDialog(null, describedPlacePanel, "New Described Place", JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION){ - + if(JOptionPane.showConfirmDialog + (null, describedPlacePanel, "New Described Place", JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION){ String name = nameField.getText(); String description = describeField.getText(); @@ -224,8 +215,8 @@ public void mouseClicked(MouseEvent mev){ for(int j = 0; j<21; j ++){ Position p = new Position(xAxis +j,yAxis +i); - if(register.positionPlaceCollection.containsKey(p)){ - Place place = register.positionPlaceCollection.get(p); + if(register.getPositionPlaceCollection().containsKey(p)){ + Place place = register.getPositionPlaceCollection().get(p); place.setVisible(true); System.out.println(place.getName()); imageArea.removeMouseListener(this); @@ -288,11 +279,11 @@ public void mouseClicked(MouseEvent mev){ //-----------------------------------BestĂ€m huruvida du ska göra NamedPlace lr DescribedPlace----------------------------------------------------------------- if(choosePlaceType.getSelectedItem().equals(("NamedPlace"))){ - nyPlats = new NamedPlace(name , nyPlatsPosition); + nyPlats = new NamedPlace(name , nyPlatsPosition, register); nyPlats.setCategory(choosePlaceCategory()); register.addPlace(nyPlats); - imageArea.add(nyPlats); + imageArea.add(nyPlats); //VADÅ FÖR LISTA? nyPlats.repaint(); @@ -303,13 +294,11 @@ public void mouseClicked(MouseEvent mev){ else if(choosePlaceType.getSelectedItem().equals("DescribedPlace")){ if(description != null){ - nyPlats = new DescribedPlace(name , nyPlatsPosition, description); -// nyPlats.addMouseListener(new MarkLyss()); + nyPlats = new DescribedPlace(name , nyPlatsPosition, register, description); nyPlats.setCategory(choosePlaceCategory()); - register.addPlace(nyPlats); - imageArea.add(nyPlats); + imageArea.add(nyPlats); //VADÅ FÖR LISTA? nyPlats.repaint(); @@ -370,13 +359,27 @@ public void actionPerformed(ActionEvent ave){ class HideLyss implements ActionListener{ public void actionPerformed(ActionEvent ave){ - for(Place p : Registry.MARKED_PLACE){ + for(Place p : register.getMarkedPlace()){ p.setDontShowInfo(); p.setVisible(false); } } } + class RemoveLyss implements ActionListener{ + + public void actionPerformed(ActionEvent ave){ + + for(Place p :register.getMarkedPlace()){ + imageArea.remove(p); + System.out.println("Tar bort " + p.getName()); + } + + register.removeMarkedPlaces(); + imageArea.repaint(); + } + } + class WhatIsHereLyss implements ActionListener{ public void actionPerformed(ActionEvent ave){ @@ -394,7 +397,7 @@ public void valueChanged(ListSelectionEvent lev){ if(categoryList.getSelectedValue()!= null){ switch(toCheck){ case "Bus": - for(Place p : register.busPlace){ + for(Place p : register.getBusPlace()){ System.out.print("Bus"); p.setVisible(true); } @@ -402,14 +405,14 @@ public void valueChanged(ListSelectionEvent lev){ case "Train": - for(Place p : register.trainPlace){ + for(Place p : register.getTrainPlace()){ System.out.print("tĂ„g"); p.setVisible(true); } break; case "Subway": - for(Place p : register.subwayPlace){ + for(Place p : register.getSubwayPlace()){ System.out.print("t-bana"); p.setVisible(true); } @@ -428,7 +431,7 @@ public void actionPerformed(ActionEvent ave){ if(categoryList.getSelectedValue()!= null){ switch(toCheck){ case "Bus": - for(Place p : register.busPlace){ + for(Place p : register.getBusPlace()){ System.out.print("Bus"); p.setNotMarked(); p.setDontShowInfo(); @@ -438,7 +441,7 @@ public void actionPerformed(ActionEvent ave){ case "Train": - for(Place p : register.trainPlace){ + for(Place p : register.getTrainPlace()){ System.out.print("tĂ„g"); p.setNotMarked(); p.setDontShowInfo(); @@ -447,7 +450,7 @@ public void actionPerformed(ActionEvent ave){ break; case "Subway": - for(Place p : register.subwayPlace){ + for(Place p : register.getSubwayPlace()){ System.out.print("t-bana"); p.setNotMarked(); p.setDontShowInfo(); @@ -484,10 +487,23 @@ public void actionPerformed(ActionEvent ave){ } } - class LoadPlacesLyss implements ActionListener{ public void actionPerformed(ActionEvent ave){ - // load + + int ok = JFileChooser.APPROVE_OPTION; + int jfcSvar = jfc.showOpenDialog(ProgramTest.this); // för att kunna ladda filer + if (jfcSvar == ok){ + + if(imageArea.getComponents() != null){ + imageArea.removeAll(); + } + valdFil = jfc.getSelectedFile(); + longName = valdFil.getAbsolutePath(); + + for(Place p :register.loadFile(longName)){ + imageArea.add(p); + } + } } } diff --git a/src/places/TravelCategory.java b/src/places/TravelCategory.java index 80a0f89..74fda0e 100644 --- a/src/places/TravelCategory.java +++ b/src/places/TravelCategory.java @@ -1,17 +1,9 @@ package places; public enum TravelCategory { - BUS ("Bus"), - TRAIN ("Train"), - SUBWAY ("Subway"); + BUS, + TRAIN, + SUBWAY; //NO_CATEGORY - - private String category; - - - private TravelCategory(String category){ - this.category = category; - } - } From 9dc0ce3f55921c2eeaecf909d1bf0499f8ae014d Mon Sep 17 00:00:00 2001 From: Johan Date: Sat, 30 Apr 2016 00:13:29 +0200 Subject: [PATCH 27/28] Save inte riktigt klart... --- src/places/DescribedPlace.java | 6 ++++++ src/places/NamedPlace.java | 6 ++++++ src/places/Place.java | 5 ++--- src/places/ProgramTest.java | 26 +++++++++++++++++++++++++- 4 files changed, 39 insertions(+), 4 deletions(-) diff --git a/src/places/DescribedPlace.java b/src/places/DescribedPlace.java index 712c9d3..60dc969 100644 --- a/src/places/DescribedPlace.java +++ b/src/places/DescribedPlace.java @@ -33,4 +33,10 @@ protected void paintPlaceInfo(Graphics g){ drawIfMarked(g); } + + @Override + public String toString() { + + return "Described" +","+ getColor() +","+ getPosition().getX() +","+ getPosition().getY() +","+ getName() +","+ description; + } } diff --git a/src/places/NamedPlace.java b/src/places/NamedPlace.java index 659ba18..3fc82c1 100644 --- a/src/places/NamedPlace.java +++ b/src/places/NamedPlace.java @@ -28,4 +28,10 @@ protected void paintPlaceInfo(Graphics g) { drawIfMarked(g); } + + @Override + public String toString() { + // TODO Auto-generated method stub + return "Named" +","+ getColor() +","+ getPosition().getX() +","+ getPosition().getY() +","+ getName(); + } } diff --git a/src/places/Place.java b/src/places/Place.java index da40821..fcab2ec 100644 --- a/src/places/Place.java +++ b/src/places/Place.java @@ -85,9 +85,8 @@ public boolean getMarked(){ return marked; } - public String toString(){ // kolla child - return position + name ; // först + PLATSTYP + sist + BESKRIVNING - } + public abstract String toString(); // kolla child + // först + PLATSTYP + sist + BESKRIVNING public void drawIfMarked(Graphics g){ if(marked){ diff --git a/src/places/ProgramTest.java b/src/places/ProgramTest.java index 7a65859..affaf6c 100644 --- a/src/places/ProgramTest.java +++ b/src/places/ProgramTest.java @@ -64,6 +64,7 @@ public ProgramTest(){ loadPlaces.addActionListener(new LoadPlacesLyss()); archive.add(loadPlaces); JMenuItem save = new JMenuItem("Save"); + save.addActionListener(new SaveLyss()); archive.add(save); JMenuItem exit = new JMenuItem("Exit"); @@ -504,12 +505,35 @@ public void actionPerformed(ActionEvent ave){ imageArea.add(p); } } + imageArea.repaint(); } } class SaveLyss implements ActionListener{ public void actionPerformed(ActionEvent ave){ - // save + + int ok = JFileChooser.APPROVE_OPTION; + int jfcSvar = jfc.showSaveDialog(ProgramTest.this); + if(jfcSvar == ok){ + try + { + FileWriter file = new FileWriter(longName); + PrintWriter out = new PrintWriter(file); + + + + for(Place place : register.getPositionPlaceCollection().values()) + { + out.println(place.toString()); + out.close(); + } + + } + catch(IOException e) + { + System.out.println("IOException"); + } + } } } From 64fa3733f5adf2f479e76ab5be0fca4cb0e52ed0 Mon Sep 17 00:00:00 2001 From: Johan Date: Mon, 2 May 2016 13:56:34 +0200 Subject: [PATCH 28/28] =?UTF-8?q?Putsning...=20Savear=20dock=20med=20eng?= =?UTF-8?q?=20enum-namn,=20m=C3=A5ste=20va=20svenska.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/places/Place.java | 5 +- src/places/ProgramTest.java | 576 ++++++++++++++++----------------- src/places/TravelCategory.java | 2 +- 3 files changed, 290 insertions(+), 293 deletions(-) diff --git a/src/places/Place.java b/src/places/Place.java index fcab2ec..7320936 100644 --- a/src/places/Place.java +++ b/src/places/Place.java @@ -85,8 +85,7 @@ public boolean getMarked(){ return marked; } - public abstract String toString(); // kolla child - // först + PLATSTYP + sist + BESKRIVNING + public abstract String toString(); public void drawIfMarked(Graphics g){ if(marked){ @@ -148,7 +147,6 @@ public void mouseClicked(MouseEvent mev){ switch(mev.getButton()){ case MouseEvent.BUTTON1: - System.out.println("VÄNSTER"); if(marked){ marked = false; register.getMarkedPlace().remove(Place.this); @@ -163,7 +161,6 @@ public void mouseClicked(MouseEvent mev){ break; case MouseEvent.BUTTON3: - System.out.println("HÖGER"); if(showInfo) showInfo = false; else diff --git a/src/places/ProgramTest.java b/src/places/ProgramTest.java index affaf6c..8b481e4 100644 --- a/src/places/ProgramTest.java +++ b/src/places/ProgramTest.java @@ -1,16 +1,15 @@ package places; + import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; import java.io.*; - - -public class ProgramTest extends JFrame{ +public class ProgramTest extends JFrame { private boolean nyInfo = true; // bestĂ€mmer stĂ€ng eller ej. - private String longName; + private String longName; private File valdFil; public MouseLyss mouseLyss; private ImageArea imageArea; @@ -18,59 +17,59 @@ public class ProgramTest extends JFrame{ private String name; private String description; private Registry register = new Registry(); - + private JMenuBar menu = new JMenuBar(); - private JMenu archive = new JMenu("Archive"); + private JMenu archive = new JMenu("Archive"); JMenuItem newMap = new JMenuItem("New Map"); - - private JFileChooser jfc = new JFileChooser("."); // startar filsökning frĂ„n aktuell mapp + + private JFileChooser jfc = new JFileChooser("."); // startar filsökning frĂ„n + // aktuell mapp JScrollPane mapScrollbar; - + private JPanel northPanel = new JPanel(); private JPanel eastPanel = new JPanel(); private JPanel centerPanel = new JPanel(); - + private JLabel newPlaceLabel = new JLabel("New:"); - - String[] JComboAlternativ = {"NamedPlace", "DescribedPlace"}; + + String[] JComboAlternativ = { "NamedPlace", "DescribedPlace" }; private JComboBox choosePlaceType = new JComboBox(JComboAlternativ); - + private JTextField searchField = new JTextField("Search", 10); - + private JButton searchButton = new JButton("Search"); private JButton hideButton = new JButton("Hide"); private JButton removeButton = new JButton("Remove"); private JButton whatIsHereButton = new JButton("What is here?"); - + private JLabel categoriesLabel = new JLabel("Categories"); - private String[] categories = {"Bus", "Train", "Subway"} ; + private String[] categories = { "Bus", "Train", "Subway" }; private JList categoryList = new JList(categories); private JButton hideCategoryButton = new JButton("Hide category"); /*------------------------------------------------------------------ CONSTRUCTOR ----------------------------------------------------------------------*/ - - public ProgramTest(){ + + public ProgramTest() { super("Inlupp 2"); Exit exitWindow = new Exit(); this.addWindowListener(exitWindow); setJMenuBar(menu); menu.add(archive); - - + newMap.addActionListener(new NewMapLyss()); archive.add(newMap); - + JMenuItem loadPlaces = new JMenuItem("Load Places"); loadPlaces.addActionListener(new LoadPlacesLyss()); archive.add(loadPlaces); JMenuItem save = new JMenuItem("Save"); save.addActionListener(new SaveLyss()); archive.add(save); - + JMenuItem exit = new JMenuItem("Exit"); exit.addActionListener(new ExitLyss()); archive.add(exit); - + setLayout(new BorderLayout()); northPanel.add(newPlaceLabel); choosePlaceType.addActionListener(new ChoosePlaceTypeLyss()); @@ -86,137 +85,133 @@ public ProgramTest(){ northPanel.add(whatIsHereButton); add(northPanel, BorderLayout.NORTH); add(eastPanel, BorderLayout.EAST); - eastPanel.setLayout(new BoxLayout(eastPanel,BoxLayout.Y_AXIS)); + eastPanel.setLayout(new BoxLayout(eastPanel, BoxLayout.Y_AXIS)); eastPanel.add(categoriesLabel); - categoryList.setAlignmentX(LEFT_ALIGNMENT); + categoryList.setAlignmentX(LEFT_ALIGNMENT); categoryList.setFixedCellWidth(150); categoryList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); categoryList.addListSelectionListener(new ShowCategoryLyss()); eastPanel.add(categoryList); - - hideCategoryButton.setAlignmentX(LEFT_ALIGNMENT); + + hideCategoryButton.setAlignmentX(LEFT_ALIGNMENT); hideCategoryButton.addActionListener(new HideCategoryLyss()); - eastPanel.add(hideCategoryButton); - + eastPanel.add(hideCategoryButton); + centerPanel.setLayout(new BorderLayout()); - add(centerPanel, BorderLayout.CENTER); - + add(centerPanel, BorderLayout.CENTER); + setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); setSize(650, 650); - //setResizable(false); + // setResizable(false); setLocationRelativeTo(null); setVisible(true); } - + /*------------------------------------------------------------- METHODS -----------------------------------------------------------------------------------*/ - private TravelCategory choosePlaceCategory(){ - - if(!(categoryList.isSelectionEmpty())){ - String color = (String)categoryList.getSelectedValue(); - - for(TravelCategory c : TravelCategory.values()){ - if(color.equalsIgnoreCase(c.name())){ - return c; + private TravelCategory choosePlaceCategory() { + + if (!(categoryList.isSelectionEmpty())) { + String color = (String) categoryList.getSelectedValue(); + + for (TravelCategory c : TravelCategory.values()) { + if (color.equalsIgnoreCase(c.name())) { + return c; } } } return null; } - - private String createNamedPlace(){ - JPanel namedPlacePanel= new JPanel(); - + + private String createNamedPlace() { + JPanel namedPlacePanel = new JPanel(); + namedPlacePanel.setLayout(new BoxLayout(namedPlacePanel, BoxLayout.Y_AXIS)); namedPlacePanel.add(new JLabel("Platsens namn:")); - - - String ifyllt = JOptionPane.showInputDialog(null, namedPlacePanel, "New Named Place", JOptionPane.QUESTION_MESSAGE); - if(ifyllt.length()> 0){ + + String ifyllt = JOptionPane.showInputDialog(null, namedPlacePanel, "New Named Place", + JOptionPane.QUESTION_MESSAGE); + if (ifyllt.length() > 0) { return ifyllt; } return null; } - - private String[] createDescribedPlace(){ + + private String[] createDescribedPlace() { JPanel describedPlacePanel = new JPanel(); - - JPanel rad1= new JPanel(); + + JPanel rad1 = new JPanel(); JPanel rad2 = new JPanel(); - + JTextField nameField = new JTextField(10); JTextField describeField = new JTextField(10); - + rad1.add(new JLabel("Platsens namn:")); rad1.add(nameField); - + rad2.add(new JLabel("Description:")); rad2.add(describeField); - + describedPlacePanel.setLayout(new BoxLayout(describedPlacePanel, BoxLayout.Y_AXIS)); describedPlacePanel.add(rad1); describedPlacePanel.add(rad2); - - if(JOptionPane.showConfirmDialog - (null, describedPlacePanel, "New Described Place", JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION){ - + + if (JOptionPane.showConfirmDialog(null, describedPlacePanel, "New Described Place", + JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION) { + String name = nameField.getText(); String description = describeField.getText(); - - if(name.length()>0 && description.length()>0){ - String[] nameAndDescription = {name, description}; + + if (name.length() > 0 && description.length() > 0) { + String[] nameAndDescription = { name, description }; return nameAndDescription; } } return null; } - - - private void avsluta(){ + + private void avsluta() { int ok = JOptionPane.OK_OPTION; - if(!nyInfo){ + if (!nyInfo) { System.exit(0); - }else{ - int svar = JOptionPane.showConfirmDialog(null,"Vill du avsluta Ă€ndĂ„?","Osparade Ă€ndringar", + } else { + int svar = JOptionPane.showConfirmDialog(null, "Vill du avsluta Ă€ndĂ„?", "Osparade Ă€ndringar", JOptionPane.OK_CANCEL_OPTION); - - if(svar == ok){ + + if (svar == ok) { System.exit(0); } } } - - + /*--------------------------------------------------------------- CLASSES ----------------------------------------------------------------------------------*/ - - - class ImageArea extends JPanel{ - - ImageArea(){ - image = new ImageIcon(longName); + + class ImageArea extends JPanel { + + ImageArea() { + image = new ImageIcon(longName); setLayout(null); } - - protected void paintComponent(Graphics g){ + + protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(image.getImage(), 0, 0, this); } } - - class MapClick implements MouseListener{ // visar allt inom arean... + + class MapClick implements MouseListener { // visar allt inom arean... int xAxis; int yAxis; - + @Override - public void mouseClicked(MouseEvent mev){ - xAxis = mev.getX() -10; - yAxis = mev.getY() -10; - - - for(int i = 0; i<21; i++){ - for(int j = 0; j<21; j ++){ - Position p = new Position(xAxis +j,yAxis +i); - - if(register.getPositionPlaceCollection().containsKey(p)){ + public void mouseClicked(MouseEvent mev) { + xAxis = mev.getX() - 10; + yAxis = mev.getY() - 10; + + for (int i = 0; i < 21; i++) { + for (int j = 0; j < 21; j++) { + Position p = new Position(xAxis + j, yAxis + i); + + if (register.getPositionPlaceCollection().containsKey(p)) { Place place = register.getPositionPlaceCollection().get(p); place.setVisible(true); System.out.println(place.getName()); @@ -226,311 +221,317 @@ public void mouseClicked(MouseEvent mev){ } } - @Override public void mouseEntered(MouseEvent arg0) { // TODO Auto-generated method stub - + } @Override public void mouseExited(MouseEvent arg0) { // TODO Auto-generated method stub - + } @Override public void mousePressed(MouseEvent arg0) { // TODO Auto-generated method stub - + } @Override public void mouseReleased(MouseEvent arg0) { // TODO Auto-generated method stub - + } } - - class MouseLyss extends MouseAdapter{ + + class MouseLyss extends MouseAdapter { int clickX; int clickY; Position pos; Cursor c; - - public void mouseEntered(MouseEvent mev){ + + public void mouseEntered(MouseEvent mev) { c = Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR); mapScrollbar.setCursor(c); - + } - - public void mouseClicked(MouseEvent mev){ + + public void mouseClicked(MouseEvent mev) { Place nyPlats; - - if(name != null){ - Position nyPlatsPosition = new Position(mev.getX(), mev.getY()); + + if (name != null) { + Position nyPlatsPosition = new Position(mev.getX(), mev.getY()); System.out.println(mev.getX()); imageArea.removeMouseListener(this); c = Cursor.getDefaultCursor(); mapScrollbar.setCursor(c); - //TA BORT CROSSHAIR? - - if(nyPlatsPosition != null){ + // TA BORT CROSSHAIR? + + if (nyPlatsPosition != null) { System.out.println(nyPlatsPosition.getX()); -//-----------------------------------BestĂ€m huruvida du ska göra NamedPlace lr DescribedPlace----------------------------------------------------------------- - - if(choosePlaceType.getSelectedItem().equals(("NamedPlace"))){ - nyPlats = new NamedPlace(name , nyPlatsPosition, register); - nyPlats.setCategory(choosePlaceCategory()); - - register.addPlace(nyPlats); - imageArea.add(nyPlats); //VADÅ FÖR LISTA? - - nyPlats.repaint(); + // -----------------------------------BestĂ€m huruvida du ska + // göra NamedPlace lr + // DescribedPlace----------------------------------------------------------------- - System.out.println(nyPlats); - System.out.println((String)choosePlaceType.getSelectedItem()); //För att visa att det gĂ„r! - - } - else if(choosePlaceType.getSelectedItem().equals("DescribedPlace")){ - - if(description != null){ - nyPlats = new DescribedPlace(name , nyPlatsPosition, register, description); + if (choosePlaceType.getSelectedItem().equals(("NamedPlace"))) { + nyPlats = new NamedPlace(name, nyPlatsPosition, register); nyPlats.setCategory(choosePlaceCategory()); - - register.addPlace(nyPlats); - imageArea.add(nyPlats); //VADÅ FÖR LISTA? - + + register.addPlace(nyPlats); + imageArea.add(nyPlats); // VADÅ FÖR LISTA? + nyPlats.repaint(); System.out.println(nyPlats); - System.out.println((String)choosePlaceType.getSelectedItem()); //För att visa att det gĂ„r! + System.out.println((String) choosePlaceType.getSelectedItem()); // För + // att + // visa + // att + // det + // gĂ„r! + + } else if (choosePlaceType.getSelectedItem().equals("DescribedPlace")) { + + if (description != null) { + nyPlats = new DescribedPlace(name, nyPlatsPosition, register, description); + nyPlats.setCategory(choosePlaceCategory()); + + register.addPlace(nyPlats); + imageArea.add(nyPlats); // VADÅ FÖR LISTA? + + nyPlats.repaint(); + + System.out.println(nyPlats); + System.out.println((String) choosePlaceType.getSelectedItem()); // För + // att + // visa + // att + // det + // gĂ„r! } } } - } - else{ - System.out.println("Tom strĂ€ng"); // TEST ---> Funkar INFÖR EN POP-UP! + } else { + System.out.println("Tom strĂ€ng"); // TEST ---> Funkar INFÖR EN + // POP-UP! imageArea.removeMouseListener(this); c = Cursor.getDefaultCursor(); mapScrollbar.setCursor(c); return; } } - - public void mouseExited(MouseEvent mev){ + + public void mouseExited(MouseEvent mev) { c = Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR); mapScrollbar.setCursor(c); } - - public Position getClick(){ - pos = new Position (clickX, clickY); + + public Position getClick() { + pos = new Position(clickX, clickY); return pos; } } - - class ChoosePlaceTypeLyss implements ActionListener{ - - public void actionPerformed(ActionEvent ave){ + + class ChoosePlaceTypeLyss implements ActionListener { + + public void actionPerformed(ActionEvent ave) { mouseLyss = new MouseLyss(); - imageArea.addMouseListener(mouseLyss); - - - if(choosePlaceType.getSelectedItem().equals(("NamedPlace"))){ - name = createNamedPlace(); - } - else if(choosePlaceType.getSelectedItem().equals("DescribedPlace")){ + imageArea.addMouseListener(mouseLyss); + + if (choosePlaceType.getSelectedItem().equals(("NamedPlace"))) { + name = createNamedPlace(); + } else if (choosePlaceType.getSelectedItem().equals("DescribedPlace")) { String[] nameAndDescription = createDescribedPlace(); - if(nameAndDescription != null && nameAndDescription.length>0){ + if (nameAndDescription != null && nameAndDescription.length > 0) { name = nameAndDescription[0]; description = nameAndDescription[1]; } } } } - - class SearchLyss implements ActionListener{ - - public void actionPerformed(ActionEvent ave){ + + class SearchLyss implements ActionListener { + + public void actionPerformed(ActionEvent ave) { String searchName = searchField.getText(); register.searchByName(searchName); } } - - class HideLyss implements ActionListener{ - - public void actionPerformed(ActionEvent ave){ - for(Place p : register.getMarkedPlace()){ + + class HideLyss implements ActionListener { + + public void actionPerformed(ActionEvent ave) { + for (Place p : register.getMarkedPlace()) { p.setDontShowInfo(); p.setVisible(false); } } } - - class RemoveLyss implements ActionListener{ - - public void actionPerformed(ActionEvent ave){ - - for(Place p :register.getMarkedPlace()){ + + class RemoveLyss implements ActionListener { + + public void actionPerformed(ActionEvent ave) { + + for (Place p : register.getMarkedPlace()) { imageArea.remove(p); System.out.println("Tar bort " + p.getName()); } - + register.removeMarkedPlaces(); imageArea.repaint(); } } - - class WhatIsHereLyss implements ActionListener{ - - public void actionPerformed(ActionEvent ave){ + + class WhatIsHereLyss implements ActionListener { + + public void actionPerformed(ActionEvent ave) { MapClick mapClick = new MapClick(); imageArea.addMouseListener(mapClick); - + } } - - class ShowCategoryLyss implements ListSelectionListener{ - - public void valueChanged(ListSelectionEvent lev){ + + class ShowCategoryLyss implements ListSelectionListener { + + public void valueChanged(ListSelectionEvent lev) { String toCheck = categoryList.getSelectedValue(); - - if(categoryList.getSelectedValue()!= null){ - switch(toCheck){ - case "Bus": - for(Place p : register.getBusPlace()){ - System.out.print("Bus"); - p.setVisible(true); - } - break; - - - case "Train": - for(Place p : register.getTrainPlace()){ - System.out.print("tĂ„g"); - p.setVisible(true); - } - break; - - case "Subway": - for(Place p : register.getSubwayPlace()){ - System.out.print("t-bana"); - p.setVisible(true); - } - break; - - default: + + if (categoryList.getSelectedValue() != null) { + switch (toCheck) { + case "Bus": + for (Place p : register.getBusPlace()) { + System.out.print("Bus"); + p.setVisible(true); + } + break; + + case "Train": + for (Place p : register.getTrainPlace()) { + System.out.print("tĂ„g"); + p.setVisible(true); + } + break; + + case "Subway": + for (Place p : register.getSubwayPlace()) { + System.out.print("t-bana"); + p.setVisible(true); + } + break; + + default: } } } } - - class HideCategoryLyss implements ActionListener{ - - public void actionPerformed(ActionEvent ave){ + + class HideCategoryLyss implements ActionListener { + + public void actionPerformed(ActionEvent ave) { String toCheck = categoryList.getSelectedValue(); - if(categoryList.getSelectedValue()!= null){ - switch(toCheck){ - case "Bus": - for(Place p : register.getBusPlace()){ - System.out.print("Bus"); - p.setNotMarked(); - p.setDontShowInfo(); - p.setVisible(false); - } - break; - - - case "Train": - for(Place p : register.getTrainPlace()){ - System.out.print("tĂ„g"); - p.setNotMarked(); - p.setDontShowInfo(); - p.setVisible(false); - } - break; - - case "Subway": - for(Place p : register.getSubwayPlace()){ - System.out.print("t-bana"); - p.setNotMarked(); - p.setDontShowInfo(); - p.setVisible(false); - } - break; - - default: + if (categoryList.getSelectedValue() != null) { + switch (toCheck) { + case "Bus": + for (Place p : register.getBusPlace()) { + System.out.print("Bus"); + p.setNotMarked(); + p.setDontShowInfo(); + p.setVisible(false); + } + break; + + case "Train": + for (Place p : register.getTrainPlace()) { + System.out.print("tĂ„g"); + p.setNotMarked(); + p.setDontShowInfo(); + p.setVisible(false); + } + break; + + case "Subway": + for (Place p : register.getSubwayPlace()) { + System.out.print("t-bana"); + p.setNotMarked(); + p.setDontShowInfo(); + p.setVisible(false); + } + break; + + default: } } - } + } } - class NewMapLyss implements ActionListener{ - - public void actionPerformed(ActionEvent ave){ + class NewMapLyss implements ActionListener { + + public void actionPerformed(ActionEvent ave) { int ok = JFileChooser.APPROVE_OPTION; - int jfcSvar = jfc.showOpenDialog(newMap); // för att kunna ladda filer - if (jfcSvar == ok){ - - if(centerPanel.getComponents() != null){ + int jfcSvar = jfc.showOpenDialog(newMap); // för att kunna ladda + // filer + if (jfcSvar == ok) { + + if (centerPanel.getComponents() != null) { centerPanel.removeAll(); } - - valdFil = jfc.getSelectedFile(); - longName = valdFil.getAbsolutePath(); - imageArea = new ImageArea(); - imageArea.setSize(image.getIconWidth(),image.getIconHeight()); - imageArea.setPreferredSize(new Dimension(image.getIconWidth(),image.getIconHeight())); //kan skapa platser utanför bilden.. :( - mapScrollbar = new JScrollPane(imageArea); - centerPanel.add(mapScrollbar); - centerPanel.validate(); - } + + valdFil = jfc.getSelectedFile(); + longName = valdFil.getAbsolutePath(); + imageArea = new ImageArea(); + imageArea.setSize(image.getIconWidth(), image.getIconHeight()); + imageArea.setPreferredSize(new Dimension(image.getIconWidth(), image.getIconHeight())); // kan + // skapa + // platser + // utanför + // bilden.. + // :( + mapScrollbar = new JScrollPane(imageArea); + centerPanel.add(mapScrollbar); + centerPanel.validate(); + } } } - - class LoadPlacesLyss implements ActionListener{ - public void actionPerformed(ActionEvent ave){ - + + class LoadPlacesLyss implements ActionListener { + public void actionPerformed(ActionEvent ave) { + int ok = JFileChooser.APPROVE_OPTION; - int jfcSvar = jfc.showOpenDialog(ProgramTest.this); // för att kunna ladda filer - if (jfcSvar == ok){ - - if(imageArea.getComponents() != null){ + int jfcSvar = jfc.showOpenDialog(ProgramTest.this); + if (jfcSvar == ok) { + + if (imageArea.getComponents() != null) { imageArea.removeAll(); } valdFil = jfc.getSelectedFile(); longName = valdFil.getAbsolutePath(); - - for(Place p :register.loadFile(longName)){ + + for (Place p : register.loadFile(longName)) { imageArea.add(p); } } imageArea.repaint(); } } - - class SaveLyss implements ActionListener{ + + class SaveLyss implements ActionListener{ // KOLLA UPP SAVE! public void actionPerformed(ActionEvent ave){ int ok = JFileChooser.APPROVE_OPTION; int jfcSvar = jfc.showSaveDialog(ProgramTest.this); if(jfcSvar == ok){ - try - { - FileWriter file = new FileWriter(longName); - PrintWriter out = new PrintWriter(file); - - - - for(Place place : register.getPositionPlaceCollection().values()) - { - out.println(place.toString()); - out.close(); - } - + valdFil = jfc.getSelectedFile(); + longName = valdFil.getAbsolutePath(); + + try(FileWriter file = new FileWriter(longName); PrintWriter out = new PrintWriter(file);){ + + for(Place place : register.getPositionPlaceCollection().values()){ + out.println(place.toString()); + } } - catch(IOException e) - { + catch(IOException e){ System.out.println("IOException"); } } @@ -555,4 +556,3 @@ public static void main(String []args){ } } - diff --git a/src/places/TravelCategory.java b/src/places/TravelCategory.java index 74fda0e..9bf5512 100644 --- a/src/places/TravelCategory.java +++ b/src/places/TravelCategory.java @@ -4,6 +4,6 @@ public enum TravelCategory { BUS, TRAIN, SUBWAY; - //NO_CATEGORY + //NO_CATEGORY ----------------->Category = NONE }