cicaprojekt/cicaprojekt/ApplicationFrame.java

77 lines
2.2 KiB
Java

package cicaprojekt;
import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;
import java.io.IOException;
public class ApplicationFrame implements Runnable
{
private JFrame jframe;
private JPanel mapselectorpanel;
private Display gamepanel;
private JList<File> filelist;
private class ListMouseHandler extends MouseAdapter{
@Override
public void mouseClicked(MouseEvent e) {
jframe.remove(mapselectorpanel);
File dungeonSource = ((JList<File>) e.getComponent()).getSelectedValue();
try {
setGameParams(dungeonSource);
} catch (IOException e1) {
JOptionPane.showMessageDialog(null, "Nem sikerült cicát nyitni! :(");
}
jframe.add(gamepanel);
jframe.revalidate();
}
}
public void init(){
jframe = new JFrame();
jframe.setMinimumSize(new Dimension(600, 400));
mapselectorpanel = new JPanel();
DefaultListModel<File> dungeonslist = new DefaultListModel<>();
File dir = new File(System.getProperty("user.dir"));
FileNameExtensionFilter filter = new FileNameExtensionFilter("N/A", "dungeon");
for (File f : dir.listFiles()) {
if (filter.accept(f) && f.isFile()){
dungeonslist.addElement(f);
}
}
filelist = new JList<>(dungeonslist);
filelist.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
filelist.setLayoutOrientation(JList.HORIZONTAL_WRAP);
filelist.addMouseListener(new ListMouseHandler());
mapselectorpanel.add(filelist);
jframe.add(mapselectorpanel);
// TODO add Ejik's magic to gamepanel
}
@Override
public void run() {
jframe.setVisible(true);
}
private void setGameParams(File dungeonFile) throws IOException {
gamepanel = new Display();
Game.instance.setDisplay(gamepanel);
Game.instance.setDungeon(new Dungeon());
Game.instance.startGame(dungeonFile);
}
}