Individual loyiha Mavzu: “Java Swing asosida sodda web browser tarmoq dasturiy ta’minotini yaratish” Topshirdi: Raxmonov Javohir
Download 184.05 Kb.
|
2.1. Dasturning kod qismi
import java.awt.*; import java.awt.event.*; import java.net.*; import java.util.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.text.html.*; // The Simple Web Browser. public class MiniBrowser extends JFrame implements HyperlinkListener { // These are the buttons for iterating through the page list. private JButton backButton, forwardButton; // Page location text field. private JTextField locationTextField; // Editor pane for displaying pages. private JEditorPane displayEditorPane; // Browser's list of pages that have been visited. private ArrayList pageList = new ArrayList(); // Constructor for Mini Web Browser. public MiniBrowser() { // Set application title. super("Mini Browser"); // Set window size. setSize(640, 480); // Handle closing events. addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { actionExit(); } }); // Set up file menu. JMenuBar menuBar = new JMenuBar(); JMenu fileMenu = new JMenu("File"); fileMenu.setMnemonic(KeyEvent.VK_F); JMenuItem fileExitMenuItem = new JMenuItem("Exit", KeyEvent.VK_X); fileExitMenuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { actionExit(); } }); fileMenu.add(fileExitMenuItem); menuBar.add(fileMenu); setJMenuBar(menuBar); // Set up button panel. JPanel buttonPanel = new JPanel(); backButton = new JButton("< Back"); backButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { actionBack(); } }); backButton.setEnabled(false); buttonPanel.add(backButton); forwardButton = new JButton("Forward >"); forwardButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { actionForward(); } }); forwardButton.setEnabled(false); buttonPanel.add(forwardButton); locationTextField = new JTextField(35); locationTextField.addKeyListener(new KeyAdapter() { public void keyReleased(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) { actionGo(); } } }); buttonPanel.add(locationTextField); JButton goButton = new JButton("GO"); goButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { actionGo(); } }); buttonPanel.add(goButton); // Set up page display. displayEditorPane = new JEditorPane(); displayEditorPane.setContentType("text/html"); displayEditorPane.setEditable(false); displayEditorPane.addHyperlinkListener(this); getContentPane().setLayout(new BorderLayout()); getContentPane().add(buttonPanel, BorderLayout.NORTH); getContentPane().add(new JScrollPane(displayEditorPane), BorderLayout.CENTER); } // Exit this program. private void actionExit() { System.exit(0); } // Go back to the page viewed before the current page. private void actionBack() { URL currentUrl = displayEditorPane.getPage(); int pageIndex = pageList.indexOf(currentUrl.toString()); try { showPage( new URL((String) pageList.get(pageIndex - 1)), false); } catch (Exception e) {} } // Go forward to the page viewed after the current page. private void actionForward() { URL currentUrl = displayEditorPane.getPage(); int pageIndex = pageList.indexOf(currentUrl.toString()); try { showPage( new URL((String) pageList.get(pageIndex + 1)), false); } catch (Exception e) {} } // Load and show the page specified in the location text field. private void actionGo() { URL verifiedUrl = verifyUrl(locationTextField.getText()); if (verifiedUrl != null) { showPage(verifiedUrl, true); } else { showError("Invalid URL"); } } // Show dialog box with error message. private void showError(String errorMessage) { JOptionPane.showMessageDialog(this, errorMessage, "Error", JOptionPane.ERROR_MESSAGE); } // Verify URL format. private URL verifyUrl(String url) { // Only allow HTTP URLs. if (!url.toLowerCase().startsWith("http://")) return null; // Verify format of URL. URL verifiedUrl = null; try { verifiedUrl = new URL(url); } catch (Exception e) { return null; } return verifiedUrl; } /* Show the specified page and add it to the page list if specified. */ private void showPage(URL pageUrl, boolean addToList) { // Show hour glass cursor while crawling is under way. setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); try { // Get URL of page currently being displayed. URL currentUrl = displayEditorPane.getPage(); // Load and display specified page. displayEditorPane.setPage(pageUrl); // Get URL of new page being displayed. URL newUrl = displayEditorPane.getPage(); // Add page to list if specified. if (addToList) { int listSize = pageList.size(); if (listSize > 0) { int pageIndex = pageList.indexOf(currentUrl.toString()); if (pageIndex < listSize - 1) { for (int i = listSize - 1; i > pageIndex; i--) { pageList.remove(i); } } } pageList.add(newUrl.toString()); } // Update location text field with URL of current page. locationTextField.setText(newUrl.toString()); // Update buttons based on the page being displayed. updateButtons(); } catch (Exception e) { // Show error messsage. showError("Unable to load page"); } finally { // Return to default cursor. setCursor(Cursor.getDefaultCursor()); } } /* Update back and forward buttons based on the page being displayed. */ private void updateButtons() { if (pageList.size() < 2) { backButton.setEnabled(false); forwardButton.setEnabled(false); } else { URL currentUrl = displayEditorPane.getPage(); int pageIndex = pageList.indexOf(currentUrl.toString()); backButton.setEnabled(pageIndex > 0); forwardButton.setEnabled( pageIndex < (pageList.size() - 1)); } } // Handle hyperlink's being clicked. public void hyperlinkUpdate(HyperlinkEvent event) { HyperlinkEvent.EventType eventType = event.getEventType(); if (eventType == HyperlinkEvent.EventType.ACTIVATED) { if (event instanceof HTMLFrameHyperlinkEvent) { HTMLFrameHyperlinkEvent linkEvent = (HTMLFrameHyperlinkEvent) event; HTMLDocument document = (HTMLDocument) displayEditorPane.getDocument(); document.processHTMLFrameHyperlinkEvent(linkEvent); } else { showPage(event.getURL(), true); } } } // Run the Mini Browser. public static void main(String[] args) { MiniBrowser browser = new MiniBrowser(); browser.show(); } } Download 184.05 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling