Files
FestivalPlanner/Applicatie/NewWorldPanel.java
T
2015-04-08 12:13:39 +02:00

140 lines
3.8 KiB
Java

package Applicatie;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
@SuppressWarnings("serial")
public class NewWorldPanel extends JFrame {
BufferedImage grass,sand,selectedImage;
public NewWorldPanel(Panel topPanel) {
super("New World");
setDefaultCloseOperation(HIDE_ON_CLOSE);
setResizable(false);
try {
grass = ImageIO.read(new File("images/grassIcon.jpg"));
sand = ImageIO.read(new File("images/sand.jpg"));
selectedImage = grass;
}
catch(IOException e) {
e.printStackTrace();
}
String[] terrains = {"Grass", "Sand"};
JPanel mainPanel = new JPanel(new BorderLayout());
JButton button;
JLabel label;
JTextField heightTextField;
JTextField widthTextField;
JComboBox terrainBox;
JLabel imageLabel;
//Top:
JPanel panel = new JPanel();
BoxLayout box = new BoxLayout(panel, BoxLayout.Y_AXIS);
panel.setLayout(box);
panel.add(Box.createRigidArea(new Dimension(0,10)));
JPanel linePanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
label = new JLabel(" Enter your preferences: ");
linePanel.add(label);
panel.add(linePanel);
panel.add(Box.createRigidArea(new Dimension(0,10)));
//Width:
linePanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
label = new JLabel("Width: ");
widthTextField = new JTextField("1920");
widthTextField.setPreferredSize(new Dimension(100,20));
linePanel.add(label);
linePanel.add(widthTextField);
panel.add(linePanel);
//Height:
linePanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
label = new JLabel("Height: ");
heightTextField = new JTextField("1080");
heightTextField.setPreferredSize(new Dimension(100,20));
linePanel.add(label);
linePanel.add(heightTextField);
panel.add(linePanel);
//Terrain:
linePanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
label = new JLabel("Terrain: ");
terrainBox = new JComboBox(terrains);
terrainBox.setPreferredSize(new Dimension(100,20));
imageLabel = new JLabel(new ImageIcon(selectedImage));
terrainBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
switch(terrainBox.getSelectedIndex()) {
case 0:
selectedImage = grass;
break;
case 1:
selectedImage = sand;
break;
}
imageLabel.setIcon(new ImageIcon(selectedImage));
}
});
linePanel.add(label);
linePanel.add(terrainBox);
panel.add(linePanel);
//Image:
linePanel = new JPanel();
linePanel.add(imageLabel);
panel.add(linePanel);
mainPanel.add(panel,BorderLayout.NORTH);
//Bottom:
panel = new JPanel();
//Cancel:
button = new JButton("Cancel");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
NewWorldPanel.this.dispose();
}
});
panel.add(button);
button = new JButton("Apply");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
topPanel.newWorld(Integer.parseInt(widthTextField.getText()),Integer.parseInt(heightTextField.getText()),terrainBox.getSelectedIndex());
NewWorldPanel.this.dispose();
}
});
panel.add(button);
mainPanel.add(panel,BorderLayout.SOUTH);
add(mainPanel);
//Finishing off
pack();
setSize(290,330);
setLocationRelativeTo(null);
setVisible(true);
}
}