Olá!
Estou procurando uma biblioteca componente que me possibilite abrir uma simples pagina html
procurei aqui no forum por browser e só achei fontes complexos, preciso somente informar uma url e embaixo abrir a pagina bem simples!
Alguem conhece alguma?
Cara, você quer uma tela por exemplo, onde você informe uma url e ele faça abrir uma janela do browser?
Nunca tentei fazer algo do tipo, mas acredito que você vai precisar trabalhar com servlets para o mesmo!!!
isso mesmo,
Bem simples mesmo só pra abrir uma url simples
caçei bastante mas só encontro codigo fonte pra fazer um browser completo
Russo, não acostuma não… hoje tô de bom humor… modifiquei um cadastro de filmes meu aqui para abrir uma página usando o JEditorPane.Dá uma olhada.Ignore o Menu, era o esqueleto de um cadastro de filmes.A classe principal para vc é a InternalBrowser.
[code]
import java.awt.;
import java.awt.event.;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.;
import javax.swing.event.;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JMenuBar;
import javax.swing.KeyStroke;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.JFrame;
import javax.swing.UIManager.*;
import javax.swing.LookAndFeel;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.plaf.metal.DefaultMetalTheme;
import javax.swing.plaf.metal.MetalLookAndFeel;
/import com.l2fprod.gui.plaf.skin.;//importará o Skin L&F
import com.l2fprod.gui.plaf.skin.SkinLookAndFeel;*/
import java.io.;
import java.net.;
public class JEditorBrowser implements ActionListener,ItemListener,MouseListener {
private JFrame frame = null;
private JWindow splashScreen = null;
private JTextArea saida;
private JScrollPane scroll;
private JDesktopPane desktop;
private InternalBrowser ib;//variável do tipo cadastro que será usada para
//criar a JInternalFrame de visualização de páginas
//itens(variáveis de instância) da Barra de Menus
private JMenuBar menuBar;
private JMenu menu,menu2,menu3,menu4,menu5,menu6;
private JMenuItem[] menuItem=new JMenuItem[8];
private JMenuItem[] menuItem2=new JMenuItem[5];
private JMenuItem[] menuItem3=new JMenuItem[5];
private JMenuItem[] menuItem4=new JMenuItem[2];
private JMenuItem[] menuItem5=new JMenuItem[2];
public JRadioButtonMenuItem[] rbMenuItem=new JRadioButtonMenuItem[5];
protected static final String mac =
"com.birosoft.liquid.LiquidLookAndFeel";
protected static final String metal =
"javax.swing.plaf.metal.MetalLookAndFeel";
protected static final String skin =
"com.l2fprod.gui.plaf.skin.SkinLookAndFeel";
protected static final String windows =
"de.muntjak.tinylookandfeel.TinyLookAndFeel";
protected static final String kunststoff =
"com.incors.plaf.kunststoff.KunststoffLookAndFeel";
protected static final String nativeLF = UIManager.getSystemLookAndFeelClassName();
// Aspecto da tela corrente
protected static String lookAndFeelAtual = nativeLF;
public JEditorBrowser(String endereco){
exibeTela();
exibirBrowser(endereco);
}//construtor
/*
*@method criaMenu()-método responsável pela criação da Barra de Menus dos menus e submenus
*/
public JMenuBar criaMenu(){
//Cria a barra de menu.
menuBar = new JMenuBar();
//Constrói o primeiro menu
menu = new JMenu("Arquivo");//cabeçalho do primeiro menu
menu.addActionListener(this);
// menu.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
menu.setMnemonic(KeyEvent.VK_A);
menu.getAccessibleContext().setAccessibleDescription(
"Dados De Arquivo");
menuBar.add(menu);//adiciona o primeiro menu a barra de menus
//um grupo de JMenuItems
menuItem[0] = new JMenuItem("Novo Arquivo",KeyEvent.VK_T);
//menuItem.setMnemonic(KeyEvent.VK_T); //used constructor instead
menuItem[0].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.ALT_MASK));
menuItem[0].getAccessibleContext().setAccessibleDescription(
"Abre um item de arquivo");
menu.add(menuItem[0]);
//segunda linha do primeiro menu
menuItem[1] = new JMenuItem("Abrir Arquivo");
menuItem[1].setMnemonic(KeyEvent.VK_B);
menu.add(menuItem[1]);
//terceira linha do primeiro menu
menuItem[2] = new JMenuItem("Salvar Arquivo");
menuItem[2].setMnemonic(KeyEvent.VK_C);
menu.add(menuItem[2]);
menu.addSeparator();//cria uma linha de separação entre a 3ª e 4ª linha do menu
//quarta linha do primeiro menu
menuItem[3] = new JMenuItem("Novo Cadastro");
menuItem[3].setMnemonic(KeyEvent.VK_D);
menu.add(menuItem[3]);
//quinta linha do primeiro menu
menuItem[4] = new JMenuItem("Abrir Cadastro");
menuItem[4].setMnemonic(KeyEvent.VK_E);
menu.add(menuItem[4]);
//sexta linha do primeiro menu
menuItem[5] = new JMenuItem("Deletar Cadastro");
menuItem[5].setMnemonic(KeyEvent.VK_F);
menu.add(menuItem[5]);
//sétima linha do primeiro menu
menuItem[6] = new JMenuItem("Selecionar Cadastro");
menuItem[6].setMnemonic(KeyEvent.VK_G);
menu.add(menuItem[6]);
//oitava linha linha do primeiro menu "Arquivo"
menuItem[7] = new JMenuItem("Sair");
menuItem[7].setMnemonic(KeyEvent.VK_H);
menu.add(menuItem[7]);
//criar submenus
//novo menu chamado "Editar"
menu2=new JMenu("Editar");
menu2.setMnemonic(KeyEvent.VK_N);
menu2.getAccessibleContext().setAccessibleDescription("Menu de edição de itens");
menuBar.add(menu2);
//primeira linha do segundo menu "Editar"
menuItem2[0] = new JMenuItem("Cadastro");
menuItem2[0].setMnemonic(KeyEvent.VK_M);
menuItem2[0].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2, ActionEvent.ALT_MASK));
menu2.add(menuItem2[0]);
//segunda linha do segundo menu "Editar"
menuItem2[1] = new JMenuItem("Filme");
menuItem2[1].setMnemonic(KeyEvent.VK_O);
menu2.add(menuItem2[1]);
//terceira linha do segundo menu "Editar"
menuItem2[2] = new JMenuItem("Diretor");
menuItem2[2].setMnemonic(KeyEvent.VK_P);
menu2.add(menuItem2[2]);
//quarta linha do segundo menu "Editar"
menuItem2[3] = new JMenuItem("Ator(es)");
menuItem2[3].setMnemonic(KeyEvent.VK_Q);
menu2.add(menuItem2[3]);
//quinta linha do segundo menu "Editar"
menuItem2[4] = new JMenuItem("Ano de Produção");
menuItem2[4].setMnemonic(KeyEvent.VK_K);
menu2.add(menuItem2[4]);
//novo menu chamado "Exibir"
menu3=new JMenu("Exibir");
menu3.setMnemonic(KeyEvent.VK_R);
menu3.getAccessibleContext().setAccessibleDescription("Menu de exibição de itens");
menuBar.add(menu3);
//primeira linha do terceiro menu chamado "Exibir"
menuItem3[0] = new JMenuItem("Cadastro");
menuItem3[0].setMnemonic(KeyEvent.VK_S);
menuItem3[0].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_3, ActionEvent.ALT_MASK));
menu3.add(menuItem3[0]);
//segunda linha do terceiro menu "Exibir"
menuItem3[1] = new JMenuItem("Filme");
menuItem3[1].setMnemonic(KeyEvent.VK_T);
menu3.add(menuItem3[1]);
//terceira linha do terceiro menu "Exibir"
menuItem3[2] = new JMenuItem("Diretor");
menuItem3[2].setMnemonic(KeyEvent.VK_U);
menu3.add(menuItem3[2]);
//quarta linha do terceiro menu "Exibir"
menuItem3[3] = new JMenuItem("Ator(es)");
menuItem3[3].setMnemonic(KeyEvent.VK_V);
menu3.add(menuItem3[3]);
//quinta linha do terceiro menu "Exibir"
menuItem3[4] = new JMenuItem("Ano de Produção");
menuItem3[4].setMnemonic(KeyEvent.VK_X);
menu3.add(menuItem3[4]);
//novo(e 4º) menu chamado "Favoritos"
menu4=new JMenu("Favoritos");
menu4.setMnemonic(KeyEvent.VK_Y);
menu4.getAccessibleContext().setAccessibleDescription("Menu dos filmes favoritos");
menuBar.add(menu4);
//primeira linha do quarto menu chamado "Favoritos"
menuItem4[0] = new JMenuItem("Adicionar a Favoritos");
menuItem4[0].setMnemonic(KeyEvent.VK_Y+KeyEvent.VK_1);
menuItem4[0].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_4, ActionEvent.ALT_MASK));
menu4.add(menuItem4[0]);
//segunda linha do quarto menu chamado "Favoritos"
menuItem4[1] = new JMenuItem("Organizar os Filmes Favoritos");
menuItem4[1].setMnemonic(KeyEvent.VK_Y+KeyEvent.VK_2);
menu4.add(menuItem4[1]);
//código dinâmico dos filmes favoritos
//quinto menu chamado "Imprimir"
menu5=new JMenu("Imprimir");
menu5.setMnemonic(KeyEvent.VK_W);
menu5.getAccessibleContext().setAccessibleDescription("Imprimir filmes");
menuBar.add(menu5);
//primeira linha do quinto menu chamado "Imprimir"
menuItem5[0] = new JMenuItem("Lista de Filmes");
menuItem5[0].setMnemonic(KeyEvent.VK_W+KeyEvent.VK_1);
menuItem5[0].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_5, ActionEvent.ALT_MASK));
menu5.add(menuItem5[0]);
//segunda linha do quinto menu chamado "Imprimir"
menuItem5[1] = new JMenuItem("Filme");
menuItem5[1].setMnemonic(KeyEvent.VK_W+KeyEvent.VK_2);
menu5.add(menuItem5[1]);
//sexto menu(de radio buttons) chamado "Aparência"
menu6=new JMenu("Aparência");
menu6.setMnemonic(KeyEvent.VK_Z);
menu6.getAccessibleContext().setAccessibleDescription("Troca a aparência do Programa");
menuBar.add(menu6);
ButtonGroup group = new ButtonGroup();
//primeira linha do sexto menu
rbMenuItem[0]= new JRadioButtonMenuItem("Java Look and Feel");
rbMenuItem[0].setSelected(true);
rbMenuItem[0].setMnemonic(KeyEvent.VK_Z+KeyEvent.VK_1);
group.add(rbMenuItem[0]);
rbMenuItem[0].addItemListener(this);//ouvinte de evento para o radioButton
menu6.add(rbMenuItem[0]);
//segunda linha do sexto menu
rbMenuItem[1] = new JRadioButtonMenuItem("Macintosh Look and Feel");
rbMenuItem[1].setMnemonic(KeyEvent.VK_Z+KeyEvent.VK_2);
group.add(rbMenuItem[1]);
rbMenuItem[1].addItemListener(this);
menu6.add(rbMenuItem[1]);
//terceira linha do sexto menu
rbMenuItem[2] = new JRadioButtonMenuItem("System Look and Feel");
rbMenuItem[2].setMnemonic(KeyEvent.VK_Z+KeyEvent.VK_3);
group.add(rbMenuItem[2]);
rbMenuItem[2].addItemListener(this);
menu6.add(rbMenuItem[2]);
//quarta linha do sexto menu
rbMenuItem[3] = new JRadioButtonMenuItem("Windows Look and Feel");
rbMenuItem[3].setMnemonic(KeyEvent.VK_Z+KeyEvent.VK_4);
group.add(rbMenuItem[3]);
rbMenuItem[3].addItemListener(this);
menu6.add(rbMenuItem[3]);
//quinta linha do sexto menu
rbMenuItem[4] = new JRadioButtonMenuItem("Kusnetsoff Look and Feel");
rbMenuItem[4].setMnemonic(KeyEvent.VK_Z+KeyEvent.VK_5);
//inserir kusnetsoff Look&Feel
group.add(rbMenuItem[4]);
rbMenuItem[4].addItemListener(this);
menu6.add(rbMenuItem[4]);
adicionaListeners();
return menuBar;
}
/Construct the ToolBar/
protected JToolBar buildToolBar(){
JToolBar toolBar=new JToolBar();
JButton button = null,button2=null,button3=null,button4=null,button5=null;
//first button
button = makeNavigationButton(“back”,“PREVIOUS”,
“Back to previous something-or-other”,
“Previous”);
toolBar.add(button);
//second button
button2 = makeNavigationButton("new_document","New",
"Create new Document",
"New Document");
toolBar.add(button2);
//third button
button3 = makeNavigationButton("Open","Open",
"Up to something-or-other",
"Open");
toolBar.add(button3);
//fourth button
button4 = makeNavigationButton("help","Help",
"Help user",
"Help");
toolBar.add(button4);
toolBar.setFloatable(false);
return toolBar;
}
/buttons of JToolbar/
protected JButton makeNavigationButton(String imageName,String actionCommand,
String toolTipText,String altText) {
String imgLocation = "toolbarButtonGraphics/"
+ imageName
+ ".png";
URL imageURL = JEditorBrowser.class.getResource(imgLocation);
JButton button=new JButton();
button.setActionCommand(actionCommand);
button.setToolTipText(toolTipText);
button.addActionListener(this);
if (imageURL != null){ //image found
button.setIcon(new ImageIcon(imageURL, altText));
}
else{ //no image found
button.setText(altText);
System.err.println("Resource not found: " + imgLocation);
}
return button;
}
//***************************eventos do Mouse****************************
public void mouseClicked(MouseEvent e) {
}
private void checkForTriggerEvent(MouseEvent e) {
// if(e.isPopupTrigger())
// popup.show(e.getComponent(), e.getX(), e.getY());
}
public void mouseReleased(MouseEvent e) {
if(e.getSource() == desktop) {
checkForTriggerEvent(e);
}
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
/* if(e.getSource() == desktop) {
checkForTriggerEvent(e);
}*/
}
public void mouseDragged(MouseEvent e) {
}
public void mouseMoved(MouseEvent e) {
}
//ação dos menus aqui!
public void actionPerformed(ActionEvent e) {
/*if(e.getSource() == menuItem[0])
// exibirBrowser(e);
else if(e.getSource() == menuItem[1])
quit();
else if(e.getSource() == menuItem[2])
quit();
else if(e.getSource()== menuItem[3])
exibirCadastro();//para um novo cadastro
else if(e.getSource()== menuItem[4])
exibirCadastro();//para abrir o cadastro-visualizar!-
else if(e.getSource()== menuItem[5])
deletarCadastro();
else if(e.getSource()== menuItem[6])
selecionarCadastro();
else if(e.getSource()==menuItem[7])
System.exit(0); //sai da aplicação
else if(e.getSource()==menuItem2[0])
editarCadastro();//edita um cadastro!
else if(e.getSource()==menuItem2[1])
editarFilme();
else if(e.getSource()==menuItem2[2])
editarDiretor();
else if(e.getSource()==menuItem2[3])
editarAtor();
else if(e.getSource()==menuItem2[4])
editarAno_De_Producao();
else if(e.getSource()==menuItem3[0])
exibirConsulta(e); //exibirá todos os cadastros
else if(e.getSource()==menuItem3[1])
exibirFilme();
else if(e.getSource()==menuItem3[2])
exibirDiretor();
else if(e.getSource()==menuItem3[3])
exibirAtor();
else if(e.getSource()==menuItem3[4])
exibirAno_De_Producao();
else if(e.getSource()==menuItem4[0])
adicionarFavoritos();
else if(e.getSource()==menuItem4[1])
organizarFavoritos();
else if(e.getSource()==menuItem5[0])
imprimirListaDeFilmes();
else if(e.getSource()==menuItem5[1])
imprimirFilme();
*/
}
public void itemStateChanged(ItemEvent e) {
if(rbMenuItem[0].isSelected()){
mudaAparencia(lookAndFeelAtual);
}
else if(rbMenuItem[1].isSelected())
mudaAparencia(mac);
else if(rbMenuItem[2].isSelected())
mudaAparencia(nativeLF);//dah meerda!!!
else if(rbMenuItem[3].isSelected())
mudaAparencia(windows);
else if(rbMenuItem[4].isSelected())
mudaAparencia(kunststoff);
}
/************Método para alterar o Look & Feel da Aplicação**********************/
/*
* @method mudaAparencia mudará a aparência da tela principal do programa
* @return void
*/
public void mudaAparencia(String aparencia){
try {
UIManager.setLookAndFeel(aparencia);
SwingUtilities.updateComponentTreeUI(frame);
}
catch (InstantiationException e) {
e.printStackTrace();
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
catch (UnsupportedLookAndFeelException e){
e.printStackTrace();
}
catch (IllegalAccessException e) {
e.printStackTrace();
}
frame.repaint();
}//fim de mudaAparencia()
//método que será responsável pela exibição do cadastro
private void exibirBrowser(String evt) {
if (ib == null) {
// inicia frame
ib = new InternalBrowser(evt,this);
// adiciona o frame no DesktopPane
desktop.add(ib);
}
// Exibe o frame
ib.setVisible(true);
}
// este método está declarado como público para poder ser executado por outra classe
public void fecharBrowser(ActionEvent evt) {
// verifica se há uma referencia válida para o objeto
if (ib != null) {
// libera o objeto
ib.dispose();
ib = null;
}
}
/*
//método responsável pela criação da tela de consulta de dados
private void exibirConsulta(ActionEvent evt) {
if (consulta == null) {
// inicia frame interno
consulta = new Consulta(this);
// adiciona o frame no DesktopPane
desktop.add(consulta);
}
// Exibe o frame
consulta.setVisible(true);
}
//é público para poder ser executado por outra classe
public void fecharConsulta(ActionEvent evt) {
// verifica se há uma referencia válida para o objeto
if (consulta != null) {
// libera o objeto
consulta.dispose();
consulta = null;
}
}
*/
public void adicionaListeners(){
for(int i=0;i<8;i++)
menuItem[i].addActionListener(this);
for(int i=0;i<5;i++)
{ menuItem2[i].addActionListener(this);
menuItem3[i].addActionListener(this);}
for(int i=0;i<2;i++)
{ menuItem4[i].addActionListener(this);
menuItem5[i].addActionListener(this);}
}
public Container criaContentPane() {
//Create the content-pane-to-be.
JPanel contentPane = new JPanel(new BorderLayout());
desktop = new JDesktopPane(){
Image im = (new ImageIcon("background.jpg")).getImage();
public void paintComponent(Graphics g){
g.drawImage(im,0,0,this); }
};//fim do JDesktopPane
contentPane.setOpaque(true);
contentPane.add(buildToolBar(),BorderLayout.PAGE_START);
contentPane.add(desktop);//adiciono o JDesktopPane ao JPanel
return contentPane;
}
private void exibeTela(){
//Decora a janela.
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
//Cria e seta a janela.
frame = new JFrame("JEditorBrowser Application");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//seta a barra e o content pane anexando-os ao JFrame.
frame.setJMenuBar(this.criaMenu());
frame.setContentPane(this.criaContentPane());
//adiciona o Mouses Listener aos componentes
frame.addMouseListener(this);
frame.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
//ajusta o tamanho da janela
frame.setSize(900,520);
//centraliza o frame na tela
frame.setLocationRelativeTo(null);
//mostra a janela.
frame.setVisible(true);
}//fim de exibeTela()
public static void main(String[] args){
String url = “”;
if (args.length == 1) {
url = args[0];
if (!(url.startsWith(“http:”) || url.startsWith(“file:”))) {
// If it’s not a fully qualified URL, assume it’s a file.
if (url.startsWith("/")) {
// Caminho absoluto, so just prepend “file:”
url = “file:” + url;
}
else {
try {
// Assume it’s relative to the starting point.
File f = new File(url);
url = f.toURL().toString();
}
catch (Exception e) {
url = “http://www.google.com/”;
}
}
}
}
else {
url = “http://www.google.com/”;
}
new JEditorBrowser(url);
}//fim do main()
}//fim da classe TelaPrincipal[/code]
E a classe InternalBrowser:
[code]
import javax.swing.;
import javax.swing.event.;
import javax.swing.text.;
import java.awt.event.;
import java.awt.*;
import java.io.File;
public class InternalBrowser extends JInternalFrame implements InternalFrameListener{
private JEditorBrowser jeb;
private JEditorPane jep;
public InternalBrowser(String startingUrl,JEditorBrowser jeb){
super(“PocketJBrowser”);
this.jeb=jeb;
setClosable(true);
setSize(890, 470);//tamanho da JInternalFrame
// Now set up our basic screen components, the editor pane, the
// text field for URLs, and the label for status and link information.
JPanel urlPanel = new JPanel();
urlPanel.setLayout(new BorderLayout());
JTextField urlField = new JTextField(startingUrl);
urlPanel.add(new JLabel("Site: "), BorderLayout.WEST);
urlPanel.add(urlField, BorderLayout.CENTER);
final JLabel statusBar = new JLabel(" ");
// Here's the editor pane configuration. It's important to make
// the "setEditable(false)" call; otherwise, our hyperlinks won't
// work. (If the text is editable, then clicking on a hyperlink
// simply means that you want to change the text, not follow the
// link.)
jep = new JEditorPane();
jep.setEditable(false);
try {
jep.setPage(startingUrl);
}
catch(Exception e) {
statusBar.setText("Could not open starting page. Using a blank.");
}
JScrollPane jsp = new JScrollPane(jep);
// Get the GUI components onto our content pane.
getContentPane().add(jsp, BorderLayout.CENTER);
getContentPane().add(urlPanel, BorderLayout.NORTH);
getContentPane().add(statusBar, BorderLayout.SOUTH);
addInternalFrameListener(this);
// Last but not least, hook up our event handlers.
urlField.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
try {
jep.setPage(ae.getActionCommand());
}
catch(Exception e) {
statusBar.setText("Error: " + e.getMessage());
}
}
});
jep.addHyperlinkListener(new SimpleLinkListener(jep, urlField,
statusBar));
}
// os eventos abaixo devem ser implementados devido a Interface InternalFrameListener
public void internalFrameClosing(InternalFrameEvent e) {
jeb.fecharBrowser(null);
}
public void internalFrameClosed(InternalFrameEvent e) {}
public void internalFrameOpened(InternalFrameEvent e) {}
public void internalFrameIconified(InternalFrameEvent e) {}
public void internalFrameDeiconified(InternalFrameEvent e) {}
public void internalFrameActivated(InternalFrameEvent e) {}
public void internalFrameDeactivated(InternalFrameEvent e) {}
}[/code]
Opa bacana mesmo,
vo testar aqui depois posto o resultado.