Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Апплеты > окно диалога


Автор: cupoma58 14.3.2017, 12:57
нашёл jframe-player, решил сделать japplet :
Код

/*
 * JApplet_player с кнопками select, play и stop
 * <applet code="mplayer" width="640" height="360"></applet>
 * javac mplayer.java
 */
import javax.media.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
public class mplayer extends JApplet  
{
  Font f;
  JPanel pk, pm, ps;
  JButton play, stop, select;
  Player mplayer;
  URL mediaURL = null;
  Component vc;
  private static final String SELECT = "SELECT";
  private static final String PLAY = "PLAY";
  private static final String STOP = "STOP";
  public void init()
    {
     try{SwingUtilities.invokeAndWait(new Runnable(){public void run(){makeGUI();}});}
     catch(Exception exc){System.out.println("Can't create, because "+exc);}     
    }
  public void makeGUI()
    {
      f = new Font("Verdana", Font.BOLD, 22);
      setLayout(new BorderLayout());           
      setBackground(Color.black);
      ps = new JPanel(); ps.setBackground(Color.black);
      ps.setLayout(new FlowLayout(FlowLayout.RIGHT));     
      select = new JButton("SELECT"); select.setActionCommand(SELECT); 
      select.addActionListener(new ActionListener()
       {
         public void actionPerformed(ActionEvent ae)
          {
            if(select.getActionCommand().equals(SELECT))
             {
               JFileChooser fileChooser = new JFileChooser();   
               int result = fileChooser.showOpenDialog(null);   
               if(result == JFileChooser.APPROVE_OPTION)  
                {
                  URL mediaURL = null;
                  try{mediaURL = fileChooser.getSelectedFile().toURL();}  
                  catch ( MalformedURLException malformedURLException ){System.err.println("Can't create URL");}
                  if (mediaURL != null)
                   {
                     JApplet applet = new JApplet();
                     applet.add(pm);
                     applet.setVisible(true);
                   }
                }
             }
          }
       });
     ps.add(select); add(BorderLayout.NORTH, ps);
     pm = new JPanel(); pm.setBackground(Color.white);
     pk = new JPanel(); pk.setBackground(Color.black);
     pk.setLayout(new FlowLayout(FlowLayout.LEFT));     
     play = new JButton("PLAY"); play.setActionCommand(PLAY);
     play.addActionListener(new ActionListener()
      {
        public void actionPerformed(ActionEvent ae)
         {
           if(play.getActionCommand().equals(PLAY))
            {   
              try
               {
                 final Player mplayer = Manager.createRealizedPlayer(mediaURL);   
                 mplayer.addControllerListener(new ControllerAdapter() 
                  {
                    public void realizeComplete(RealizeCompleteEvent event) 
                     {
                       Component vc = mplayer.getVisualComponent();
                       if(vc != null){pm.add(vc); add(BorderLayout.CENTER, pm);} 
                       mplayer.start(); 
                     }
                  });
               } 
              catch (NoPlayerException noPlayerException){System.err.println("Player not  found");} 
              catch (CannotRealizeException cannotRealizeException){System.err.println("Can't realize player");} 
              catch (IOException iOException){System.err.println("Error in source");} 
            }
         }
      });
     stop = new JButton("STOP"); stop.setActionCommand(STOP);
     stop.addActionListener(new ActionListener()
      {
        public void actionPerformed(ActionEvent ae)
         {
           if(stop.getActionCommand().equals(STOP))
            {
              if (vc != null){mplayer.stop();}
            }
         }
      });
     pk.add(play); pk.add(stop); add(BorderLayout.SOUTH, pk);
    }
  public void controllerUpdate(ControllerEvent ce){if(mplayer == null) return;}
  public Insets getInsets(){return new Insets(5, 5, 5, 5);}    
}


вроде-бы всё на месте, только - диалоговое окно появляется пустым, не могу понять - в чём дело ?

Автор: LSD 15.3.2017, 18:27
Тут 2 момента:
1. Апплету с файлами просто так работать запрещено. Его для этого надо подписать.
2. Ну и самое главное - апплеты официально мертвы.

Автор: cupoma58 24.3.2017, 13:48
Цитата(LSD @ 15.3.2017,  18:27)
Тут 2 момента:
1. Апплету с файлами просто так работать запрещено. Его для этого надо подписать.
2. Ну и самое главное - апплеты официально мертвы.

Подписать - это электронная подпись или упаковка в jar-архив ? Упаковка не помогла. Если активировать jar-файл на прямую, то всё работает. Это как понимать ? Что касается смерти appletов - есть у меня браузер, Opera AC, мы с ним общий язык находим.    Правда - с воспроизведением  видео есть проблемы, не подключается jffmpeg-1.1.0.jar. Один янки посоветовал "добавить" пакеты напрямую в реестр, но я с ActiveX ещё не очень знаком.        

Автор: LSD 27.3.2017, 10:52
Цитата(cupoma58 @  24.3.2017,  14:48 Найти цитируемый пост)
Подписать - это электронная подпись или упаковка в jar-архив ?

http://forum.vingrad.ru/faq/topic-157929.html

Автор: cupoma58 18.4.2017, 12:32
Цитата(LSD @ 27.3.2017,  10:52)
Цитата(cupoma58 @  24.3.2017,  14:48 Найти цитируемый пост)
Подписать - это электронная подпись или упаковка в jar-архив ?

http://forum.vingrad.ru/faq/topic-157929.html

благодарю, с подписью всё нормально, возникла другая проблема : добавленный браузер (Opera AC) предоставляет апплету 
доступ к локальным файлам, а системный (MS IE8.0) - нет, что-то я не понимаю - кто в доме хозяин и что мне с иешкой делать ?
                             smile 

Автор: LSD 18.4.2017, 13:12
Цитата(cupoma58 @  18.4.2017,  13:32 Найти цитируемый пост)
 а системный (MS IE8.0) - нет, что-то я не понимаю - кто в доме хозяин и что мне с иешкой делать ?

Проверить настройки Java в панели управления, посмотреть что пишет в Java Console.

Автор: cupoma58 4.5.2017, 10:59
Цитата(LSD @ 18.4.2017,  13:12)
Цитата(cupoma58 @  18.4.2017,  13:32 Найти цитируемый пост)
 а системный (MS IE8.0) - нет, что-то я не понимаю - кто в доме хозяин и что мне с иешкой делать ?

Проверить настройки Java в панели управления, посмотреть что пишет в Java Console.

не фиксируются изменения настроек IE, придётся переходить на Opera AC - там всё в порядке

Есть ещё одна проблемка - при переходе с одного видео на другое на визуал-компоненте остаётся последний кадр предыдущего. От нового (chooser) добавляется только звук и есть возможность запуска старого, под звуковое сопровождение нового видео. Что можно почитать ?   
              
                                                                        smile 

Автор: cupoma58 3.8.2017, 10:26
всё - разобрался
                                    smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)