Dúvida como chamar biblioteca

Caros amigos sou novo no Java e estou precisando chamar a biblioteca javax.jnlp no meu java, estou fazendo o exercício do Capítulo 24 Multimídia: applets e aplicativos do livro Java Como programar 8ª edição.
Me ajudem.

Fala Marcelo, cara seria melhor você postar seu código, e apontar onde esta com dificuldade.
Fica mais fácil para a galera tentar esclarecer suas dúvidas.

Aí está o código.

A Princípio não consigo importar essas bibliotecas javax.jnlp,

Obrigado!

/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

/*

  • ImagemApplet.java
  • Created on 03/11/2011, 10:10:20
    */
    package capitulo24;

/**
*

  • @author Marcelo
    */

//Figura 24.1: LoadImageAndScale.java
//Carregando, exibindo e redimensionando uma imagem em applet.

import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
[color=red]import javax.jnlp.FileContents;
import javax.jnlp.FileOpenService;
import javax.jnlp.ServiceManager;[/color]import javax.swing.ImageIcon;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class LoadImageAndScale extends JApplet
{
private ImageIcon image; // referencia imagem para exibição
private JPanel scaleJPanel; //JPanel contendo o selecionador de escala
private JLabel percentJLabel; //rótulo para JTextField
private JTextField scaleInputJTextField; // obtém a entrada de usuário
private JButton scaleChangeJButton; // inicia o redimensionamento de imagem
private double scaleValue = 1.0; // redimensiona porcentagem para imagem

// carrega a imagem quando o applet é carregado
public void init()
{
    scaleJPanel = new JPanel();
    percentJLabel = new JLabel ("scale percent:");
    scaleInputJTextField = new JTextField("100");
    scaleChangeJButton = new JButton("Set Scale");
    
    // adiciona componentes e coloca scaleJPanel na região NORTH do applet
    scaleJPanel.add( percentJLabel );
    scaleJPanel.add( scaleInputJTextField );
    scaleJPanel.add( scaleChangeJButton );
    add( scaleJPanel, BorderLayout.NORTH );
    
    // registra a rotina de tratamento de evento para a scaleChangeJButton
    scaleChangeJButton.addActionListener(
            new ActionListener()
            {
                //quando JButton é pressionado, configura scaleValue e redesenha
                public void actionPerformed( ActionEvent e )
                {
                    scaleValue = Double.parseDouble(
                        scaleInputJTextField.getText() ) / 100.0;
                    repaint(); //faz com que a imagem seja reexibida na nova escala
                }// fim do método actionPerformed
            } // fim da classe interna anônima
        );// fim da chamada para addActionListener
    
        // utiliza serviços JNLP para abrir um arquivo de imagem que o usuário seleciona
        try
        {
           // obtém uma referência ao FileOpenService
           FileOpenService fileOpenService = 
               (FileOpenService) ServiceManager.lookup(
                   "javax.jnlp.FileOpenService");
           // obtém conteúdo de arquivo a partir do FileOpenService
           FileContents contents =
               fileOpenService.openFileDialog( null, null );
           
           // array de bytes para armazenar dados da imagem
           byte[] imageData = new byte[ (int) contents.getLength() ];
           contents.getInputStream().read( imageData ); // lê bytes da imagem
           image = new ImageIcon( imageData ); // cria a imagem
           
           //se a imagem for carregada com sucesso, cria e adiciona DrawJPanel
           add( new DrawJPanel(), BorderLayout.CENTER );
        } // fim do try
        catch( Exception e )
        {
            e.printStackTrace();
        } // fim do catch
        
} // fim do método init

// DrawJpanel utilizado para exibir a imagem carregada
private class DrawJPanel extends JPanel
{
    //exibe a imagem
    public void paintComponent( Graphics g )
    {        
            super.paintComponent( g );
            
            //os seguintes valores são utilizados para centralizar a imagem
            double spareWidth = 
               get Width() - scaleValue * image.getIconWidth();
            double spareHeight() - ScaleValue * image.getIconHeigth();
            
            // desenha a imagem com a largura e a altura redimensionada
            g.drawImage( imagetImage(),
                    (int) ( spareWidth ) /2 , (int) ( spareHeigth ) /2,
                    (int) ( image.getIconWidth() * scaleValue ),
                    (int) ( image.getIconHeigth() * scaleValue ), this );
    }// fim do método paint
} // fim da classe DrawJPanel

}//fim da classe LoadImageAndScale

// <editor-fold defaultstate="collapsed" desc="Generated Code">                          
private void initComponents() {

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
    this.setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 400, Short.MAX_VALUE)
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 300, Short.MAX_VALUE)
    );
}// </editor-fold>                        
// Variables declaration - do not modify                     
// End of variables declaration                   

}

Oi, tudo bem ?

Inicialmente, você precisa ver se a biblioteca está no classpath ( ou build path ) da aplicação .
Ela está ?

Eu não sei como verificar isso…

poderia me ensinar? se não tiver vc pode me explicar como pegá-la…

obrigado.

botão direito do mouse em cima do seu projeto , tem uma opção escrita Build Path , ao lado vai abrir um combo vá em configure Build Path, ai tu add a biblioteca que esta faltando , isso seria um .jar.

abrxx

marcelo, você precisa baixar o jar para utilizar o jnlp. Procura no google javax.jnlp jar download.

esquece o que eu disse… é só colocar no classpath mesmo… esse jar contendo as classes ja vem no jdk… o nome do jar é javaws

Bom dia a todos.

Toda Applet, feita em Web Start ou não, tem que ser invocada através de uma página HTML.

Como voce está usando arquivos JNLP (Java Network Launch Protocol) que é um recurso do Web Start, são arquivos escritos em XML, encarregados de publicar (invocar) a Applet dentra da página HTML.

Na página 736 do capítulo 23 do livro que voce citou, na figura 23.13, tem o código HTML, escrito desta maneira:

   &lt;html&gt;
       &lt;head&gt;&lt;title&gt;DrawTest Launch Page&lt;/title&gt;&lt;/head&gt;
       &lt;body&gt;
             <a href="DrawTest.jnlp">Launch DrawTest via Java Web Start</a>
       &lt;/body&gt;
   &lt;/html&gt;

Valendo lembrar que se o arquivo "DrawTest.jnlp" tem que estar dentro da mesma pasta que o arquivo html acima que você está gerando, ou indicar o seu path do arquivo jnlp dentro do link a href

Você acaba de criar um link na página da web, bastando tão somente de savar o arquivo acima com a extensão html e rodar no seu navegador de internet.

Se você estiver usando o NetBeans, ele próprio se encarrega de criar inclusive os arquivos *.jnlp e *.html, bastando tão somente fazer o seguinte:

1º) Na barra de ferramentas a sua esquerda, vá em projects ou projetos e ao abrir, click com o botão direito do mouse em cima do seu projeto e vá em propriedades ou properties.

2º) Em Categorias ou Categories a esquerda, logo abaixde aplicação ou application, click em cima da opção web start

3º) Ative a checkbox Enable Web Start ou Ativar Web Start.

4º) Na combobox codebase selecione um das opções: No codebase, Local execution, Web Application deployment ou User defined. Ao escolher User defined, você tem que digitar a URL do seu servidor (Nome ou enderêço de IP, juntamente com o path da aplicação) do seu servidor na caixa de text Codebase Preview.

5º) Na checkbox Allow offline, selecione-a apenas se voce quiser que a sua aplicação desktop ou applet seja descarregada e salva no cliente, que permite que a mesma seja executada mesmo estando offline com o seu servidor.

6º) Logo abaixo de signing ou assinatura, tem um botão customize, click nele e selecione o radiobutton self-signed by generated key que é a melhor opção de geração de uma chave de assinatura para a sua applet, que vai permiter que a mesma utilize alguns recursos de salva imagens no servidor inclusive.

7º) Se a sua aplicação for um applet então selecione a radiobutton Applet descriptor e na caixa de texto main class (classe principal), aponte para a classe principal de sua applet, porém se for uma aplicação desktop, deixe selecionado Application descriptor.

Bom, acho que isto.

Valendo lembrar que as opções descritas acima, só estão disponíveis no NetBeans, quanto as IDEs de desenvolvimento, como não uso, não sei se estão disponíveis desta forma, se não estiver, voce terá que fazer na unha, todo os exercícios do livro descritos no capítulo 23 e 24.

Um abraço

>

tem essa documentação: http://download.oracle.com/javase/6/docs/technotes/guides/javaws/developersguide/contents.html

no tópico “Where to Find Java Web Start Technology” diz “Java Web Start is included in the Java Runtime Environment available at http://java.sun.com.” Então na hora de incluir no classpath entre no diretório do jre, depois lib e add o jar javaws.

Sussa?

Olá, sou eu de novo.

Me desculpe, se eu não li o seu post todo e só entendi que voce quer importar a biblioteca javax.jnlp para dentro da sua Applet.

Se voce estiver utilizando o NetBeans, ao utilizar os procedimentos no meu post anterior, ativando o Web Start, automaticamente a biblioteca é adicionada no seu ClassPath.

Um abraço.