All pastes #46947 Raw Edit

Unnamed

public text v1 · immutable
#46947 ·published 2006-03-25 18:26 UTC
rendered paste body
public class FeltLytter implements MouseListener{

	private Spillbrett mittSpillbrett;
	private Felt mittFelt;
	private int klikkteller=0;
	private AppletUI applet;
	
	public FeltLytter(Spillbrett brett, Felt felt){
		this.mittSpillbrett = brett;
		this.mittFelt = felt;
	}

	public void mouseClicked(MouseEvent arg0) {
		if(!(applet.isStartspill())) {
			return;
		}
		
		// Om brikken er synlig skal den ikke vises på nytt.
		if(mittFelt.isVist()) {
			return;
		}
		// Tegner brikken.
		mittFelt.visFelt();
		mittSpillbrett.valgtFelt(mittFelt);
		klikkteller++;
	}
	
	public void mousePressed(MouseEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	public void mouseReleased(MouseEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	public void mouseEntered(MouseEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	public void mouseExited(MouseEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	public int getKlikkteller() {
		return klikkteller;
	}

	public void setKlikkteller(int klikkteller) {
		this.klikkteller = klikkteller;
	}
	
	
	
   }
}







import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;

import javax.swing.JApplet;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;


public class AppletUI extends JApplet {

	
	
	// Deklarasjoner
	private JMenu filmeny, ommeny;
    private JMenuItem velg_spiller, nytt_spill, avslutt, highscore;
	private JMenuBar menybar;
	private JLabel spiller, bestetid, antallforsøk;
	private JPanel sørpanel, highscorePanel;
	private JTextField spillerfelt, bestetidfelt, antallforsøkfelt;
	private long start = 0, slutt = 0;
	private Spiller nyspiller;
	private Spillersamling spillersamling;
	private Spillbrett spillbrett;
	private String spillernavn;
	private Container content;
	private boolean startspill;

	// Konstruerer gui
	public void init() {
		content = getContentPane();
		content.setLayout(new BorderLayout());
		JPanel center = new JPanel();
		spillbrett = new Spillbrett();
		center.add(spillbrett);
		content.add(center, BorderLayout.NORTH);
		content.add(lagSørPanel(), BorderLayout.SOUTH);
		spillbrett.setEnabled(false);
		lagMeny();
		spillersamling = new Spillersamling();
	    this.setSize(300, 300);
		this.setVisible(true);
		
	}
	
	
	private JPanel lagSørPanel() {
		/*
		 * GridLayout 0,2 betyr at Gridlayout bruker så mange rader den trenger,
		 * og at det blir oppretter 2 kolonner.
		 */
		sørpanel = new JPanel(new GridLayout(0, 2));
		spiller = new JLabel("Spiller");
		bestetid = new JLabel("Beste Tid");
		antallforsøk = new JLabel("Antall Forsøk");

		spillerfelt = new JTextField(10);
		bestetidfelt = new JTextField(10);
		antallforsøkfelt = new JTextField(10);
		// Disabler tekstfeltene
		spillerfelt.setEnabled(false);
		bestetidfelt.setEnabled(false);
		antallforsøkfelt.setEnabled(false);

		sørpanel.add(spiller);
		sørpanel.add(spillerfelt);
		sørpanel.add(bestetid);
		sørpanel.add(bestetidfelt);
		sørpanel.add(antallforsøk);
		sørpanel.add(antallforsøkfelt);
		return sørpanel;

	}

	
	private JMenuBar lagMeny() {
		menybar = new JMenuBar();
		setJMenuBar(menybar);

		
		 // Oppretter menyene.
		filmeny = new JMenu("Fil");
		ommeny = new JMenu("Om");

		velg_spiller = new JMenuItem("Velg Spiller");
		nytt_spill = new JMenuItem("Nytt Spill");
		avslutt = new JMenuItem("Avslutt");
		highscore = new JMenuItem("Highscores");
		/*
		 * Settes til false siden bruker ikke skal kunne starte et nytt spill
		 * Før han / hun har valgt en spiller.
		 */
		nytt_spill.setEnabled(false);

		// Legger til actionlisteners til hvert menyvalg.
		nytt_spill.addActionListener(new NyttspillListener());
		velg_spiller.addActionListener(new VelgspillerListener());
		avslutt.addActionListener(new AvsluttListener());
		highscore.addActionListener(new HighscoreListener());

		
		 //Legger til menyvalgene til de respektive menyene.
		filmeny.add(velg_spiller);
		filmeny.add(nytt_spill);
		filmeny.add(avslutt);
		ommeny.add(highscore);

		
		 //Legger menyene til menybaren.
		 
		menybar.add(filmeny);
		menybar.add(ommeny);
		return menybar;
	}
	
	public boolean isStartspill() {
		return startspill;
	}


	public void setStartspill(boolean startspill) {
		this.startspill = startspill;
	}
	
	private class VelgspillerListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			spillernavn = null;
			// Sørger for at man ikke kan legge til en tom spiller.
			do {
				spillernavn = JOptionPane.showInputDialog("Angi navn på spiller");
			}
			while(spillernavn!=null && spillernavn.equals(""));
			
			// Avbryter metoden, spillernavn blir null når noen trykker cancel.
			if(spillernavn==null) return;
			
			nyspiller = spillersamling.leggTilSpiller2(spillernavn);
			spillerfelt.setText(nyspiller.getSpillernavn());
			bestetidfelt.setText(String.valueOf(nyspiller.getTid()));
			antallforsøkfelt.setText(String.valueOf(nyspiller.getAntallforsøk()));
			
			
			
			nytt_spill.setEnabled(true);
			spillbrett.leggtilLyttere();
			setStartspill(true);			
		}
			
			
	}

	private class NyttspillListener implements ActionListener {
		public void actionPerformed(ActionEvent arg0) {
			start = System.currentTimeMillis();
			repaint();
		}
	}

	private class AvsluttListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			slutt = System.currentTimeMillis();
			double tidbrukt = (double) (slutt - start);
			tidbrukt = (tidbrukt / 1000);
			JOptionPane.showMessageDialog(null, "Du brukte " + tidbrukt
					+ "Sekunder,", " Spill over",
					JOptionPane.INFORMATION_MESSAGE);
			nyspiller.setTid(tidbrukt);
			// Viser brukeren hvor lang tid han har brukt, og antall forsøk
			bestetidfelt.setText(String.valueOf(nyspiller.getTid()));
			antallforsøkfelt.setText(String.valueOf(nyspiller.getAntallforsøk()));
			// Bruker må velge et spillernavn før han får spille på nytt
			
			nytt_spill.setEnabled(false);
		}
	}

	private class HighscoreListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			    spillersamling.sorterSamling();
				highscorePanel = new JPanel();
				JTextArea poengliste = new JTextArea(20,20);
				List temp = spillersamling.getVector();
				poengliste.setEditable(false);
				highscorePanel.add(poengliste);
				poengliste.setText("Spillernavn" + "\t"  + "Tidbrukt" + "\t" + "Antall forsøk"+"\n");
				// Går gjennom samlingen av spillere, og henter ut deres respektive verdier.
				for(int i=0; i<temp.size();i++) {
					Spiller hypertemp = (Spiller) spillersamling.getVector().get(i);
					poengliste.append(hypertemp.getSpillernavn() + "\t" + String.valueOf(hypertemp.getTid() + "\t" + String.valueOf(hypertemp.getAntallforsøk() +"\n")));
				}
				
				// Lager JFrame for visning av Highscoreliste
				JFrame highscorevindu = new JFrame();
				highscorevindu.setLayout(new BorderLayout());
				highscorevindu.add(highscorePanel,BorderLayout.CENTER);
				highscorevindu.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
				highscorevindu.setSize(300,200);
				highscorevindu.setVisible(true);
		}
	}

	
}