Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.net.*;
- import java.awt.GridLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.io.*;
- import javax.swing.AbstractAction;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JMenu;
- import javax.swing.JMenuBar;
- import javax.swing.JOptionPane;
- import javax.swing.JTextField;
- public class SimpleURL extends JFrame {
- private JTextField jtf1 = null;
- private JTextField jtf2 = null;
- private JButton jb1 = null;
- private JButton jb2 = null;
- // конструктор, инициализирующий ГИП
- public SimpleURL() {
- setTitle("SimpleURL");
- setSize(600, 300);
- GridLayout gl = new GridLayout(4, 1);
- setLayout(gl);
- JMenu fileMenu = new JMenu("Файл");
- JMenu aboutMenu = new JMenu("Информация");
- fileMenu.add(new AbstractAction("Выход (Alt + F4)") {
- @Override
- public void actionPerformed(ActionEvent event) {
- System.exit(0);
- }
- });
- aboutMenu.add(new AbstractAction("Об Авторе") {
- @Override
- public void actionPerformed(ActionEvent event) {
- JOptionPane
- .showConfirmDialog(
- null,
- "Евгений Осипов, 2012 год. \n"
- + "[email protected], www.fastandclever.ru",
- "Об Авторе", JOptionPane.PLAIN_MESSAGE,
- JOptionPane.PLAIN_MESSAGE);
- }
- });
- jtf1 = new JTextField();
- jtf2 = new JTextField();
- jtf2.setText("Пример записи адреса ресурса: http://fastandclever.ru/");
- jtf2.setEditable(false);
- jb1 = new JButton("Получить страницу");
- jb1.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- getURL();
- }
- });
- jb2 = new JButton("Открыть страницу");
- jb2.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- openPage();
- }
- });
- JMenuBar menuBar = new JMenuBar();
- setJMenuBar(menuBar);
- menuBar.add(fileMenu);
- menuBar.add(aboutMenu);
- add(jtf1);
- add(jtf2);
- add(jb1);
- add(jb2);
- }
- // метод, реализующий алгоритм получения html страницы
- void getURL() {
- String adress = jtf1.getText();
- try {
- // переменная типа URL, для хранения адресса страницы сайта
- URL fac = new URL(adress);
- // буферезированный поток чтения данных
- BufferedReader br = new BufferedReader(
- // открытие потока в кодировке utf-8
- new InputStreamReader(fac.openStream(), "UTF-8"));
- int line;
- // буферезированный поток записи данных, которые записываются в файл
- // The_resulting_page.html (кодировка utf-8)
- BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
- new FileOutputStream("The_resulting_page.html"), "UTF-8"));
- // проверка конца файла
- while ((line = br.read()) != -1)
- bw.write(line);
- // закрытие буферезированных потоков
- br.close();
- bw.close();
- // обработка исключений, если сайт не доступен (неизвестный хост) или
- // не правильный формат записи URL адреса
- } catch (MalformedURLException mue) {
- JOptionPane.showConfirmDialog(null,
- "Неизвестный Хост (необходим протокол http или https)", "Ошибка!",
- JOptionPane.PLAIN_MESSAGE,JOptionPane.PLAIN_MESSAGE );
- } catch (IOException ioe) {
- JOptionPane.showConfirmDialog(null,
- "Проверьте правильность написания адреса сайта", "Ошибка!",
- JOptionPane.PLAIN_MESSAGE,JOptionPane.PLAIN_MESSAGE );
- }
- }
- // метод, реализующий алгоритм открытия html страницы
- void openPage() {
- // открытие html страницы браузером по умолчанию
- try {
- java.awt.Desktop.getDesktop().open(
- new File("The_resulting_page.html"));
- } catch (IOException e1) {
- e1.printStackTrace();
- }
- }
- public static void main(String[] args) {
- SimpleURL jframe = new SimpleURL();
- jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- jframe.setVisible(true);
- jframe.setResizable(false);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment