@devair1010
/*Este é o código de um browser. Devido o projeto ser uma simulação de servidor proxy com acesso offline, terei que adaptar este código posteriormente. A questão é que quando executo, por exemplo este código, ele não carrega dentro do Jframe único, e sim fora. Justamente o que deve ser evitado.*/
package Interface;
import java.awt.*;
import java.awt.event.*;
import java.io.IOException;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.html.*;
public class SwingHTMLBrowser extends JFrame implements ActionListener, HyperlinkListener {
public JTextField addressBar;
public JEditorPane pane;
SwingHTMLBrowser() {
super("Swing HTML Browser");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
addressBar = new JTextField();
addressBar.addActionListener(this);
pane = new JEditorPane();
pane.setEditable(false);
pane.addHyperlinkListener(this);
add(addressBar, BorderLayout.NORTH);
add(new JScrollPane(pane));
setSize(new Dimension(300,300));
}
public void actionPerformed(ActionEvent evt) {
String url = addressBar.getText();
try {
pane.setPage(url);
} catch (IOException t) {
t.printStackTrace();
}
}
@Override
public void hyperlinkUpdate(HyperlinkEvent evt) {
if (evt.getEventType() != HyperlinkEvent.EventType.ACTIVATED) {
return;
}
JEditorPane srcPane = (JEditorPane)evt.getSource();
if (evt instanceof HTMLFrameHyperlinkEvent) {
HTMLDocument doc = (HTMLDocument)pane.getDocument();
doc.processHTMLFrameHyperlinkEvent((HTMLFrameHyperlinkEvent)evt);
} else {
String url = evt.getURL().toString();
addressBar.setText(url);
try {
pane.setPage(url);
} catch (Throwable t) {
t.printStackTrace();
}
}
}
public static void main(String args[]) {
SwingHTMLBrowser browser = new SwingHTMLBrowser();
browser.setVisible(true);
}
}