package de.fhro.gui.basic.uebung01; import java.awt.BorderLayout; import java.awt.Button; import java.awt.FlowLayout; import java.awt.LayoutManager; import java.awt.Panel; import java.awt.TextArea; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.IOException; import java.net.URL; import java.util.Vector; import javax.swing.ComboBoxModel; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JEditorPane; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextArea; public class WebBrowser { public static void main(String[] args) { MyFrame frame = new MyFrame(); frame.setVisible(true); frame.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent we){ System.exit(0); } }); } } class MyFrame extends JFrame { private MyView view; public MyFrame() { view = new MyView(); add(view); super.pack(); } public MyView getBrowserView() { return view; } } class MyView extends Panel { private JComboBox north; private JEditorPane center; private ButtonBar south; public MyView() { BrowserController controller = new BrowserController(); setLayout(new BorderLayout()); north = new JComboBox(); north.setEditable(true); center = new JEditorPane(); south = new ButtonBar(controller); center.setEditable(false); // controller.setPane(center); controller.setPanel(this); add(north, BorderLayout.NORTH); add(center, BorderLayout.CENTER); add(south, BorderLayout.SOUTH); } public JEditorPane getCenter() { return center; } public JComboBox getComboBox() { return north; } } class ButtonBar extends JPanel { public ButtonBar(BrowserController controller) { setLayout(new FlowLayout(FlowLayout.CENTER)); JButton btnReload = new JButton("Reload"); JButton btnPrint = new JButton("Print"); btnReload.setActionCommand("reload"); btnPrint.setActionCommand("print"); btnReload.addActionListener(controller); btnPrint.addActionListener(controller); add(btnReload); add(btnPrint); } } class BrowserController implements ActionListener { // private JEditorPane pane; private MyView panel; public void actionPerformed(ActionEvent e) { // wenn url geklickt wurde, dann area //// if (e.getActionCommand().equals("reload")) { //// try { //// URL url = new URL("http://www.google.de"); //// panel.getCenter().setPage(url); //// } catch (IOException e1) { //// e1.printStackTrace(); //// } //// } // if (e.getActionCommand().equals("print")) { try { String urlString = panel.getComboBox().getSelectedObjects().toString(); URL urlObjekt = new URL(urlString); panel.getCenter().setPage(urlObjekt); } catch (IOException e1) { e1.printStackTrace(); } // } } // public void setPane (JEditorPane pane) { // this.pane = pane; // } public void setPanel(MyView panel) { this.panel = panel; } }