Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package de.marvin.oopLabor5;
- public class Main {
- public static void main(String[] args)
- {
- new MyFrame();
- }
- }
- ////MyFrame
- package de.marvin.oopLabor5;
- import java.awt.Color;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.io.File;
- import javax.swing.JColorChooser;
- import javax.swing.JFileChooser;
- import javax.swing.JFrame;
- import javax.swing.JMenu;
- import javax.swing.JMenuBar;
- import javax.swing.JMenuItem;
- public class MyFrame implements ActionListener
- {
- private int sizeWidth = 600;
- private int sizeHeight = 600;
- private JMenuBar myMenuBar = new JMenuBar(); // Menü wird erstellt - Platz reserviert
- private JMenu myMenu = new JMenu("Options"); // OberMenü wird erstellt
- private JMenuItem myMenuItem = new JMenuItem("Farbe des Rahmens"); // UnterMenü wird erstellt
- private JMenuItem myMenuItem2 = new JMenuItem("Bilderverzeichnis Auswählen"); // UnterMenü wird erstellt
- private Fotovorschau fotovorschau = new Fotovorschau();
- protected Color myColor;
- MyFrame()
- {
- JFrame f = new JFrame();
- f.setSize(sizeWidth, sizeHeight);
- f.setLocationRelativeTo(null);
- f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- f.setTitle("Fotovorschau");
- f.add(fotovorschau);
- myMenuBar.add(myMenu); // Dem Menü wird das Obermnü hinzugefügt
- myMenu.add(myMenuItem); // Das Obermenü bekommt das Untermenü
- myMenu.add(myMenuItem2);
- f.setJMenuBar(myMenuBar); // Menü wird dem Frame hinzugefügt
- myMenuItem.addActionListener(this);
- myMenuItem2.addActionListener(this);
- f.setVisible(true);
- }
- @Override
- public void actionPerformed(ActionEvent e)
- {
- if(e.getSource() == myMenuItem)
- {
- Color newColor = JColorChooser.showDialog(fotovorschau, "Farbe wählen", myColor);
- if (newColor != null)
- {
- myColor = newColor;
- fotovorschau.setColor(myColor);
- fotovorschau.repaint();
- }
- }
- if(e.getSource() == myMenuItem2)
- {
- JFileChooser fc = new JFileChooser();
- fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
- int result = fc.showDialog(fotovorschau, "Verzeichnis auswählen");
- if (result == JFileChooser.APPROVE_OPTION)
- {
- File[] fileList = fc.getSelectedFile().listFiles();
- fotovorschau.setBilderAuswahlVerzeichnis(fileList);
- }
- }
- }
- }
- //Fotovorchau
- package de.marvin.oopLabor5;
- import java.awt.BorderLayout;
- import java.awt.Color;
- import java.awt.Dimension;
- import java.awt.FlowLayout;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.Point;
- import java.awt.Toolkit;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.MouseEvent;
- import java.awt.event.MouseMotionListener;
- import java.awt.event.MouseWheelEvent;
- import java.awt.event.MouseWheelListener;
- import java.io.File;
- import javax.swing.ImageIcon;
- import javax.swing.JButton;
- import javax.swing.JPanel;
- public class Fotovorschau extends JPanel implements ActionListener, MouseMotionListener, MouseWheelListener
- {
- private static final long serialVersionUID = 1L;
- private JButton[] buttons = new JButton[5];
- private final ImageIcon bild1 = new ImageIcon("pics/luppeWeg.png");
- private final ImageIcon bild2 = new ImageIcon("pics/luppeRein.png");
- private final ImageIcon bild3 = new ImageIcon("pics/zuruck.png");
- private final ImageIcon bild4 = new ImageIcon("pics/back.png");
- private final ImageIcon bild5 = new ImageIcon("pics/forward.png");
- private int bildNr = 0;
- private int groesseX = 1;
- private int groesseY = 1;
- private int previousX = 0;
- private int previousY = 0;
- private Color rahmenFarbe = null;
- private File[] bilderAuswahlVerzeichnis = null;
- Fotovorschau()
- {
- this.addMouseMotionListener(this);
- this.addMouseWheelListener(this);
- this.setLayout(new BorderLayout());
- this.add(buttonsErstellen(buttons.length), BorderLayout.SOUTH);
- }
- protected Image[] filesToImages()
- {
- if(bilderAuswahlVerzeichnis == null)
- {
- File[] bilder;
- File myDirectory = new File ("pics/verzeichnis");
- bilder = myDirectory.listFiles();
- Image[] dieBilder = new Image[bilder.length];
- for(int i = 0; i < dieBilder.length;i++)
- {
- dieBilder[i] = Toolkit.getDefaultToolkit().getImage(bilder[i].toString());
- }
- return dieBilder;
- }
- else
- {
- Image[] dieBilder2 = new Image[bilderAuswahlVerzeichnis.length];
- for(int i = 0; i < dieBilder2.length;i++)
- {
- dieBilder2[i] = Toolkit.getDefaultToolkit().getImage(bilderAuswahlVerzeichnis[i].toString());
- }
- return dieBilder2;
- }
- }
- protected void setColor(Color farbe)
- {
- this.rahmenFarbe = farbe;
- }
- protected void setBilderAuswahlVerzeichnis(File[] verzeichnisAuswahl)
- {
- this.bilderAuswahlVerzeichnis = verzeichnisAuswahl;
- }
- protected int[] setGroesse()
- {
- int[] groesse = new int[4];
- Dimension dBorder = getSize();
- Dimension dFill = new Dimension(((int)((dBorder.width*groesseX)*0.8)),((int)((dBorder.height*groesseY)*0.8)));
- Point p0Fill = new Point((dBorder.width - dFill.width) /2,(dBorder.height - dFill.height) / 2);
- if(previousX == 0 && previousY == 0)
- {
- groesse[0] = p0Fill.x;
- groesse[1] = p0Fill.y;
- groesse[2] = dFill.width;
- groesse[3] = dFill.height;
- }
- else
- {
- groesse[0] = previousX;
- groesse[1] = previousY;
- groesse[2] = dFill.width;
- groesse[3] = dFill.height;
- }
- return groesse;
- }
- @Override
- protected void paintComponent(Graphics g)
- {
- super.paintComponent(g);
- g.drawImage(filesToImages()[bildNr],setGroesse()[0],setGroesse()[1]-10,setGroesse()[2],setGroesse()[3],this);
- g.setColor(this.rahmenFarbe);
- g.drawRect(setGroesse()[0]-5, setGroesse()[1]-15, setGroesse()[2]+10, setGroesse()[3]+10);
- }
- public JPanel buttonsErstellen(int wieVieleBut)
- {
- JPanel buttonsP = new JPanel();
- buttonsP.setLayout(new FlowLayout());
- for(int i =0; i < wieVieleBut;i++)
- {
- switch(i)
- {
- case 0:
- buttons[i] = new JButton(); //Luppe verkleinern
- buttons[i].setIcon(bild1);
- buttonsP.add(buttons[i]);
- buttons[i].addActionListener(this);
- break;
- case 1:
- buttons[i] = new JButton(); //Luppe vergrößern
- buttons[i].setIcon(bild2);
- buttonsP.add(buttons[i]);
- buttons[i].addActionListener(this);
- break;
- case 2:
- buttons[i] = new JButton(); //Bild zurücksetzen
- buttons[i].setIcon(bild3);
- buttonsP.add(buttons[i]);
- buttons[i].addActionListener(this);
- break;
- case 3:
- buttons[i] = new JButton(); // weiter gehen
- buttons[i].setIcon(bild4);
- buttonsP.add(buttons[i]);
- buttons[i].addActionListener(this);
- break;
- case 4:
- buttons[i] = new JButton(); // zurück gehen
- buttons[i].setIcon(bild5);
- buttonsP.add(buttons[i]);
- buttons[i].addActionListener(this);
- break;
- default:
- buttons[i] = new JButton(); // zurück gehen
- buttons[i].setIcon(bild5);
- buttonsP.add(buttons[i]);
- buttons[i].addActionListener(this);
- break;
- }
- }
- return buttonsP;
- }
- @Override
- public void actionPerformed(ActionEvent e)
- {
- if(e.getSource() == buttons[0])
- {
- if(groesseX > 1 && groesseY > 1)
- {
- groesseX--;
- groesseY--;
- }
- repaint();
- }
- else if(e.getSource() == buttons[1])
- {
- groesseX++;
- groesseY++;
- repaint();
- }
- else if(e.getSource() == buttons[2])
- {
- groesseX = 1;
- groesseY = 1;
- previousX = 0;
- previousY = 0;
- repaint();
- }
- else if(e.getSource() == buttons[3])
- {
- if(bildNr <= 0)
- {
- this.bildNr = filesToImages().length;
- }
- this.bildNr--;
- repaint();
- }
- else if(e.getSource() == buttons[4])
- {
- this.bildNr++;
- if(bildNr >= filesToImages().length)
- {
- this.bildNr = 0;
- }
- repaint();
- }
- }
- @Override
- public void mouseDragged(MouseEvent e)
- {
- previousX = e.getX();
- previousY = e.getY();
- repaint();
- }
- @Override
- public void mouseMoved(MouseEvent e){}
- @Override
- public void mouseWheelMoved(MouseWheelEvent e)
- {
- if(e.getScrollType() == MouseWheelEvent.WHEEL_UNIT_SCROLL)
- {
- if(groesseX > 0)
- {
- groesseX += e.getWheelRotation();
- groesseY += e.getWheelRotation();
- }
- else
- {
- groesseX = 1;
- groesseY = 1;
- }
- repaint();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment