import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Random;
import javax.swing.*;
public class View {
private JFrame vindu;
private JPanel panel;
private Controller kontroller = new Controller(this);
private HashMap kortknapper = new HashMap<>();
public void init() {
try {
UIManager.setLookAndFeel(
UIManager.getCrossPlatformLookAndFeelClassName()
);
} catch (Exception e) {
System.exit(1);
}
vindu = new JFrame("Album matching");
vindu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
vindu.setPreferredSize(new Dimension(900, 900));
panel = new JPanel(new GridLayout(2, 4, 5, 5));
Random r = new Random();
ArrayList kortene = kontroller.hentAlleKort();
while (kortene.size() > 0) {
String kortNavn = kortene.remove(r.nextInt(kortene.size()));
KortKnapp knapp = new KortKnapp(kortNavn);
knapp.init();
panel.add(knapp);
kortknapper.put(kortNavn, knapp);
}
vindu.add(panel);
vindu.pack();
vindu.setLocationRelativeTo(null);
vindu.setVisible(true);
}
private class KortKnapp extends JButton {
private String verdi;
public KortKnapp(String v) {
verdi = v;
addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (!kontroller.hentKortStatus(verdi)) {
kontroller.vriKort(verdi);
}
}
});
}
public void init() {
setBackground(Color.RED);
setFont(new Font("SansSerif", Font.BOLD, 20));
setPreferredSize(new Dimension(100, 50));
}
public void snu() {
boolean erSnudd = kontroller.hentKortStatus(verdi);
if (erSnudd) {
setBackground(Color.WHITE);
setText(verdi);
} else {
setBackground(Color.RED);
setText("");
}
}
}
public void snuKort(String kortNavn) {
kortknapper.get(kortNavn).snu();
}
public void settVinduTekst(String nyTekst) {
vindu.setTitle(nyTekst);
}
public static void main(String[] args) {
View v = new View();
v.init();
}
}