Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
/
“ Потоки та робота із файлами у Java”
Звіт
до лабораторної роботи №6
з курсу “Об’єктно-орієнтоване програмування”
ЛЬВІВ, 2016
Індивідуальне завдання
Варіант 6
Створити програму для проглядання даних в текстовому файлі з використанням класу StreamTokenizer. Кожен рядок файлу містить ім'я товару, ціну і довільні відомості про товар. Компоненти графічного вікна: напис "Зведення про товар" у області North і розщеплена панель у області Center. У лівій частині розщепленої панелі розміщений об'єкт класу JList, що містить список для вибору імені або імен товарів, а в правій частині розщепленої панелі розміщена текстова область для виведення відомостей про вибрані товари. На початку роботи програми є видимим файл і з імен товарів формується список. При виборі імен товарів зведення про них виводяться в текстовій області.
Текст програми
import java.awt.*;import java.io.*;import java.util.StringTokenizer;import javax.swing.*;import javax.swing.event.ListSelectionEvent;public class Main{ static JLabel l = new JLabel("Зведення про товар:"); static JTextArea ta = new JTextArea(); @SuppressWarnings({ "deprecation", "rawtypes", "unchecked"}) public static void main(String[] args) throws IOException { JFrame frame = new JFrame(); frame.setLayout(null); frame.setSize(500, 400); frame.setUndecorated(false); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setResizable(false); frame.setLocation(100, 100); frame.setTitle("Лабораторна робота №6"); frame.add(l, Label.LEFT); frame.add(l); l.reshape(180, 0, 140, 100); ta.setLineWrap(true); frame.add(ta, Label.LEFT); frame.add(ta); ta.reshape(150, 80, 300, 230); String s = ""; String[] data = new String[10]; BufferedReader in = new BufferedReader(new FileReader("D:/test.txt")); boolean next_is_tovar = true; int calc = 0; DefaultListModel listModel = new DefaultListModel(); JList list = new JList(listModel); s = in.readLine(); while(s != null) { StringTokenizer st = new StringTokenizer(s); while(st.hasMoreTokens()) { if(next_is_tovar == true) { listModel.addElement(st.nextToken()); next_is_tovar = false; } else { if(data[calc] == null) data[calc] = st.nextToken(); else { data[calc] += " "; data[calc] += st.nextToken(); } } } System.out.println(data[calc]); next_is_tovar = true; s = in.readLine(); calc++; } frame.add(list, Label.LEFT); frame.add(list); list.reshape(45, 80, 100, 230); int fake = 0; while(fake == 0) { if(list.getSelectedIndex() == 0) ta.setText(data[0]); else if(list.getSelectedIndex() == 1) ta.setText(data[1]); else if(list.getSelectedIndex() == 2) ta.setText(data[2]); else if(list.getSelectedIndex() == 3) ta.setText(data[3]); else if(list.getSelectedIndex() == 4) ta.setText(data[4]); else if(list.getSelectedIndex() == 5) ta.setText(data[5]); else if(list.getSelectedIndex() == 6) ta.setText(data[6]); else if(list.getSelectedIndex() == 7) ta.setText(data[7]); else if(list.getSelectedIndex() == 8) ta.setText(data[8]); else if(list.getSelectedIndex() == 9) ta.setText(data[9]); } }}
Результат виконання програми
/
Висновки
Під час виконання даної лабораторної роботи я одержав навики роботи із потоками та файлами у Java.