1
0

Add menu panel

This commit is contained in:
Victor 2014-03-12 19:56:40 +02:00
parent 5c8b7be50a
commit c627a4fa3d

View 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;
}
}
};
}