Bismillah..
Kali ini saya akan sharing source code program Web Browser dengan menggunakan JAVA yang berbasis GUI, langsung saja source codenya ada dibawah :
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.net.*;
import java.io.*;
import javax.swing.*;
import javax.swing.event.*;
public class WebBrowser {
public static void main(String[] args) {
JFrame frame = new EditorPaneFrame();
frame.show();
}
}
class EditorPaneFrame extends JFrame {
private JTextField url;
private JCheckBox editable;
private JButton loadButton, backButton, saveButton;
private JEditorPane editorPane;
private Stack urlStack = new Stack();
public EditorPaneFrame() {
setTitle("Java Web Browser");
setSize(1280, 720);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
url = new JTextField(30);
loadButton = new JButton("Load");
loadButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
try {
urlStack.push(url.getText());
editorPane.setPage(url.getText());
} catch (Exception e) {
editorPane.setText("Error : " + e);
}
}
});
backButton = new JButton("Back");
backButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
if (urlStack.size() <= 1) return;
try {
urlStack.pop();
String urlString = (String) urlStack.peek();
url.setText(urlString);
editorPane.setPage(urlString);
} catch(IOException e) {
editorPane.setText("Error : " + e);
}
}
});
saveButton = new JButton("Save");
saveButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
try {
String FileOutput = JOptionPane.showInputDialog("Name of file with ext : ");
URL oracle = new URL(url.getText());
BufferedReader in = new BufferedReader(new InputStreamReader(oracle.openStream()));
PrintWriter outputStream = new PrintWriter(new FileWriter(FileOutput));
String inputLine;
while((inputLine = in.readLine()) != null) {
outputStream.println(inputLine);
}
in.close();
} catch (IOException e) {
editorPane.setText("Error : " + e);
}
}
});
editorPane = new JEditorPane();
editorPane.setEditable(false);
editorPane.addHyperlinkListener(new HyperlinkListener() {
public void hyperlinkUpdate(HyperlinkEvent event) {
if (event.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
try {
urlStack.push(event.getURL().toString());
url.setText(event.getURL().toString());
editorPane.setPage(event.getURL());
} catch (IOException e) {
editorPane.setText("Error : " + e);
}
}
}
});
editable = new JCheckBox();
editable.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
editorPane.setEditable(editable.isSelected());
}
});
Container contentPane = getContentPane();
contentPane.add(new JScrollPane(editorPane), "Center");
JPanel panel = new JPanel();
panel.add(new JLabel("URL"));
panel.add(url);
panel.add(loadButton);
panel.add(backButton);
panel.add(saveButton);
panel.add(new JLabel("Editable"));
panel.add(editable);
contentPane.add(panel, "South");
}
}
Setelah di-Compile hasilnya sebagai berikut :
Note : Program ini masih banyak kekurangan (Bug) nya, baik dari cara menampilkan output konten-konten web, dan input alamat web harus lengkap (contoh : http://www.google.com) dan lain sebagainya.
Sekian Postingan dari saya, atas segala kekurangan dan kesalahan mohon maaf.
Terima Kasih