Помощь в написании студенческих работ
Антистрессовый сервис

Разработка менеджера закачек

Курсовая Купить готовую Узнать стоимостьмоей работы

Если файл имеет большой размер, процесс загрузки может занять значительное время. Для остановки длительной загрузки можно воспользоваться кнопкой или пунктом меню «Стоп». В случае если по указанной ссылке не существует файл для загрузки, программа выдаёт сообщение об ошибке (рис. 4.7) и завершает процесс загрузки.Рис. 4. Хорстманн К., Корнелл Г. Java 2. Библиотека профессионала, том 2. Тонкости… Читать ещё >

Разработка менеджера закачек (реферат, курсовая, диплом, контрольная)

Содержание

  • 1. Постановка задачи
  • 2. Описание языка Java
  • 3. Описание классов Класс JFileLoaderGUI. Конструктор Класс JFileLoaderGUI. Метод addFileLoadTask
  • 4. Интерфейс программы
  • Приложение. Текст программы на языке Java
  • КлассJFileLoaderGUI
  • КлассJFileLoader

Ход выполнения загрузки файла показывается в поле журнала загрузки (рис. 4.6). Рис. 4.

6. Процесс загрузки файла

Если файл имеет большой размер, процесс загрузки может занять значительное время. Для остановки длительной загрузки можно воспользоваться кнопкой или пунктом меню «Стоп». В случае если по указанной ссылке не существует файл для загрузки, программа выдаёт сообщение об ошибке (рис. 4.7) и завершает процесс загрузки.Рис. 4.

7. Сообщение об отсутствии исходного файла

Приложение. Текст программы на языке JavaКлассJFileLoaderGUIimportjava.awt.BorderLayout;import java.awt.event.ActionListener;importjava.awt.event.ActionEvent;importjava.awt.FlowLayout;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.awt.FileDialog;importjava.awt.MenuItem;importjava.awt.Menu;importjava.awt.MenuBar;importjava.awt.TextArea;importjava.net.URL;importjava.util.Date;importjava.text.DateFormat;importjava.text.SimpleDateFormat;importjavax.swing.BorderFactory;importjavax.swing.ImageIcon;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JOptionPane;importjavax.swing.JPanel;importjavax.swing.JProgressBar;importjavax.swing.JScrollPane;importjavax.swing.JTextField;publicclassJFileLoaderGUIextendsJFrame{privateMenuBarmenuBar;private Menu menuFile;private Menu menuHelp;private MenuItem mitmStart;private MenuItem mitmStop;private MenuItem mitmClear;private MenuItem mitmExit;private MenuItem mitmAbout;private JLabel lblFilePath;//подписькполюсадресомзагружаемогофайлаprivate JTextField txtFilePath;//aдресзагружаемогофайлаprivate JButton btnStart; //кнопкастартазагрузкиprivate JButton btnStop; //кнопкаостановкизагрузкиprivate JButton btnClear; //кнопкаочисткижурналазагрузокprivateJPanelpanNorth;//панельдляразмещения

Элементов в верхнейчастиокна (панельадреса и кнопки) privateJPanelpanSouth;//панельдляразмещения

Элементов в нижнейчастиокна (панельадреса и кнопки) privateJPanelpanLoaderButtons;//панельдляразмещениякнопокпанелиинструментовprivateJPanelpanFilePath; //панельдляразмещенияполногопути к файлуprivate TextArea txtLog;private JProgressBar progBar;privatebooleanisInterrupted; //признакостановкизагрузкиpublic JFileLoaderGUI (){super («Загрузчикфайлов»);menuBar = newMenuBar ();menuFile = menuBar. add (new Menu («Файл»));menuHelp = menuBar. add (new Menu («Справка»));mitmStart = menuFile. add (new MenuItem («Старт»));mitmStop = menuFile. add (new MenuItem («Стоп»));mitmClear = menuFile. add (new MenuItem («Очистить»));mitmExit = menuFile. add (new MenuItem («Выход»));mitmAbout = menuHelp. add (new MenuItem («Опрограмме…»));lblFilePath = newJLabel («Введите путь к файлу для загрузки:»);txtFilePath = new JTextField (30);URL imgURL = JFileLoaderGUI.class.getResource («img/start.png»);ImageIcon icon = newImageIcon (imgURL);btnStart = new JButton («Старт»);btnStart.setIcon (icon);btnStop = new JButton («Стоп»);imgURL = JFileLoaderGUI.class.getResource («img/stop.png»);icon = newImageIcon (imgURL);btnStop.setIcon (icon);btnClear = new JButton («Очистить»);imgURL = JFileLoaderGUI.class.getResource («img/clear.png»);icon = newImageIcon (imgURL);btnClear.setIcon (icon);panNorth = new JPanel (); panNorth. setLayout (newBorderLayout ());panSouth = new JPanel ();panSouth.setLayout (newBorderLayout ());progBar = new JProgressBar ();panSouth.add (progBar);panLoaderButtons = new JPanel ();panFilePath = new JPanel ();panFilePath.setLayout (newBorderLayout ()); panFilePath. setBorder (BorderFactory.createEmptyBorder (5, 5, 5, 5));panLoaderButtons.setLayout (newFlowLayout (FlowLayout.LEFT));panLoaderButtons.setBorder (BorderFactory.createEmptyBorder (5, 5, 5, 5));panLoaderButtons.add (btnStart);panLoaderButtons.add (btnStop);panLoaderButtons.add (btnClear);panFilePath.add (lblFilePath, «North»);panFilePath.add (txtFilePath, «Center»);txtLog = new TextArea ();txtLog.setEditable (false);setMenuBar (menuBar);panNorth.add (panLoaderButtons, «North»); panNorth. add (panFilePath, «South»);getContentPane ().setLayout (newBorderLayout ());getContentPane ().add (panNorth, «North»);getContentPane ().add (newJScrollPane (txtLog), «Center»);getContentPane ().add (panSouth, «South»);setDefaultCloseOperation (EXIT_ON_CLOSE);txtFilePath.addActionListener (newJFileLoaderFilePathActionListener ());btnStart.addActionListener (newJFileLoaderFilePathActionListener ());mitmStart.addActionListener (newJFileLoaderFilePathActionListener ());btnStop.addActionListener (newJFileLoaderStopActionListener ());mitmStop.addActionListener (newJFileLoaderStopActionListener ());btnClear.addActionListener (newJFileLoaderClearActionListener ());mitmClear.addActionListener (newJFileLoaderClearActionListener ());mitmAbout.addActionListener (newJFileLoaderAboutActionListener ());mitmExit.addActionListener (newJFileLoaderExitActionListener ());setSize (605, 400);isInterrupted = false;txtFilePath.requestFocus ();setVisible (true);}//загрузкафайлапоуказанномупутивуказанныйкаталогpublicvoid addFileLoadTask (String pFilePath){txtFilePath.setText (txtFilePath.getText ().trim ());if (txtFilePath.getText ().isEmpty ()){JOptionPane.showMessageDialog (JFileLoaderGUI.this, «Неуказанпутькзагружаемомуфайлу!», «Загрузчикфайлов», JOptionPane. INFORMATION_MESSAGE);return;}try{File sourceFile = newFile (txtFilePath.getText ());if (!sourceFile.exists ()){JOptionPane.showMessageDialog (JFileLoaderGUI.this, «Указанныйфайлнесуществуетнахостедлязагрузки!», «Загрузчикфайлов», JOptionPane. INFORMATION_MESSAGE);return;}FileDialog fileToSave = newFileDialog (this, «Загрузчикфайлов», FileDialog. SAVE);fileToSave.setVisible (true);String destFileName = fileToSave. getFile (), destFileFullPath;if (destFileName ≠ null){destFileFullPath = fileToSave. getDirectory () + destFileName;}else{JOptionPane.showMessageDialog (JFileLoaderGUI.this, «Неуказанпутьдлясохранениязагружаемогофайла!», «Загрузчикфайлов», JOptionPane. INFORMATION_MESSAGE);return;}if (destFileName == txtFilePath. getText ()){JOptionPane.showMessageDialog (JFileLoaderGUI.this, «Путифайла-источникаифайла-назначениясовпадают!», «Загрузчикфайлов», JOptionPane. INFORMATION_MESSAGE);return;}File destFile = new File (destFileFullPath);FileInputStream sourceStream = new FileInputStream (sourceFile);FileOutputStream destStream = newFileOutputStream (destFile);int curByte;isInterrupted = false;Long sourceBytes = newLong (sourceFile.length ());Long destBytes = newLong (0);progBar.setMaximum (100);DateFormatdf = newSimpleDateFormat («yyyy.MM.ddHH:mm:ss»);txtLog.append (df.format (new Date ()) + «Загрузкафайла «+ sourceFile. getAbsolutePath () + «n»);txtLog.append (df.format (new Date ()) + «Размерфайла (байт): «+ sourceFile. length () + «n»);txtLog.append (df.format (new Date ()) + «Файлназначения: «+ destFile. getAbsolutePath () + «n»);while ((curByte = sourceStream. read ()) ≠ -1){if (isInterrupted)break;destStream.write (curByte);destBytes++;}sourceStream.close ();destStream.close ();isInterrupted = false;txtLog.append («Файлзагруженуспешно!n»);}catch (IOException ex){JOptionPane.showMessageDialog (JFileLoaderGUI.this, «Ошибказагрузкифайла!» + ex. getMessage ().toString (), «Загрузчикфайлов», JOptionPane. INFORMATION_MESSAGE);txtLog.append («Ошибказагрузкифайла: «+ ex. getMessage ().toString () + «n»);}}//обработчикстартазагрузкифайлаclassJFileLoaderFilePathActionListenerimplementsActionListener{ publicvoidactionPerformed (ActionEvent e){ addFileLoadTask (txtFilePath.getText ());}} //обработчикостановкизагрузкиclassJFileLoaderStopActionListenerimplementsActionListener{ publicvoidactionPerformed (ActionEvent e){isInterrupted = true;} }//обработчикочисткижурналаclassJFileLoaderClearActionListenerimplementsActionListener{ publicvoidactionPerformed (ActionEvent e){txtLog.setText (««);} }//обработчикпункта

ОпрограммеclassJFileLoaderAboutActionListenerimplementsActionListener{ publicvoidactionPerformed (ActionEvent e) {JOptionPane.showMessageDialog (JFileLoaderGUI.this, «ПрограммазагрузкифайловJFileLoader.© 2013 г.» ," Загрузчикфайлов", JOptionPane. INFORMATION_MESSAGE);} }//обработчикзакрытияпрограммыclassJFileLoaderExitActionListenerimplementsActionListener{ publicvoidactionPerformed (ActionEvent e) {if (JOptionPane.showConfirmDialog (JFileLoaderGUI.this, «Выуверены, чтохотитевыйти?», «Загрузчикфайлов», JOptionPane. YES_NO_CANCEL_OPTION) == JOptionPane. YES_OPTION)dispose ();}}}КлассJFileLoaderpublicclassJFileLoader {publicstaticvoid main (String[] args) {newJFileLoaderGUI ();}}

Список литературы

1Бадд Т. Объектно-Ориентированное программирование. — СПб.: Питер, 2007.

2Иванова

Г. С., Ничушкина

Т.Н., Пугачев

Е.К. Объектно-ориентированное программирование Под редакцией Г. С. Ивановой. — М.: Издательство МГТУ имени Н. Э. Баумана, 2001.

3Портянкин И. SwingЭффективные пользовательские интерфейсы. — СПб.: Питер, 2005.

4Хорстманн К., Корнелл Г. Java 2. Библиотека профессионала, том 1. Основы. 8-изд: Пер. с англ. — М.: Вильямс, 2010.

5Хорстманн К., Корнелл Г. Java 2. Библиотека профессионала, том 2. Тонкости программирования. 8-изд: Пер. с англ. — М.: Вильямс, 2010.

http://docs.oracle.com/javase/7/docs/api/index.html7

http://www.javable.com/tutorials/fesunov8

http://www.javatutor.net9www.intuit.ru10www.wikipedia.org

Показать весь текст

Список литературы

  1. Т. Объектно-Ориентированное программирование. — СПб.: Питер, 2007.
  2. ИвановаГ.С., НичушкинаТ.Н., ПугачевЕ.К. Объектно-ориентированное программирование Под редакцией Г. С. Ивановой. — М.: Издательство МГТУ имени Н. Э. Баумана, 2001.
  3. Портянкин И. SwingЭффективные пользовательские интерфейсы. — СПб.: Питер, 2005.
  4. К., Корнелл Г. Java 2. Библиотека профессионала, том 1. Основы. 8-изд: Пер. с англ. — М.: Вильямс, 2010.
  5. К., Корнелл Г. Java 2. Библиотека профессионала, том 2. Тонкости программирования. 8-изд: Пер. с англ. — М.: Вильямс, 2010.
  6. http://docs.oracle.com/javase/7/docs/api/index.html
  7. http://www.javable.com/tutorials/fesunov
  8. http://www.javatutor.net
  9. www.intuit.ru
  10. www.wikipedia.org
Заполнить форму текущей работой
Купить готовую работу

ИЛИ