Add menu panel
This commit is contained in:
parent
5c8b7be50a
commit
c627a4fa3d
79
src/com/annimon/turrets/MenuPanel.java
Normal file
79
src/com/annimon/turrets/MenuPanel.java
Normal file
@ -0,0 +1,79 @@
|
||||
package com.annimon.turrets;
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Color;
|
||||
import java.awt.Font;
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.DefaultListCellRenderer;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JList;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.ListSelectionModel;
|
||||
import javax.swing.SwingConstants;
|
||||
import javax.swing.UIManager;
|
||||
import javax.swing.border.EmptyBorder;
|
||||
import javax.swing.event.ListSelectionEvent;
|
||||
import javax.swing.event.ListSelectionListener;
|
||||
|
||||
/**
|
||||
* Main menu
|
||||
* @author aNNiMON
|
||||
*/
|
||||
public class MenuPanel extends JPanel {
|
||||
|
||||
private static final String[] MENU_ITEMS = {
|
||||
"Create Game", "Join", "Options", "Help", "Exit"
|
||||
};
|
||||
|
||||
private static final Color TITLE_COLOR = new Color(0x007700);
|
||||
|
||||
private final JList<String> menuList;
|
||||
|
||||
public MenuPanel() {
|
||||
// Init menu list
|
||||
menuList = new JList<>(MENU_ITEMS);
|
||||
menuList.setOpaque(false);
|
||||
menuList.setFont(new Font("Stencil", Font.BOLD, 42));
|
||||
menuList.setBackground(Color.BLACK);
|
||||
menuList.setSelectionBackground(Color.BLACK);
|
||||
menuList.setSelectionForeground(TITLE_COLOR);
|
||||
menuList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
|
||||
DefaultListCellRenderer renderer = (DefaultListCellRenderer) menuList.getCellRenderer();
|
||||
renderer.setHorizontalAlignment(SwingConstants.CENTER);
|
||||
menuList.setBorder(new EmptyBorder(0, 100, 50, 100));
|
||||
// Remove border for selected item
|
||||
UIManager.put("List.focusCellHighlightBorder", BorderFactory.createEmptyBorder());
|
||||
// Listeners
|
||||
menuList.addListSelectionListener(listSelectionListener);
|
||||
|
||||
// Init title
|
||||
final JLabel titleLabel = new JLabel("Turrets Online");
|
||||
titleLabel.setForeground(TITLE_COLOR);
|
||||
titleLabel.setFont(new Font("Stencil", Font.BOLD, 70));
|
||||
titleLabel.setHorizontalAlignment(SwingConstants.CENTER);
|
||||
|
||||
// Init panel
|
||||
setBackground(Color.BLACK);
|
||||
|
||||
setLayout(new BorderLayout());
|
||||
add(menuList, BorderLayout.SOUTH);
|
||||
add(titleLabel, BorderLayout.CENTER);
|
||||
}
|
||||
|
||||
private final ListSelectionListener listSelectionListener = new ListSelectionListener() {
|
||||
|
||||
@Override
|
||||
public void valueChanged(ListSelectionEvent event) {
|
||||
if (event.getValueIsAdjusting()) return;
|
||||
|
||||
final int index = menuList.getSelectedIndex();
|
||||
switch (index) {
|
||||
case 0:
|
||||
break;
|
||||
case 4:
|
||||
System.exit(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue
Block a user