Add help text on JEditorPane
This commit is contained in:
parent
10ffe21c48
commit
9fe489f6de
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user