Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код |
175647 |
Дата создания |
2013 |
Страниц |
28
|
Источников |
10 |
Мы сможем обработать ваш заказ (!) 25 декабря в 12:00 [мск] Файлы будут доступны для скачивания только после обработки заказа.
|
Содержание
Содержание
Введение
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.(C) 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.6http://docs.oracle.com/javase/7/docs/api/index.html7http://www.javable.com/tutorials/fesunov8http://www.javatutor.net9www.intuit.ru10www.wikipedia.org
Список литературы [ всего 10]
1Бадд Т. Объектно-Ориентированное программирование. - СПб.: Питер, 2007.
2ИвановаГ.С., НичушкинаТ.Н., ПугачевЕ.К. Объектно-ориентированное программирование Под редакцией Г.С.Ивановой. - М.: Издательство МГТУ имени Н.Э.Баумана, 2001.
3Портянкин И. SwingЭффективные пользовательские интерфейсы. - СПб.: Питер, 2005.
4Хорстманн К., Корнелл Г. Java 2. Библиотека профессионала, том 1. Основы. 8-изд: Пер. с англ. - М.: Вильямс, 2010.
5Хорстманн К., Корнелл Г. Java 2. Библиотека профессионала, том 2. Тонкости программирования. 8-изд: Пер. с англ. - М.: Вильямс, 2010.
6http://docs.oracle.com/javase/7/docs/api/index.html
7http://www.javable.com/tutorials/fesunov
8http://www.javatutor.net
9www.intuit.ru
10www.wikipedia.org
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00479