Читаем Java Code онлайн бесплатно


Java Code

Сборник самых разных java-исходников для начинающих разработчиков, пишущих под android или создающих десктопные java-приложения. Сборник ориентирован именно на начинающих программистов, которые уже кое-что знают и умеют разбираться в чужом коде.

Алексей Алексеевич Крючков

Компьютеры и Интернет / Программирование / Книги по IT
<p><strong>Введение</strong></p>

В этой небольшой книге собраны самые разные java-исходники, которые могут быть полезны начинающим программистам. Здесь вы найдете примеры кода как для android-приложений, так и для десктопных java-программ. Искренне надеюсь, что этот сборник поможет вам создавать интересные и полезные приложения!

Внимание! Для удобного просмотра скопируйте код в любой редактор с подсветкой синтаксиса.

<p><strong>AlertDialog(android)</strong></p>

Вызывается окно с некоторым сообщением(«сообщение») и кнопками «ДА», «НЕТ» и «ЗАКРЫТЬ».

AlertDialog.Builder b=new AlertDialog.Builder(this);

        b.setTitle("Сообщение");

        b.setMessage("сообщение");

        b.setCancelable(true);

        b.setNegativeButton("НЕТ",new DialogInterface.OnClickListener{

            public void onClick(DialogInterface di, int id){

                di.cancel;

                t.setText("Нет");

            }

        });

        b.setPositiveButton("ДА",new DialogInterface.OnClickListener{

            public void onClick(DialogInterface di,int id){

                di.cancel;

                t.setText("Да");

            }

        });

        b.setNeutralButton("ЗАКРЫТЬ",new DialogInterface.OnClickListener{

            public void onClick(DialogInterface di,int id){

                di.cancel;

                t.setText("Закрыть");

            }

        });

        AlertDialog ad=b.create;

        ad.show;

<p><strong>Метод для сбора средств</strong></p>

Можно использовать кошелек Яндекс.Денег. По срабатыванию метода launchBrowser стартует дефолтный браузер с загруженной визиткой в сервисе Яндекс.Деньги.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

        launchBrowser("money.yandex.ru/to/номер_кошелька");

    }

private void launchBrowser(String uriStr) {

        Desktop d;

        if (Desktop.isDesktopSupported) {

            d = Desktop.getDesktop;

            if (d.isSupported(Desktop.Action.BROWSE)) {

                URI uri;

                try {

                    uri = new URI("http://" + uriStr);

                    d.browse(uri);

                }

                catch (IOException | URISyntaxException ioe) {

                    JOptionPane.showMessageDialog(null,"ERROR!","WARNING",JOptionPane.ERROR_MESSAGE);

                }

            }

        }

    }

<p><strong>Метод для отправки писем</strong></p>

Запускает почтовый клиент с уже заполненным полем адресата.

 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

        launchMail(edit.getText);

    }

    private void launchMail(String mailTo) {

        Desktop d;

        if (Desktop.isDesktopSupported) {

            d = Desktop.getDesktop;

            if (d.isSupported(Desktop.Action.MAIL)) {

                URI uriMailTo;

                try {

                    if (mailTo.length > 0) {

                        uriMailTo = new URI("mailto", mailTo, null);

                        d.mail(uriMailTo);

                    } else {

                        d.mail;

                    }

                }

                catch (IOException | URISyntaxException ioe) {

                    JOptionPane.showMessageDialog(null,"ERROR!","WARNING",JOptionPane.ERROR_MESSAGE);

                }

            }

        }

    }

<p><strong>Логика для калькулятора ИМТ(Индекса Массы Тела)</strong></p>

Практически готовый калькулятор ИМТ. Может определять границы нормального веса, а также тип телосложения.

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

     float rost,ves,i,index;

     String s,st,str;

     try{

     rost=Float.parseFloat(jTextField1.getText);

     ves=Float.parseFloat(jTextField2.getText);

     i=Float.parseFloat(jTextField3.getText);

     }catch(Exception e){

         JOptionPane.showMessageDialog(null,"Введите допустимые значения во все поля","ОШИБКА!",JOptionPane.ERROR_MESSAGE);

         return;

     }

     rost=rost/100;

     index=ves/(rost*rost);

     index=index*(pol/i);

     st=discriminator(n,i);

     str=normalMass(i, rost, pol);

     if(index<16)s="Дефицит массы";

     else if(index>=16&&index<20)s="Недостаточный вес";

     else if(index>=20&&index<25)s="Норма";

     else if(index>=25&&index<30)s="Предожирение";

     else if(index>=30&&index<35)s="Первая степень ожирения";

     else if(index>=35&&index<40)s="Вторая степень ожирения";

     else s="Морбидное ожирение";

     jTextArea1.setText(st+"\nBMI="+String.valueOf(index)+"("+s+")\n"+str);

    }

    String discriminator(int a,float b){

        String s="";

        switch(a){

            case 0:

                if(b<18)s="Пол: мужской.\nТип телосложения: астенический.";

                else if(b>=18&&b<=20)s="Пол: мужской.\nТип телосложения: нормостенический.";

                else s="Пол: мужской.\nТип телосложения: гиперстенический.";

                break;

            case 1:

                if(b<15)s="Пол: женский.\nТип телосложения: астенический.";

                else if(b>=15&&b<=17)s="Пол: женский.\nТип телосложения: нормостенический.";

                else s="Пол: женский.\nТип телосложения: гиперстенический.";

                break;

                default:

                break;

        }

        return s;

    }

    String normalMass(float x,float y,float z){

        float im=x*(y*y)/z;

        return "Нижняя граница нормального веса: "+20*im+" кг\nВерхняя граница нормального веса: "+25*im+" кг";

    }

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {

      jTextField1.setText("");

      jTextField2.setText("");

      jTextField3.setText("");

      jTextArea1.setText("");

    }

    private void buttonActionPerformed(java.awt.event.ActionEvent evt) {

     System.exit(0);

    }

    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {

      n++;

      switch(n){

          case 1:

              jButton4.setText("женский");

              pol=16;

              break;

          case 2:

              jButton4.setText("мужской");

              pol=19;

              n=0;

              break;

      }

    }

<p><strong>Открытие записи через FileChooser</strong></p>

Открывает окно выбора файла. Метод readerFile – чтение из файла(см. ниже).

@FXML

    private void openItem(ActionEvent event) {

       FileChooser fileChooser = new FileChooser;

            fileChooser.setTitle("Открытие записи");

            fileChooser.setInitialDirectory(new File(path));

            File file = fileChooser.showOpenDialog(null);

            if (file != null) {

                t.setText(readerFile(file.getAbsolutePath));

                label3.setText(file.getName);

            }  

    }

<p><strong>Сохранение записи через FileChooser</strong></p>

То же самое, что и в предыдущем примере, только для записи файла. Код неизвестных методов приводится ниже.

@FXML

    private void saveItem(ActionEvent event){

        if("".equals(t.getText)){

            toast("Ничего нет для сохранения");

            return;

        }

         FileChooser fileChooser = new FileChooser;

            fileChooser.setTitle("Сохранение записи");

            fileChooser.setInitialDirectory(new File(path));

            fileChooser.setInitialFileName(dateToDay("Запись_от_dd_MMMM_yyyy_в_HH-mm-ss"));

            File file = fileChooser.showSaveDialog(null);

            if (file != null) {

             recordInFile(t.getText,file.getAbsolutePath,false);

             if("все заметки".equals(file.getName))return;

             recordInFile("\n"+file.getName+" ("+dayOfWeek+")"+"\n"+

             t.getText,path+System.getProperty("file.separator")+"все заметки", true);

             label3.setText(file.getName);

            }    

    }

<p><strong>Чтение и запись файла</strong></p>

void recordInFile(String text,String fileName,boolean b){

         try(FileWriter sw = new FileWriter(fileName,b)) {

       sw.write(text+"\n");

       if(!b)

           toast("Запись сохранена");

    }catch(Exception e){

         toast("Ошибка записи файла");

   }    

    }

     String readerFile(String s){

          String str,f="";

        try{

            File file=new File(s);

            FileReader fr=new FileReader(file);

            BufferedReader br=new BufferedReader(fr);

            while((str = br.readLine) != null){

                f+=str+"\n";

            }

        }catch(IOException e){

             toast("Ошибка чтения файла");  

        }

        return f;

     }

<p><strong>Окно выхода из программы</strong></p>

@FXML

    private void exitItem(ActionEvent event){

         Alert alert = new Alert(AlertType.CONFIRMATION);

alert.setTitle("ВЫХОД");

alert.setHeaderText("Выход из программы");

alert.setContentText("Вы действительно хотите выйти из программы?");

Optional resultAlert = alert.showAndWait;

if (resultAlert.get == ButtonType.OK){

    System.exit(0);

}    

    }

<p><strong>Определение даты и дня недели</strong></p>

String dateToDay(String s){

        Calendar calendar=new GregorianCalendar;

        SimpleDateFormat sdf = new SimpleDateFormat(s);

         return sdf.format(calendar.getTime);

         }   

     String dayOfWeek{

         Calendar calendar = Calendar.getInstance;

         String s="";

         switch(calendar.get(Calendar.DAY_OF_WEEK)){

             case 1:

                 s="воскресенье";

                 break;

                 case 2:

                     s="понедельник";

                     break;

                     case 3:

                         s="вторник";

                         break;

                         case 4:

                             s="среда";

                             break;

                             case 5:

                                 s="четверг";

                                 break;

                                 case 6:

                                     s="пятница";

                                     break;

                                     case 7:

                                         s="суббота";

                                         break;

                                         default:

                                             break;

         }

         return s;

     }

<p><strong>Всплывающее сообщение как в Android(Toast)</strong></p>

Этот метод можно встретить в вышеприведенных примерах. Попробуйте его в своих проектах и получите практически полную копию всплывающего сообщения как в android.

void toast(String toastMsg){

        Stage toastStage=new Stage;

        toastStage.setResizable(false);

        toastStage.initStyle(StageStyle.TRANSPARENT);

        Text text = new Text(toastMsg);

        text.setFont(Font.font("Verdana", 20));

        text.setFill(Color.WHITE);

        StackPane root = new StackPane(text);

        root.setStyle("-fx-background-radius: 10; -fx-background-color: rgba(0, 0, 0, 0.2); -fx-padding: 20px;");

        root.setOpacity(0);

        Scene scene = new Scene(root);

        scene.setFill(Color.BLACK);

        toastStage.setScene(scene);

        toastStage.show;

        Timeline tl1 = new Timeline;

        KeyFrame fadeInKey1 = new KeyFrame(Duration.millis(500), new KeyValue (toastStage.getScene.getRoot.opacityProperty, 1));

        tl1.getKeyFrames.add(fadeInKey1);   

        tl1.setOnFinished((ae) ->

        {

            new Thread( -> {

                try

                {

                    Thread.sleep(2000);

                }

                catch (InterruptedException e)

                {

                    e.getMessage;

                }

                   Timeline tl2 = new Timeline;

Похожие книги