Обучение и трудоустройство Java-программистов от Junior до Senior

Справка по Java 8 - OpenSource

 

Ну как?

Это шедевр!
1 - 20,00%
Отлично
Надо поработать
1 - 20,00%
Плохо
2 - 40,00%
Присоединяюсь к разработке
1 - 20,00%
 
 
Сообщения:61
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;
import java.util.*;
//ВЕРСИЯ 1.0
//Автор HACKERZET

class FileHelpSwing implements ListSelectionListener
{
  JList<String> jlst;
  JScrollPane jscrlp;
  JLabel info;
  StringBuilder text;
  static String helpfile = "helpfile.txt";

  FileHelpSwing()
  {
    JFrame jfrm = new JFrame("Справка по Java");
    jfrm.setLayout(new FlowLayout());
    jfrm.setSize(200, 250);
    jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    JLabel jlab = new JLabel("Выберите нужное ключевое слово");
    
    ArrayList<String> names = new ArrayList<>();
    Load(names);
    String[] arr = names.toArray(new String[names.size()]);
    jlst = new JList<String>(arr);
    jscrlp = new JScrollPane(jlst);
    
    info = new JLabel("");
    
    jfrm.add(jlab);
    jfrm.add(jscrlp);
    jfrm.add(info);
    
    jlst.addListSelectionListener(this);
    
    text = new StringBuilder("");
    
    jfrm.setVisible(true);
  }
  
  public void valueChanged(ListSelectionEvent le)
  {
    text.setLength(0);
    String topic = jlst.getSelectedValue();
    if(helpon(topic, text)) //проверяем есть ли слово
      info.setText("<html>"+text.toString()+"</html>");
    else
      System.out.println("Глюк какой-то произошёл");
  }
  
  boolean helpon(String what, StringBuilder s) {
    int ch;
    String topic, inf;
    
    try( BufferedReader br = new BufferedReader(new FileReader(helpfile)) ) {
      do {
        ch = br.read();
        if(ch == '#') {
          topic = br.readLine();
          if(what.compareTo(topic) == 0) {
            do { //здесь забиваем массив информацией
              inf = br.readLine();
              if(inf != null) s.append(inf+"<br>");
            } while( (inf != null) && (inf.compareTo("")!=0) ); //читаем пока не попадется новая строка
            return true;
          }
        }
      } while(ch != -1);
    }
    catch(IOException e) {
      info.setText("Ошибка при попытке доступа к файлу справки");
      return false;
    }
    return false;
  }
  
  void Load(ArrayList<String> al) //загрузка списка
  {
    int ch;
    try( BufferedReader br = new BufferedReader(new FileReader(helpfile)) )
    {
      String s;
      do {
        ch = br.read();
        if(ch == '#') al.add(br.readLine()); //все после решетки кидаем в список
      } while(ch != -1);
    }
    catch(IOException e) {
      System.out.println("Ошибка ввода-вывода: "+e);
    }
  }

  public static void main(String[] args)
  {
    SwingUtilities.invokeLater(
      new Runnable() {
          public void run() {
            new FileHelpSwing();
          }
        }
      );
  }
}

Это OpenSource и любой желающий может присоединится к разработке, милости просим!
Проходим опрос по желанию!
Задача данного проекта: сделать полноценную оффлайн справку написанную на java использующую swing, вместить в неё все операторы и функции java 8

Программирование начинается с себя
 
 
Сообщения:241
не понятна идея чтения дважды одно и того же файла..
 
 
Сообщения:61
keekkenen:
не понятна идея чтения дважды одно и того же файла..


Стоит почитать повнимательнее. Код сделан так чтобы использовать всего один файл для всего, это динамическое добавление в список.

Программирование начинается с себя
 
 
Сообщения:858
Delphi - школокод. Все свалено в одну кучу. Не хватает только TButton1.onClick.
 
 
Сообщения:241
HACKERZET:
Стоит почитать повнимательнее. Код сделан так чтобы использовать всего один файл для всего, это динамическое добавление в список.

это все равно не объясняет постоянное перечитывание файла, как по мне так может стоит раз его читать, а потом использовать прочитанное (хотя выгода этого спорна).. или подразумевается, что файл будет меняться в процессе работы приложения ?
 
 
Сообщения:61
Роман Осипов:
Delphi - школокод. Все свалено в одну кучу. Не хватает только TButton1.onClick.

С delphi тут ничего не связано, да и не изучал я его. Всё свалено в кучу для компактности, всё в одном классе. Если считаете что отстой, то присоединяйтесь к разработке и будем делать вместе.

Программирование начинается с себя
 
 
Сообщения:61
keekkenen:
HACKERZET:
Стоит почитать повнимательнее. Код сделан так чтобы использовать всего один файл для всего, это динамическое добавление в список.

это все равно не объясняет постоянное перечитывание файла, как по мне так может стоит раз его читать, а потом использовать прочитанное (хотя выгода этого спорна).. или подразумевается, что файл будет меняться в процессе работы приложения ?

Просто так программа жрёт меньше ресурсов, да и вообще нечего её ругать, так как она почти такая-же как и из учебника Шилдта. Я думаю её надо переделать на базы данных mysql.

Программирование начинается с себя
 
 
Сообщения:61
Файл helpfile.txt:

#if
if(условие) оператор;
else оператор;

#switch
switch(выражение) {
  case константа;
  последовательность операторов
  break;
  // ...
}

#for
for(инициализация; условие; итерация) оператор;

#while
while(условие) оператор;

#do
do {
  оператор;
} while(условие);

#break
break или break метка;

#continue
continue; или continue метка;

Программирование начинается с себя
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет