PhotoWidget JavaSwing

profileCateau
PhotoBrowser.zip

PhotoBrowser/.idea/misc.xml

PhotoBrowser/.idea/modules.xml

PhotoBrowser/.idea/uiDesigner.xml

PhotoBrowser/.idea/workspace.xml

1631621781254 1631621781254

PhotoBrowser/PhotoBrowser.iml

PhotoBrowser/src/Main.java

PhotoBrowser/src/Main.java

public   class   Main   {
     public   static   void  main ( String []  args )   {
         PhotoFrame  frame  =   new   PhotoFrame ();
        frame . setVisible ( true );
     }
}

PhotoBrowser/src/PhotoFrame.java

PhotoBrowser/src/PhotoFrame.java

import  javax . swing . * ;
import  javax . swing . border . Border ;
import  javax . swing . filechooser . FileNameExtensionFilter ;
import  java . awt . * ;
import  java . awt . event . MouseAdapter ;
import  java . awt . event . MouseEvent ;
import  java . awt . event . MouseListener ;
import  java . awt . image . BufferedImage ;
import  java . io . File ;
import  java . io . IOException ;


public   class   PhotoFrame   extends   JFrame {

     private   JLabel  statusBar  =   new   JLabel   ( "Status" );
     //private PhotoComponent photoComponent = new PhotoComponent();

         public   PhotoFrame ()   {
             super ( "Photothèque" );

            setupUI ();
     }

     private   void  setupUI ()   {
        setPreferredSize ( new   Dimension ( 600 ,   400 ));
        add ( createMenuBar (),   BorderLayout . NORTH );
        add ( createToolbar (),   BorderLayout . WEST );
        add ( statusBar ,   BorderLayout . SOUTH );
         //add(photoComponent, BorderLayout.CENTER);
        pack ();
     }


     private   JToggleButton  createCategory ( String  category ){
         JToggleButton  b  =   new   JToggleButton ( category );
        b . setBackground ( new   Color ( 99 ,   170 ,   166 ));
        b . setForeground ( Color . WHITE );
        b . setBorderPainted ( false );
        b . setPreferredSize ( new   Dimension ( 80 ,   20 ));
        b . setFont ( Font . getFont ( Font . MONOSPACED ));
        b . addMouseListener ( new   MouseAdapter ()   {
             public   void  mouseEntered ( MouseEvent  e )   {
                b . setBackground ( new   Color ( 62 ,   148 ,   144 ));
                 }

             public   void  mouseExited ( MouseEvent  e )   {
                b . setBackground ( new   Color ( 99 ,   170 ,   166 ));
             }
         });
         return  b ;
     }

     private   JScrollPane  createToolbar (){
         JToolBar  tb  =   new   JToolBar ( JToolBar . VERTICAL );
         JLabel  label  =   new   JLabel ( "Categories" );
        tb . add ( label );
         String   []  categories  =   { "People" ,   "Places" ,   "Food" ,   "Fashion" ,   "Fun" ,   "Animals" ,   "Sport" ,   "School" };
         for ( int  i  =   0 ;  i  < categories . length ;  i ++ ){
            tb . add ( createCategory ( categories [ i ]));
         }
        tb . setBackground ( new   Color ( 99 ,   170 ,   166 ));
        label . setForeground ( Color . black );
        tb . setFloatable ( false );
        tb . setRollover ( true );
         JScrollPane  scroll  =   new   JScrollPane ( tb );
         return  scroll ;
     }

     private   JMenuBar  createMenuBar (){
             JMenuBar  mb  =   new   JMenuBar ();
            mb . add ( createFile ());
            mb . add ( createView ());
             return  mb ;
     }
     private   JMenu  createView (){
         JMenu  menu  =   new   JMenu ( "View" );
         ButtonGroup  group  =   new   ButtonGroup ();
         JRadioButtonMenuItem  browser  =   new   JRadioButtonMenuItem ( "Browser" );
        browser . setSelected ( true );
        browser . addActionListener ( ->  statusBar . setText ( "Displays browser view" ));
        group . add ( browser );
        menu . add ( browser );
         JRadioButtonMenuItem  photo  =   new   JRadioButtonMenuItem ( "Photo viewer" );
        photo . addActionListener ( ->  statusBar . setText ( "Displays photo view" ));
        group . add ( photo );
        menu . add ( photo );
         return  menu ;
     }

     private   JMenu  createFile ()   {
         JMenu  menu  =   new   JMenu ( "File" );
        menu . add ( importation ());
        menu . add ( delete ());
        menu . add ( quit ());
         return  menu ;
     }

     private   JMenuItem  quit (){
         JMenuItem  quit  =   new   JMenuItem ( "Quit" );
        quit . addActionListener ( ->   System . exit ( 0 ));
         return  quit ;
     }
     private   JMenuItem  delete (){
         JMenuItem  delete  =   new   JMenuItem ( "Delete" );
        delete . addActionListener ( ->  statusBar . setText ( "Deletes photo" ));
         return  delete ;
     }

     private   JMenuItem  importation ()   {

         JMenuItem  importation  =   new   JMenuItem ( "Import" );
        addPhoto ();
         return  importation ;
     }

     private   void  addPhoto ()   {
         JFileChooser  fileChooser  =   new   JFileChooser ();
        fileChooser . setDialogTitle ( "Choose  picture" );
        importation (). addActionListener ( ->  fileChooser . showOpenDialog ( new   JFrame ()));
        fileChooser . setFileSelectionMode ( JFileChooser . FILES_ONLY );
        fileChooser . setFileFilter ( new   FileNameExtensionFilter ( "Picture files" , "jpg" ,   "png" ,   "jpeg" ));
         String  file  =  fileChooser . getSelectedFile (). getPath ();

         //try {
           //  photoComponent.getModel().loadImage(new File(file));
         //}
         //catch (IOException exception) {
           //  exception.printStackTrace();
         }



     }