evgeniyosipov

SimpleURL.java

Dec 27th, 2014
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.49 KB | None | 0 0
  1. import java.net.*;
  2. import java.awt.GridLayout;
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5. import java.io.*;
  6.  
  7. import javax.swing.AbstractAction;
  8. import javax.swing.JButton;
  9. import javax.swing.JFrame;
  10. import javax.swing.JMenu;
  11. import javax.swing.JMenuBar;
  12. import javax.swing.JOptionPane;
  13. import javax.swing.JTextField;
  14.  
  15. public class SimpleURL extends JFrame {
  16.  
  17.     private JTextField jtf1 = null;
  18.     private JTextField jtf2 = null;
  19.  
  20.     private JButton jb1 = null;
  21.     private JButton jb2 = null;
  22.  
  23.     // конструктор, инициализирующий ГИП
  24.     public SimpleURL() {
  25.  
  26.         setTitle("SimpleURL");
  27.         setSize(600, 300);
  28.  
  29.         GridLayout gl = new GridLayout(4, 1);
  30.         setLayout(gl);
  31.  
  32.         JMenu fileMenu = new JMenu("Файл");
  33.         JMenu aboutMenu = new JMenu("Информация");
  34.  
  35.         fileMenu.add(new AbstractAction("Выход (Alt + F4)") {
  36.             @Override
  37.             public void actionPerformed(ActionEvent event) {
  38.                 System.exit(0);
  39.             }
  40.         });
  41.  
  42.         aboutMenu.add(new AbstractAction("Об Авторе") {
  43.             @Override
  44.             public void actionPerformed(ActionEvent event) {
  45.                 JOptionPane
  46.                         .showConfirmDialog(
  47.                                 null,
  48.                                 "Евгений Осипов, 2012 год. \n"
  49.                                         + "[email protected], www.fastandclever.ru",
  50.                                 "Об Авторе", JOptionPane.PLAIN_MESSAGE,
  51.                                 JOptionPane.PLAIN_MESSAGE);
  52.             }
  53.         });
  54.  
  55.         jtf1 = new JTextField();
  56.         jtf2 = new JTextField();
  57.         jtf2.setText("Пример записи адреса ресурса: http://fastandclever.ru/");
  58.         jtf2.setEditable(false);
  59.  
  60.         jb1 = new JButton("Получить страницу");
  61.         jb1.addActionListener(new ActionListener() {
  62.             @Override
  63.             public void actionPerformed(ActionEvent e) {
  64.  
  65.                 getURL();
  66.  
  67.             }
  68.         });
  69.  
  70.         jb2 = new JButton("Открыть страницу");
  71.         jb2.addActionListener(new ActionListener() {
  72.             @Override
  73.             public void actionPerformed(ActionEvent e) {
  74.  
  75.                 openPage();
  76.  
  77.             }
  78.         });
  79.  
  80.         JMenuBar menuBar = new JMenuBar();
  81.         setJMenuBar(menuBar);
  82.  
  83.         menuBar.add(fileMenu);
  84.         menuBar.add(aboutMenu);
  85.  
  86.         add(jtf1);
  87.         add(jtf2);
  88.         add(jb1);
  89.         add(jb2);
  90.  
  91.     }
  92.  
  93.     // метод, реализующий алгоритм получения html страницы
  94.     void getURL() {
  95.         String adress = jtf1.getText();
  96.  
  97.         try {
  98.             // переменная типа URL, для хранения адресса страницы сайта
  99.             URL fac = new URL(adress);
  100.  
  101.             // буферезированный поток чтения данных
  102.             BufferedReader br = new BufferedReader(
  103.  
  104.             // открытие потока в кодировке utf-8
  105.                     new InputStreamReader(fac.openStream(), "UTF-8"));
  106.  
  107.             int line;
  108.  
  109.             // буферезированный поток записи данных, которые записываются в файл
  110.             // The_resulting_page.html (кодировка utf-8)
  111.             BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
  112.                     new FileOutputStream("The_resulting_page.html"), "UTF-8"));
  113.  
  114.             // проверка конца файла
  115.             while ((line = br.read()) != -1)
  116.                 bw.write(line);
  117.  
  118.             // закрытие буферезированных потоков
  119.             br.close();
  120.             bw.close();
  121.  
  122.             // обработка исключений, если сайт не доступен (неизвестный хост) или
  123.             // не правильный формат записи URL адреса
  124.         } catch (MalformedURLException mue) {
  125.  
  126.             JOptionPane.showConfirmDialog(null,
  127.                     "Неизвестный Хост (необходим протокол http или https)", "Ошибка!",
  128.                     JOptionPane.PLAIN_MESSAGE,JOptionPane.PLAIN_MESSAGE );
  129.  
  130.         } catch (IOException ioe) {
  131.  
  132.             JOptionPane.showConfirmDialog(null,
  133.                     "Проверьте правильность написания адреса сайта", "Ошибка!",
  134.                     JOptionPane.PLAIN_MESSAGE,JOptionPane.PLAIN_MESSAGE );
  135.  
  136.         }
  137.  
  138.     }
  139.  
  140.     // метод, реализующий алгоритм открытия html страницы
  141.     void openPage() {
  142.  
  143.         // открытие html страницы браузером по умолчанию
  144.         try {
  145.             java.awt.Desktop.getDesktop().open(
  146.                     new File("The_resulting_page.html"));
  147.         } catch (IOException e1) {
  148.  
  149.             e1.printStackTrace();
  150.         }
  151.     }
  152.  
  153.     public static void main(String[] args) {
  154.  
  155.         SimpleURL jframe = new SimpleURL();
  156.         jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  157.         jframe.setVisible(true);
  158.         jframe.setResizable(false);
  159.  
  160.     }
  161.  
  162. }
Advertisement
Add Comment
Please, Sign In to add comment