1
0

Add help text on JEditorPane

This commit is contained in:
Victor 2014-03-25 15:19:02 +02:00
parent 10ffe21c48
commit 9fe489f6de

View File

@ -2,15 +2,21 @@ package com.annimon.turrets;
import static com.annimon.turrets.Constants.MENU_FONT_NAME; import static com.annimon.turrets.Constants.MENU_FONT_NAME;
import static com.annimon.turrets.Constants.SCREEN_DIMENSION; import static com.annimon.turrets.Constants.SCREEN_DIMENSION;
import com.annimon.turrets.util.ExceptionHandler;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Color; import java.awt.Color;
import java.awt.Font; import java.awt.Font;
import java.awt.event.MouseAdapter; import java.awt.event.ActionEvent;
import java.awt.event.MouseEvent; import java.awt.event.ActionListener;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JLabel; import javax.swing.JLabel;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.SwingConstants; import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder; import javax.swing.border.EmptyBorder;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
/** /**
* *
@ -22,23 +28,74 @@ public final class HelpPanel extends JPanel {
setPreferredSize(SCREEN_DIMENSION); setPreferredSize(SCREEN_DIMENSION);
setBackground(Color.BLACK); setBackground(Color.BLACK);
setLayout(new BorderLayout()); setLayout(new BorderLayout());
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
Main.getInstance().switchToMainMenu();
}
});
final JLabel titleLabel = new JLabel("Turrets Online"); final JLabel titleLabel = new JLabel("Turrets Online");
titleLabel.setForeground(Color.GRAY); titleLabel.setForeground(Color.GRAY);
titleLabel.setHorizontalAlignment(SwingConstants.CENTER); titleLabel.setHorizontalAlignment(SwingConstants.CENTER);
titleLabel.setFont(new Font(MENU_FONT_NAME, 1, 38)); titleLabel.setFont(new Font(MENU_FONT_NAME, 1, 38));
titleLabel.setBorder(new EmptyBorder(50, 0, 50, 0)); titleLabel.setBorder(new EmptyBorder(100, 0, 50, 0));
add(titleLabel, BorderLayout.NORTH); add(titleLabel, BorderLayout.NORTH);
final JLabel infoLabel = new JLabel(); final JEditorPane infoPane = new JEditorPane();
infoLabel.setForeground(Color.WHITE); infoPane.setContentType("text/html");
infoLabel.setHorizontalAlignment(SwingConstants.CENTER); infoPane.setEditable(false);
add(infoLabel, BorderLayout.CENTER); infoPane.setOpaque(false);
infoPane.setText("<html>" +
"<head><style type=\"text/css\">p {text-align: center; color: #FFFFFF; font-size: 24pt;}</style></head>" +
"<p>Turrets Online is peer-to-peer network game.<br/>" +
"The goal of the game is to hit enemy with turret's missile.</p>" +
"<br/><p>Author: Victor aNNiMON Melnik<br/>"+
"Source code available at <a href=\"https://bitbucket.org/annimon/turrets\">BitBucket</a> or " +
"<a href=\"https://github.com/aNNiMON/turrets\">GitHub</a></p>" +
"<br/><p>Ukraine, Donetsk 2014</p>" +
"</html>");
infoPane.addHyperlinkListener(new HyperlinkListener() {
@Override
public void hyperlinkUpdate(HyperlinkEvent hle) {
if (HyperlinkEvent.EventType.ACTIVATED.equals(hle.getEventType())) {
openBrowser(hle.getURL().toString());
}
}
});
add(infoPane, BorderLayout.CENTER);
final JButton backButton = new JButton("Back");
backButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Main.getInstance().switchToMainMenu();
}
});
backButton.setForeground(Color.GRAY);
backButton.setFont(new Font(MENU_FONT_NAME, 1, 30));
backButton.setBorderPainted(false);
backButton.setFocusPainted(false);
backButton.setContentAreaFilled(false);
backButton.setBorder(new EmptyBorder(0, 0, 75, 0));
add(backButton, BorderLayout.SOUTH);
}
private void openBrowser(String url) {
final String osName = System.getProperty("os.name");
try {
if (osName.startsWith("Windows")) {
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + url);
} else {
final String[] browsers = {"firefox", "opera", "konqueror",
"epiphany", "mozilla", "netscape", "chrome"};
String browser = null;
for (int count = 0; count < browsers.length && browser == null; count++) {
if (Runtime.getRuntime().exec(
new String[]{"which", browsers[count]})
.waitFor() == 0)
browser = browsers[count];
}
Runtime.getRuntime().exec(new String[]{browser, url});
}
} catch (IOException | InterruptedException ex) {
ExceptionHandler.handle(ex);
}
} }
}; };