Adds a WebServer class as a fallback when native browsing is unavailable
This commit is contained in:
parent
3d6476b1ef
commit
d06cc66f31
@ -0,0 +1,55 @@
|
||||
package net.knarcraft.minecraftserverlauncher.userinterface;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.event.HyperlinkEvent;
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* This class allows for displaying web pages
|
||||
*/
|
||||
public class WebBrowser {
|
||||
|
||||
private static JFrame browserFrame;
|
||||
private static JTextPane editorPane;
|
||||
|
||||
private WebBrowser() {}
|
||||
|
||||
/**
|
||||
* Instantiates a new web browser
|
||||
*/
|
||||
private static void instantiate() {
|
||||
editorPane = new JTextPane();
|
||||
editorPane.setEditable(false);
|
||||
browserFrame = new JFrame("Web Browser");
|
||||
JScrollPane scrollPane = new JScrollPane(editorPane);
|
||||
browserFrame.add(scrollPane);
|
||||
|
||||
browserFrame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
|
||||
browserFrame.setBounds(100, 100, 800, 600);
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays the web page with the given URL
|
||||
*
|
||||
* @param url <p>The URL to open</p>
|
||||
*/
|
||||
public static void displayPage(String url) {
|
||||
if (browserFrame == null) {
|
||||
instantiate();
|
||||
}
|
||||
browserFrame.setVisible(true);
|
||||
try {
|
||||
browserFrame.setTitle("Browsing: " + url);
|
||||
editorPane.setPage(url);
|
||||
editorPane.setContentType("text/html");
|
||||
editorPane.addHyperlinkListener(hyperlinkEvent -> {
|
||||
if (hyperlinkEvent.getEventType().equals(HyperlinkEvent.EventType.ACTIVATED)) {
|
||||
displayPage(hyperlinkEvent.getURL().toString()); }
|
||||
});
|
||||
} catch (IOException e) {
|
||||
editorPane.setContentType("text/html");
|
||||
editorPane.setText("<html>Could not load</html>");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user