Results 1 to 4 of 4
  1. #1
    abhi29 is offline Member
    Join Date
    Mar 2014
    Posts
    2
    Rep Power
    0

    Exclamation How to add panel to swing with split

    Hi this is Abhishek
    Am trying to do a small project on file explorer, i have add one list directory to the panel. Now i want the same list directory to the right side of the first one.
    Am not able to add it. My idea was to add one list directory to display local files and another list directory will list files from hadoop cluster.
    Some one please help me add the second list directory.
    This is the code

    Java Code:
    import javax.swing.*;
    import java.awt.*;
    import java.text.DateFormat;
    import javax.swing.border.*;
    import java.awt.event.*;
    import javax.swing.event.*;
    import java.io.*;
    import javax.swing.filechooser.FileSystemView;
    import java.io.FileFilter;
    import javax.swing.JToolTip; 
    import javax.swing.ToolTipManager;
    import javax.swing.border.Border;
    import javax.swing.border.LineBorder;
    
    public class Testing extends JFrame implements ActionListener, ItemListener
    
    {
    
    	private JSplitPane splitPaneH;
    	private JPanel topPanel,p1,p2,p3;
    	private JButton up;
    	private JTextField details;
    	private File currentDir;
    	private String[] files;
    	private List list;
    	private FilenameFilter filter;
    	private DateFormat dateFormatter =DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
    	private JPopupMenu popup;
    	private JMenuItem item;
    
    	public Testing()
    	{
    		
    		setBounds(100, 100, 800, 600);
    		//JPanel p1;
    		p1= new JPanel();
    	        p1.setBorder(new EmptyBorder(5, 5, 5, 5));
    	        p1.setLayout(new BorderLayout(1, 1));
    	        setContentPane(p1);
    		topPanel = new JPanel();
        		topPanel.setLayout( new BorderLayout() );
        		getContentPane().add( topPanel );
    		JLabel lbl = new JLabel("Exp");
    	        p1.add(lbl, BorderLayout.NORTH);
    		splitPaneH = new JSplitPane( JSplitPane.HORIZONTAL_SPLIT );
    		topPanel.add( splitPaneH, BorderLayout.CENTER );
    	}
    
    
    
    
    
    	public void Panel2()
    	{	
    		
    		
    		JButton b1,b2,b3,b4;
    		//JTextField t1,t2;
    		//JLabel l1,l2;	
    		p2=new JPanel();
    		p2.setLayout(null);
    		b1=new JButton("Upload");
    		b2=new JButton("Download");
    		b3=new JButton("View files");
    		//t1=new JTextField(10);
    		//t2=new JTextField(10);
    		
    		b4=new JButton("Upload");
    			
    		//t1.setBounds(10,10,110,30);
    		b1.setBounds(10, 45, 110, 30);
    		//t2.setBounds(10, 80, 110, 30);
    		b2.setBounds(10, 110, 110, 30);
    		b3.setBounds(10, 135, 110, 30);
    		b4.setBounds(100, 135, 160, 30);	
    		
    		//p2.add(t1);
    		//p2.add(t2);
    		p2.add(b1);
    		p2.add(b2);
    		p2.add(b3);
    		//p2.setBounds(0,0,150,800);
    		//p2.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
    		add(p2);
    
    		
    
    		
    
    		setVisible(true);
    		setDefaultCloseOperation(EXIT_ON_CLOSE); 
    	}
    
    public void Panel3(String directory,FilenameFilter filter)
    	{
    		//JPanel p3;	
    		p3=new JPanel(new BorderLayout());
    		list =new List();
    		list.addActionListener(this);
    		list.addItemListener(this);
    
    		JToolBar jtb=new JToolBar();
    		
    		up=new JButton();
    		up.setBounds( 0, 0,25,25);
    		up.addActionListener(this);
    		jtb.add(up);
    		p3.add(jtb,BorderLayout.NORTH);
    		
    		details=new JTextField();
    		list.setFont(new Font("MonoSpaced",Font.PLAIN,12));
    		details.setEditable(false);								
    		
    		p3.add(list,"Center");
    		p3.add(details,"South");
    		p3.setBounds(0,0,0,300);
    	
    		listDirectory(directory);
    		
    
    	}	
    
     public void listDirectory(String directory) {
            // Convert the string to a File object, and check that the dir exists
            File dir = new File(directory);
            if (!dir.isDirectory( )) 
               throw new IllegalArgumentException("FileLister: no such directory");
    
            // Get the (filtered) directory entries
            files = dir.list(filter);        
    
            // Sort the list of filenames.
            java.util.Arrays.sort(files);
            
            // Remove any old entries in the list, and add the new ones
            list.removeAll( );
            list.add("[Up to Parent Directory]");  // A special case entry
            for(int i = 0; i < files.length; i++) 
    	{	
    	list.add(files[i]);
    	}
            
            // Display directory name in window titlebar and in the details box
            this.setTitle(directory);
            details.setText(directory);
            
            // Remember this directory for later.
            currentDir = dir;
        }
    
    public void split()
    	{
    		splitPaneH.setDividerSize(15);
    		splitPaneH.setDividerLocation(200);		
    		splitPaneH.setLeftComponent(p2);
    		splitPaneH.setRightComponent(p3);
    		
    	}
    
    
        public void itemStateChanged(ItemEvent e) 
       {
            int i = list.getSelectedIndex( ) - 1;  // minus 1 for Up To Parent entry
            if (i < 0) return;
            String filename = files[i];               // Get the selected entry 
            File f = new File(currentDir, filename);  // Convert to a File
            if (!f.exists( ))                          // Confirm that it exists
                throw new IllegalArgumentException("FileLister: " +
                                                   "no such file or directory");
    
            // Get the details about the file or directory, concatenate to a string
            String info = filename;
            if (f.isDirectory( )) info += File.separator;
            info += " " + f.length( ) + " bytes ";
            info += dateFormatter.format(new java.util.Date(f.lastModified( )));
            if (f.canRead( )) info += " Read";
            if (f.canWrite( )) info += " Write";
            
            // And display the details string
            details.setText(info);
        }
    
     /**
         * This ActionListener method is invoked when the user double-clicks on an 
         * entry or clicks on one of the buttons.  If they double-click on a file,
         * create a FileViewer to display that file.  If they double-click on a
         * directory, call the listDirectory( ) method to display that directory
         **/
    
    
        public void actionPerformed(ActionEvent e) {
         if (e.getSource() == up) {
          up();
        } else if (e.getSource() == list) { 
          int i = list.getSelectedIndex(); 
         
           
            String name = files[i];
            File f = new File(currentDir, name); 
            String fullname = f.getAbsolutePath();
            if (f.isDirectory())
              listDirectory(fullname); 
            else
              new FileViewer(fullname).show(); 
    //      }
        }
      }
        
    /** A convenience method to display the contents of the parent directory */
        protected void up( ) 
    {
            String parent = currentDir.getParent( );
            if (parent == null) return;
            listDirectory(parent);
    }
    
       /** A convenience method used by main( ) */
        public static void usage( ) {
            System.out.println("Usage: java Testing [directory_name] " + 
                               "[-e file_extension]");
            System.exit(0);
        }
    
    public static void main(String args[  ]) 
    
    	{
    
     	Testing mainFrame = new Testing();
    	mainFrame.setVisible( true );
    	mainFrame.Panel2();
    
    
     
            FilenameFilter filter = null;  // The filter, if any
            String directory = null;       // The specified dir, or the current dir
            
            // Loop through args array, parsing arguments
            for(int i = 0; i < args.length; i++) {
                if (args[i].equals("-e")) {
                    if (++i >= args.length) usage( );
                    final String suffix = args[i];  // final for anon. class below
    
                    // This class is a simple FilenameFilter.  It defines the
                    // accept( ) method required to determine whether a specified
                    // file should be listed.  A file will be listed if its name
                    // ends with the specified extension, or if it is a directory.
                    filter = new FilenameFilter( ) {
                            public boolean accept(File dir, String name) {
                                if (name.endsWith(suffix)) return true;
                                else return (new File(dir, name)).isDirectory( );
                            }
                        };
                }
                else {
                    if (directory != null) usage( );  // If already specified, fail.
                    else directory = args[i];
                }
            }
            
            // if no directory specified, use the current directory
            if (directory == null) directory = System.getProperty("user.dir");
            
    	mainFrame.Panel3(directory,filter);
    	mainFrame.split();
    
    		
        }
    }
    
    class FileViewer extends JFrame implements ActionListener {
        String directory;  // The default directory to display in the FileDialog
        JTextArea textarea; // The area to display the file contents into
    
        /** Convenience constructor: file viewer starts out blank */
        public FileViewer() { this(null, null); }
        /** Convenience constructor: display file from current directory */
        public FileViewer(String filename) { this(null, filename); }
    
        /**
         * The real constructor.  Create a FileViewer object to display the
         * specified file from the specified directory
         **/
        public FileViewer(String directory, String filename) {
            super();  // Create the frame
                // Create the frame
          // Destroy the window when the user requests it
          addWindowListener(new WindowAdapter() {
          public void windowClosing(WindowEvent e) { dispose(); }
           });
    
            // Create a TextArea to display the contents of the file in
            textarea = new JTextArea("", 24, 80);
            textarea.setFont(new Font("MonoSpaced", Font.PLAIN, 12));
            textarea.setEditable(false);
            this.add("Center", textarea);
    
            // Create a bottom panel to hold a couple of buttons in
            Panel p = new Panel();
            p.setLayout(new FlowLayout(FlowLayout.RIGHT, 10, 5));
            this.add(p, "South");
    
            // Create the buttons and arrange to handle button clicks
            Font font = new Font("SansSerif", Font.BOLD, 14);
            Button close = new Button("Close");
            close.addActionListener(this);
            close.setFont(font);
            p.add(close);
    
            this.pack();
    
            // Figure out the directory, from filename or current dir, if necessary
            if (directory == null) {
                File f;
                if ((filename != null)&& (f = new File(filename)).isAbsolute()) {
                    directory = f.getParent();
                    filename = f.getName();
                }
                else directory = System.getProperty("user.dir");
            }
    
            this.directory = directory;   // Remember the directory, for FileDialog
            setFile(directory, filename); // Now load and display the file
        }
    
     /**
         * Load and display the specified file from the specified directory
         **/
        public void setFile(String directory, String filename) {
            if ((filename == null) || (filename.length() == 0)) return;
            File f;
            FileReader in = null;
            // Read and display the file contents.  Since we're reading text, we
            // use a FileReader instead of a FileInputStream.
            try {
                f = new File(directory, filename); // Create a file object
                in = new FileReader(f);            // And a char stream to read  it
                char[] buffer = new char[4096];    // Read 4K characters at a time
                int len;                           // How many chars read each time
                textarea.setText("");              // Clear the text area
                while((len = in.read(buffer)) != -1) { // Read a batch of chars
                    String s = new String(buffer, 0, len); // Convert to a string
                    textarea.append(s);                    // And display them
                }
                this.setTitle("FileViewer: " + filename);  // Set the window title
                textarea.setCaretPosition(0);              // Go to start of file
            }
            // Display messages if something goes wrong
            catch (IOException e) {
                textarea.setText(e.getClass().getName() + ": " + e.getMessage());
                this.setTitle("FileViewer: " + filename + ": I/O Exception");
            }
            // Always be sure to close the input stream!
            finally { try { if (in!=null) in.close(); } catch (IOException e) {} }
        }
     /**
         * Handle button clicks
         **/
        public void actionPerformed(ActionEvent e) {
            this.dispose();                  //    then close the window
        }
    
        /**
         * The FileViewer can be used by other classes, or it can be
         * used standalone with this main() method.
         **/
        static public void main(String[] args) throws IOException {
            // Create a FileViewer object
            Frame f = new FileViewer((args.length == 1)?args[0]:null);
            // Arrange to exit when the FileViewer window closes
            f.addWindowListener(new WindowAdapter() {
          public void windowClosed(WindowEvent e) { System.exit(0); }
           });
            // And pop the window up
            f.show();
        }
    }
    I there a way to add panel4 to the right and split it like splitPaneH.setRightComponent(p4) ??
    can some one help me adding, it will be very helpful
    Attached Thumbnails Attached Thumbnails How to add panel to swing with split-screenshot-2014-03-13-11-25-16.png  
    Last edited by abhi29; 03-13-2014 at 07:53 AM.

  2. #2
    gimbal2 is online now Just a guy
    Join Date
    Jun 2013
    Location
    Netherlands
    Posts
    4,000
    Rep Power
    6

    Default Re: How to add panel to swing with split

    "Am not able to add it. "

    Why not?
    "Syntactic sugar causes cancer of the semicolon." -- Alan Perlis

  3. #3
    abhi29 is offline Member
    Join Date
    Mar 2014
    Posts
    2
    Rep Power
    0

    Default Re: How to add panel to swing with split

    Quote Originally Posted by gimbal2 View Post
    "Am not able to add it. "

    Why not?

    what shld i do to add??

  4. #4
    gimbal2 is online now Just a guy
    Join Date
    Jun 2013
    Location
    Netherlands
    Posts
    4,000
    Rep Power
    6

    Default Re: How to add panel to swing with split

    You research, learn and apply what you learned. But that is not the answer to my question. Let me rephrase it: what is stopping you from figuring it out yourself?

    you know that the Swing tutorial exists, right?

    A Visual Guide to Layout Managers (The Java™ Tutorials > Creating a GUI With JFC/Swing > Laying Out Components Within a Container)

    How to Use Various Components (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)
    "Syntactic sugar causes cancer of the semicolon." -- Alan Perlis

Similar Threads

  1. Replies: 1
    Last Post: 03-05-2014, 04:24 PM
  2. Adding swing components to a tabbed panel
    By ras_oscar in forum New To Java
    Replies: 2
    Last Post: 08-25-2013, 04:18 AM
  3. Java Swing - Defining a empty panel for a SplitPane
    By supertreta in forum AWT / Swing
    Replies: 1
    Last Post: 01-02-2012, 05:45 PM
  4. Replies: 1
    Last Post: 05-12-2011, 08:09 AM
  5. How to split a String using split function
    By JavaBean in forum Java Tip
    Replies: 0
    Last Post: 10-04-2007, 09:32 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •