Java browser: Main.java

Content of Main.java extracted from checkweb.jar

// check web links using multi-thread
// version 0.1: initial version
// version 0.2: adapted to JDK 1.5
// version 0.3: adapted to package concept
//
// requires FetchURL.java and HttpConnection.java
// add comments!
package checkweb;
 
import java.io.*;
 
import java.util.Date;
import java.util.ArrayList;
import java.lang.reflect.*;
 
 
import javax.swing.*;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
 
import javax.swing.table.DefaultTableModel;
 
public class Main extends JPanel {
	static final String WindowTitle = "Check web links"; // title of the main window
    static final String cache = "cache";  // directory used to contain files
	static JTable table;
 
    public Main(Object[][] data) {
        super(new GridLayout(1,0));
 
        String[] columnNames = {"URL","State"};
 
//		table = new JTable(data, columnNames);
		table = new JTable(new DefaultTableModel(data, columnNames))	{
			public boolean isCellEditable(int row, int col) {
// protect cell content by returning <false>
				return false;
			}
		};
        table.setPreferredScrollableViewportSize(new Dimension(500, 200));
		table.setRowSelectionAllowed(false);
 
 
        //Create the scroll pane and add the table to it.
        JScrollPane scrollPane = new JScrollPane(table);
 
        //Add the scroll pane to this panel.
        add(scrollPane);
    }
 
 
    /**
     * Create the GUI and show it.  For thread safety,
     * this method should be invoked from the
     * event-dispatching thread.
     */
    private static void createAndShowGUI(Object[][] data) {
        //Make sure we have nice window decorations.
        JFrame.setDefaultLookAndFeelDecorated(true);
 
        //Create and set up the window.
        JFrame frame = new JFrame(WindowTitle);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
        //Create and set up the content pane.
        Main newContentPane = new Main(data);
        newContentPane.setOpaque(true); //content panes must be opaque
        frame.setContentPane(newContentPane);
 
        //Display the window.
        frame.pack();
        frame.setVisible(true);
    }
 
 public static void main(String args[]) {
    if(args.length ==1) {
    try
    {
		File dir =  new File(cache);
		if (!dir.exists()) 	dir.mkdir();
		LineNumberReader in = new LineNumberReader(new FileReader(args[0]));
// JDK 1.5
		ArrayList<String> data = new ArrayList<String>();
		String s;
		while ((s = in.readLine()) != null)
		{   s = s.trim();
			if (s.length() != 0) data.add(s);
		}
		in.close();
	    int[] dimStr = {data.size(), 2};
	    Object[][] data2 = 
					 (Object[][]) Array.newInstance(Object.class,dimStr);
		for (int i = 0; i < data.size(); i++)
		{ data2[i][0] = data.get(i);
		  data2[i][1] = "trying...";
		}
 
		try {
			UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
	    } catch (Exception e) { }    
 
		createAndShowGUI(data2);
		for (int i = 0; i < data.size(); i++)
		{ 
		  new FetchURL((String)data.get(i), i, table);
		}
 
	}catch (IOException ex){
	   System.err.println(ex);
	}
  } else {
   System.err.println("Usage: java checkweb.Main filename");
  }
 
 }
}
Share Share on Facebook Share on Twitter Bookmark on Reddit Share via mail
Privacy Policy Creative Commons Attribution-Share Alike Trovami