I am sorry but my major does not cover programming in depth

I am sorry but my major does not cover programming in depth (ICT) and we are expected to know advanced java programming. I am looking for help. I have purchased a book from Oracle but I will not be up to speed this semester. Please Help me!!!

1. Write an app called viewer that will have a Label at the top saying \"My Viewer\" (or something like that)

2. Will have JButtons at the bottom that will do Next, Previous, and Quit

3. Have the whole middle be a JLabel in which you will display Images stored in a directory.

4. The directory can be named Resource.

5. When you run the program (java viewer) it will read all the names in the Resource Directory. Then, when you click Next or Previous it will display an Image.

6. Note: you will need to find a java method that exists for reading a whole directory of filenames. You can store all those names in a String Array when run the program.

7. You will use a counter or index that is an int an when you click Next it will increment the counter until it reach some maximum value and then you will set it to 0. Previous will decrement the counter until it goes negative and then it will set the counter to the Maximum index ( which is how many filenames you have in the Image names array)

8. Submit the program viewer.java I should be able to use it with my own Resource directory

Solution

Compilation process

javac Viewer.java

Run

java Viewer

Click on next or previous a file chooser will be opened and you can select your file

The Code is in four file.

// File Dg.java

import java.io.File;

public class Dg {
   public File nextFile(File file) {
       File f[] = new File[5000];
      
       f = file.getParentFile().listFiles(new ImageFileFilter());
       int max = f.length;
       max = max - 1;
      
  
       // System.out.println(file);
       for (int i = 0; i < f.length; i++) {
          
               if (f[i].equals(file)) {

                   if (i + 1 > max) {
                       return f[0];
                   } else {
                       return f[i + 1];
                   }

               } else {
                   // System.out.println(0);
                   // return file;
               }
           }
      
       return file;

}

   public File priFile(File file) {
       File f[] = new File[5000];
       f = file.getParentFile().listFiles(new ImageFileFilter());
       int min = 0;
       // System.out.println(file);
       for (int i = 0; i < f.length; i++) {
           if (f[i].equals(file)) {
               min = i - 1;
               if (min < 0) {
                   return f[f.length-1];
               } else {
                   return f[min];
               }
           } else {
               // System.out.println(0);
               // return file;
           }
       }
       return file;

   }
  
}

/// Image.java

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JPanel;
import java.awt.Color;
import javax.swing.JLabel;
import java.awt.Font;

public class Image extends JPanel {

   /**
   *
   */
   private static final long serialVersionUID = 1L;
   public BufferedImage img = null;

   /**
   * Create the panel.
   */

   @SuppressWarnings(\"static-access\")
   public Image() {
      
      
      
       setBackground(new Color(255, 255, 255));
       setLayout(null);
      
  

       try {
           Viewer ocr = new Viewer();
           img = ImageIO.read(ocr.file);
           JLabel lblNewLabel = new JLabel(Viewer.file.getName());
           lblNewLabel.setFont(new Font(\"Times New Roman\", Font.PLAIN, 18));
           lblNewLabel.setBounds(10, 25, 268, 24);
           add(lblNewLabel);

       } catch (IOException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }

   }

   public JPanel getPanel(File file) {
       JPanel p = new JPanel();
       BufferedImage b = null;

       try {
           b = ImageIO.read(file);
       } catch (IOException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }
      
       Graphics g = b.getGraphics();
       Graphics2D gd = (Graphics2D) g;
       gd.drawImage(b, AffineTransform.getScaleInstance(.5, .5), null);

       return p;
   }

   public void paint(Graphics g) {
       // TODO Auto-generated method stub
       super.paint(g);

       // System.out.println(\"getimage1\");
       Graphics2D gd = (Graphics2D) g;
       int h = img.getHeight();
       int w = img.getWidth();
       int x1 = 0, x2 = 0, x3 = 0, x4 = 0;
       if (h < 550 && w < 1250) {
           x1 = (1250 - w) / 2;
           x2 = (550 - h) / 2;
           x3 = w;
           x4 = h;
          
       } else if (h < 550 && w >= 1250) {
           x1 = 20;
           x2 = (550 - h) / 2;
           x3 = 1250;
           x4 = (int) (h * (1250.0 / w));
           x2 = (550 - x4) / 2;
      
       } else if (h >= 550 && w < 1250) {
          
           x1=(1250-w)/2;
           x2=50;
           x3=(int) (w*(550.0/h));
           x1=(1250-x3)/2;
           x4=550;
      
       } else {
          
           x3=(int) (w*(550.0/h));
           x4=550;
           if(x3>1250)
           {
               x3=1200;
                   x4 = (int) (h * (1250.0 / x3));
           }
           x1 = (1250 - x3) / 2;
          
           x2 = (550 - x4) / 2;
           x2=50;
           //.out.println(x2);
          
       }
       // System.out.println(y1);
       // gd.drawImage(img, AffineTransform.getScaleInstance(x1, x1), null);
  
       gd.drawImage(img, x1, x2, x3, x4, null);
      
  
   }
}

// Viewer.java


import java.awt.Color;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.LineBorder;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

public class Viewer {

   private JFrame frmImageViewer;

   /**
   * Launch the application.
   */
   JPanel jPanel1 = new JPanel();
   JPanel panel = null;
   static File file = null;
   JButton openButton, saveButton;
   JFileChooser fc, fc1;

   public static void main(String[] args) {
       EventQueue.invokeLater(new Runnable() {
           @Override
           public void run() {
               try {
                   Viewer window = new Viewer();

                   window.frmImageViewer.setVisible(true);
               } catch (Exception e) {
                   e.printStackTrace();
               }
           }
       });
   }

   /**
   * Create the application.
   */
   public Viewer() {
       initialize();
   }

   /**
   * Initialize the contents of the frame.
   */
   private void initialize() {
       try {
           frmImageViewer = new JFrame();

           frmImageViewer.setTitle(\"My Viewer\");
           // frmImageViewer.getContentPane().setBackground(
           // new Color(74, 204, 56));

           frmImageViewer.getContentPane().setLayout(null);

           JButton btnNewButton = new JButton(\"Previous\");
           btnNewButton.addKeyListener(new KeyAdapter() {
               @Override
               public void keyPressed(KeyEvent arg0) {

                   if (arg0.getExtendedKeyCode() == 37) {

                       doPri();
                   }
                   if (arg0.getExtendedKeyCode() == 39) {

                       doNext();
                   }

               }
           });
           btnNewButton.addActionListener(new ActionListener() {
               @Override
               public void actionPerformed(ActionEvent arg0) {
                   doPri();
               }
           });
           btnNewButton.setBounds(125, 638, 89, 23);
           frmImageViewer.getContentPane().add(btnNewButton);

           JButton btnNewButton_1 = new JButton(\"Next\");
           btnNewButton_1.addKeyListener(new KeyAdapter() {
               @Override
               public void keyPressed(KeyEvent arg0) {
                   if (arg0.getExtendedKeyCode() == 37) {
                       System.gc();
                       doPri();
                   }
                   if (arg0.getExtendedKeyCode() == 39) {
                       System.gc();
                       doNext();
                   }
               }
           });
           btnNewButton_1.addActionListener(new ActionListener() {
               @Override
               public void actionPerformed(ActionEvent arg0) {
                   doNext();
                   System.gc();
               }
           });
           btnNewButton_1.setBounds(999, 638, 89, 23);
           frmImageViewer.getContentPane().add(btnNewButton_1);

           JButton button = new JButton(\"close\");
           button.addActionListener(new ActionListener() {
               @Override
               public void actionPerformed(ActionEvent arg0) {
                   // frmImageViewer.setState(Frame.ICONIFIED);
                   System.exit(0);
               }
           });
           button.setForeground(new Color(255, 255, 204));
           button.setBorder(new LineBorder(new Color(0, 0, 0)));
           button.setBackground(new Color(204, 0, 51));
           button.setBounds(1271, 0, 95, 25);
           frmImageViewer.getContentPane().add(button);

           JMenuBar menuBar = new JMenuBar();
           menuBar.setBounds(0, 0, 1370, 21);

           frmImageViewer.getContentPane().add(menuBar);
           JMenu mnNewMenu = new JMenu(\"File \");
           menuBar.add(mnNewMenu);
           final JMenuItem item = new JMenuItem(
                   \"Open \");
           item.addActionListener(new ActionListener() {
               @Override
               public void actionPerformed(ActionEvent arg0) {
                   if (panel != null) {
                       frmImageViewer.getContentPane().remove(panel);

                       frmImageViewer.repaint();
                   }
                   fc = new JFileChooser(\"\");
                   fc.setDragEnabled(true);
                   FileNameExtensionFilter filter = new FileNameExtensionFilter(
                           \"JPG & GIF Images\", \"jpg\", \"gif\");
                   fc.setFileFilter(filter);

                   int returnVal = fc.showOpenDialog(item);
                   if (returnVal == JFileChooser.APPROVE_OPTION) {
                       file = fc.getSelectedFile();

                       // System.out.println(23);

                       ImageFileFilter fileFilter = new ImageFileFilter();

                       if (fileFilter.accept(file)) {
                           panel = new Image();
                           // panel.setBounds(10, 11, 813, 366);

                           panel.setBounds(0, 0, 1366, 682);
                           frmImageViewer.getContentPane().add(panel);

                           frmImageViewer.repaint();

                       } else {
                           JOptionPane.showMessageDialog(item,
                                   \"File Should be an image\");
                       }
                   }
               }
           });
           JMenuItem item1 = new JMenuItem(\"Exit\");
           item1.addActionListener(new ActionListener() {
               @Override
               public void actionPerformed(ActionEvent arg0) {

                   System.exit(0);
               }
           });

           mnNewMenu.add(item);
           mnNewMenu.add(item1);

           frmImageViewer.setBounds(0, 0, 1366, 728);
           frmImageViewer.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       } catch (Exception e) {
           // TODO: handle exception
           JOptionPane.showMessageDialog(null, e.getMessage() + e.getClass());
       }
   }

   public void doPri() {
       if (panel != null) {
           frmImageViewer.getContentPane().remove(panel);
           frmImageViewer.repaint();
       }
       if (file == null) {
           fc = new JFileChooser(\"\");
           fc.setDragEnabled(true);
           FileNameExtensionFilter filter = new FileNameExtensionFilter(
                   \"JPG & GIF Images\", \"jpg\", \"gif\");
           fc.setFileFilter(filter);
           int returnVal = fc.showOpenDialog(null);
           if (returnVal == JFileChooser.APPROVE_OPTION) {
               file = fc.getSelectedFile();
               ImageFileFilter fileFilter = new ImageFileFilter();

               if (fileFilter.accept(file)) {
                   panel = new Image();
                   // panel.setBounds(10, 11, 813, 366);

                   panel.setBounds(0, 0, 1366, 682);
                   panel.setOpaque(true);

                   frmImageViewer.getContentPane().add(panel);

                   frmImageViewer.repaint();

               } else {
                   JOptionPane.showMessageDialog(jPanel1,
                           \"File Should be an image\");
               }
           }
       } else {
           file = new Dg().priFile(file);
           ImageFileFilter fileFilter = new ImageFileFilter();

           if (fileFilter.accept(file)) {
               panel = new Image();
               // panel.setBounds(10, 11, 813, 366);

               panel.setBounds(0, 0, 1366, 682);
               panel.setOpaque(true);
               frmImageViewer.getContentPane().add(panel);

               frmImageViewer.repaint();

           } else {
               JOptionPane.showMessageDialog(jPanel1,
                       \"File Should be an image\");
           }
       }

       // System.out.println(23);

   }

   public void doNext() {
       if (panel != null) {
           frmImageViewer.getContentPane().remove(panel);
           frmImageViewer.repaint();
       }

       if (file == null) {
           fc = new JFileChooser(\"\");
           fc.setDragEnabled(true);
           FileNameExtensionFilter filter = new FileNameExtensionFilter(
                   \"JPG & GIF Images\", \"jpg\", \"gif\");
           fc.setFileFilter(filter);
           int returnVal = fc.showOpenDialog(null);
           if (returnVal == JFileChooser.APPROVE_OPTION) {
               file = fc.getSelectedFile();
               ImageFileFilter fileFilter = new ImageFileFilter();

               if (fileFilter.accept(file)) {

                   panel = new Image();
                   // panel.setBounds(10, 11, 813, 366);
                   panel.repaint();
                   panel.setBounds(0, 0, 1366, 682);
                   frmImageViewer.getContentPane().add(panel);

                   frmImageViewer.repaint();

               } else {
                   JOptionPane.showMessageDialog(jPanel1,
                           \"File Should be an image\");
               }
           }
       } else {

           file = new Dg().nextFile(file);
           ImageFileFilter fileFilter = new ImageFileFilter();

           if (fileFilter.accept(file)) {

               panel = new Image();
               // panel.setBounds(10, 11, 813, 366);

               panel.setBounds(0, 0, 1366, 682);

               panel.repaint();
               frmImageViewer.getContentPane().add(panel);

               frmImageViewer.repaint();

           } else {

               JOptionPane.showMessageDialog(jPanel1,
                       \"File Should be an image\");
           }
       }

       // System.out.println(23);

   }
}

// ImageFileFilter.java

import java.io.*;

/**
* A class that implements the Java FileFilter interface.
*/
public class ImageFileFilter implements FileFilter
{
private final String[] okFileExtensions =
new String[] {\"jpg\", \"png\", \"gif\"};

public boolean accept(File file)
{
for (String extension : okFileExtensions)
{
if (file.getName().toLowerCase().endsWith(extension))
{
return true;
}
}
return false;
}
}

I am sorry but my major does not cover programming in depth (ICT) and we are expected to know advanced java programming. I am looking for help. I have purchased
I am sorry but my major does not cover programming in depth (ICT) and we are expected to know advanced java programming. I am looking for help. I have purchased
I am sorry but my major does not cover programming in depth (ICT) and we are expected to know advanced java programming. I am looking for help. I have purchased
I am sorry but my major does not cover programming in depth (ICT) and we are expected to know advanced java programming. I am looking for help. I have purchased
I am sorry but my major does not cover programming in depth (ICT) and we are expected to know advanced java programming. I am looking for help. I have purchased
I am sorry but my major does not cover programming in depth (ICT) and we are expected to know advanced java programming. I am looking for help. I have purchased
I am sorry but my major does not cover programming in depth (ICT) and we are expected to know advanced java programming. I am looking for help. I have purchased
I am sorry but my major does not cover programming in depth (ICT) and we are expected to know advanced java programming. I am looking for help. I have purchased
I am sorry but my major does not cover programming in depth (ICT) and we are expected to know advanced java programming. I am looking for help. I have purchased

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site