Mercurial > hg > pub > prymula > com
diff kopieckreta/src/KopiecKreta.java @ 0:2787f5e749ae
INIT
author | prymula <prymula76@outlook.com> |
---|---|
date | Thu, 21 Sep 2023 22:33:57 +0200 |
parents | |
children | 489244127359 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kopieckreta/src/KopiecKreta.java Thu Sep 21 22:33:57 2023 +0200 @@ -0,0 +1,923 @@ + +/* + Kopiec Kreta - gra w odgadywanie słów + ver. 0.4.0-beta + autor: Przemysław R. Pietraszczyk + data: 2020-09-30 + licencja: Public Domain + + słownik pochodzi z: sjp.pl + +*/ + +package src; + +import java.awt.*; // Toolkit +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JButton; +//import javax.swing.JComponent; +import javax.swing.JMenuBar; +import javax.swing.JMenu; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.Box; +import javax.swing.JTextArea; +import javax.swing.JDialog; +import javax.swing.JTextField; +import javax.swing.JCheckBox; +import javax.swing.BorderFactory; +import javax.swing.WindowConstants; +import java.awt.event.*; +import java.awt.event.ActionListener; +//import java.awt.event.KeyListener; +import java.awt.event.ActionEvent; +import java.awt.event.WindowEvent; +import java.awt.event.WindowAdapter; +import java.awt.event.ComponentAdapter; +import java.awt.event.ComponentEvent; +import java.awt.event.ItemEvent; +//import java.awt.event.KeyEvent; +import java.util.*; //Timer +//import java.awt.Robot; +import java.awt.Toolkit; + +import java.beans.*; //property change stuff +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.InputStreamReader; +import java.io.IOException; + +public class KopiecKreta extends JTextArea implements ActionListener { + + static JMenuBar menuBar; + static JMenu menu, info, menu2; + static JMenuItem menuItem, menuExit, menuInfo, menuPref; + static JFrame frame; + static boolean go=false; + static Timer timer = new Timer(); + static String content; + final static int NRINGS=11; + final static int NCHAR=23; //32; + static MyResource res = new MyResource(); + static wavResource wav; + static Ring []truering = new Ring[NRINGS]; + static Ring []falsering = new Ring[NRINGS]; + static String [] mound = new String[20]; // tekst do wyswietlenia przez paint + static JTextArea textArea; + static JPanel startScreen; + static int activeRing; // indeks ringu na którym jest prowadzona aktualnie gra + static KopiecKreta kk; + static Actions actions; + final static String CONSTCH="1234"; + //final static Character[] charsInStock= {'a', 'ą', 'b', 'c', 'ć', 'd', 'e', 'ę', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'ł', 'm', 'n', 'ń', 'o', 'ó', 'p', 'r', 's', 'ś', 't', 'u', 'w', 'y', 'z', 'ż', 'ź'}; + final static Character[] charsInStock= {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'w', 'y', 'z'}; + static ArrayList<String> cheatSheet; + static int pointsForTheRing; + static int pointsFOrTheMund; + static int totalScore, level; + static boolean cheatActivate=false; + static SoundDialog sounddialog; + //static ResetDialog resetdialog; + //static GetNameDialog getNameDialog; + //Boolean runSoundDialog=Boolean.valueOf(false); + static ConfigFile configfile; + //static char pressKey=' '; + + public KopiecKreta() { + //GridBagLayout gridbag = (GridBagLayout)getLayout(); + //GridBagConstraints c = new GridBagConstraints(); + + menuBar = new JMenuBar(); + menu = new JMenu("Plik"); + menuBar.add(menu); + menu2 = new JMenu("Opcje"); + menuBar.add(menu2); + // przenosi INFO na prawa strone + menuBar.add(Box.createHorizontalGlue()); + info = new JMenu("Info"); + // kierunek wyswietlania menu + info.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); + menuBar.add(info); + menuItem = new JMenuItem("Nowa Gra", null); + menuItem.setActionCommand("MenuItem1"); + menuItem.addActionListener(this); + menuItem.setToolTipText("Rozpoczyna nową grę."); + menu.add(menuItem); + //menuItem = new JMenuItem("Sala sławy", null); + //menuItem.setActionCommand("MenuItem11"); + //menuItem.addActionListener(this); + //menuItem.setToolTipText("Wyświetla najlepsze wyniki"); + //menu.add(menuItem); + menu.addSeparator(); + menuExit = new JMenuItem("Zakończ", null); + menuExit.setActionCommand("MenuItem2"); + menuExit.addActionListener(this); + menuExit.setToolTipText("Wyjście z programu"); + menu.add(menuExit); + menuPref = new JMenuItem("Preferencje dzwięku",null); + menuPref.setActionCommand("MenuItem4"); + menuPref.addActionListener(this); + menuPref.setToolTipText("Preferencje dotyczące dzwięku"); + menu2.add(menuPref); + /* + menuPref = new JMenuItem("Resetowanie",null); + menuPref.setActionCommand("MenuItem5"); + menuPref.addActionListener(this); + menuPref.setToolTipText("Resetowanie najlepszych wyników"); + menu2.add(menuPref); + */ + menuInfo = new JMenuItem("Pomoc", null); + menuInfo.setActionCommand("MenuItem33"); + menuInfo.addActionListener(this); + menuInfo.setToolTipText("Samouczek"); + info.add(menuInfo); + menuInfo = new JMenuItem("O Programie", null); + menuInfo.setActionCommand("MenuItem3"); + menuInfo.addActionListener(this); + menuInfo.setToolTipText("Informacje o programie"); + info.add(menuInfo); + + //addKeyListener(this); + //actions = new Actions(); + //addKeyListener(actions); + //setFocusable(true); + + + } + + + public void actionPerformed(final ActionEvent e) { + + // Nowa gra + if(e.getActionCommand().equals("MenuItem1")) { + //getNameDialog.initUI(configfile, frame, getNameDialog.runGetNameDialog); + //getNameDialog.runGetNameDialog=true; + //if (getNameDialog.go){ + + activeRing=10; + totalScore=0; + pointsForTheRing=0; + pointsFOrTheMund=0; + level=1; + //frame.remove(startScreen); + //frame.add(textArea); + startScreen.setVisible(false); + textArea.setVisible(true); + create_secret_mound(); + create_real_mound(); // generuje prawdziwy kopiec + cheatSheet = new ArrayList<String>(); + setCharCheatSheet (); + go=true; + setDisplayMound(); + // } + } + // Zakonczenie + else if(e.getActionCommand().equals("MenuItem2")) { + System.exit(0); + } + // O Programie + else if(e.getActionCommand().equals("MenuItem3")) { + String s1=" Port mojej gry pierwotnie napisanej dla Androida 2.3\n\n", + s2=" Program napisany na podstawie fragmentów kodów,\n", + s3=" wyszukanych w wyszukiwarce Google,\n", + s4=" plus własna inwencja\n\n", + s5=" Autor zarzeka się że nigdy nie posiadał, ani nie posiada\n", + s6=" żadnej ksiażki na temat Javy.\n", + s7="Oraz nie przeczytał ani jednej ksiązki na temat tego języka!\n\n", + s8=" Przemysław R. Pietraszczyk - jesień 2020\n", + s9=" Licencja: Public Domain\n\n", + s10=" Stworzono w oparciu o OpenJDK 11 oraz ANT\n\n", + s11=" o/s: "+configfile.osName+" ver. "+configfile.osVersion+"\n", + s12=" java ver: "+configfile.jvmVersion; + + JOptionPane.showMessageDialog(frame, + s1+s2+s3+s4+s5+s6+s7+s8+s9+s10+s11+s12, + "Kopiec Kreta 0.4.0-beta", + JOptionPane.PLAIN_MESSAGE); + + } + else if(e.getActionCommand().equals("MenuItem33")) { + String s1="Celem gry jest odgadnięcie wszyskich zakrytych pól.\n", + s2="Rozgrywkę rozpoczyna się od dolnego pierścienia.\n", + s3="Po odgadnięciu wszyskich liter w danym pierścieniu,\n", + s4="rozgrywka przenosi się na kolejny, wyższy ring.\n", + s5="Po odgadnięciu wszystkich liter, gracz pytany jest\n", + s6="o chęć gry na opcjonalnym następnym poziomie.\n\n", + s7="UWAGA ! Caps Lock - bez znaczenia !\n", + s8="\n"; + JOptionPane.showMessageDialog(frame, + s1+s2+s3+s4+s5+s6+s7+s8, + "Pomoc", + JOptionPane.PLAIN_MESSAGE); + } + else if(e.getActionCommand().equals("MenuItem4")) { + sounddialog.initUI(configfile, frame, sounddialog.runSoundDialog); + sounddialog.runSoundDialog=true; + } + /* + else if(e.getActionCommand().equals("MenuItem5")) { + resetdialog.initUI(configfile); + } + */ + // sala sławy + /* + else if(e.getActionCommand().equals("MenuItem11")) { + + } + */ + //System.out.println("ACTION PERFORMED " + e); + } + + private static void createAndShowGUI() { + + frame=new JFrame("Kopiec Kreta"); + //Robot robot; + // menuBar z konstruktora + final int frameWidth = 250; + final int frameHeight = 460; + final int GNOMEPANEL=80; // nieco niżej niż panel + final Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); + //frame.setBounds((int) screenSize.getWidth() - frameWidth, + // (int) screenSize.getHeight() - frameHeight, frameWidth, frameHeight); + frame.setBounds((int) screenSize.getWidth() - frameWidth, + GNOMEPANEL, frameWidth, frameHeight); + frame.setResizable(false); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + sounddialog = new SoundDialog(); + //resetdialog = new ResetDialog(); + //getNameDialog = new GetNameDialog(); + textArea = new KopiecKreta(); + startScreen = new StartScreen(); + //textArea.setFont(new Font("Serif", Font.ITALIC, 18)); + textArea.setFont(new Font("Serif", Font.BOLD, 18)); + textArea.setLineWrap(true); //nowe + textArea.setWrapStyleWord(true); // nowe + textArea.setEditable(false); + textArea.setBounds(5,5,240,430); + frame.add(textArea); + textArea.setVisible(false); + frame.add(menuBar); + frame.add(startScreen); + startScreen.setFont(new Font("Serif", Font.BOLD, 18)); + startScreen.setBounds(5,5,240,430); + + frame.setJMenuBar(menuBar); + frame.setLayout(null); + frame.setSize(250,500); // 400 x 400 + frame.setVisible(true); + actions = new Actions(); + frame.addKeyListener(actions); + frame.setFocusable(true); + textArea.setForeground(Color.BLACK); + textArea.setBackground(Color.GREEN); + // zapobiega utracie KeyEvent po wyjściu z SoundDialog i ResetDialog + frame.addFocusListener(new FocusListener(){ + public void focusGained(FocusEvent e){ + //System.out.println("Focus GAINED:"+e); + } + public void focusLost(FocusEvent e){ + //System.out.println("Focus LOST:"+e); + + // FIX FOR GNOME/XWIN FOCUS BUG + e.getComponent().requestFocus(); + } + }); + try { + configfile = new ConfigFile(); + }catch (IOException e){} + configfile.load(); + + /* + try { + // obiekt robot posiada metode do pobierania koloru pixela + robot = new Robot(); + robot.mouseMove(screenSize.width-100, 200); + robot.mousePress(InputEvent.BUTTON1_DOWN_MASK); + robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); + }catch (AWTException e) {} + frame.setAlwaysOnTop(true); + */ + + timer.schedule(new KeyTicks(), 0, 1000); // lepiej 1000 + + } + // dodaje punkty za pierścień i kazuje pozostałe litery ściągi + static public void addScores(){ + int n; + pointsForTheRing=0; + if (!cheatActivate){ + for (int i=0;i< cheatSheet.size();i++){ + pointsForTheRing++; + } + pointsFOrTheMund+=pointsForTheRing; + } + //System.out.println("Naliczyłem "+pointsForTheRing+" punktów za ring"); + } + // zapełnia tablice ze znakami do podpowiedzi + static private void setCharCheatSheet (){ + + for (int i=0; i<NCHAR; i++){ + // przepisujemy kolejno znaki do listy stringów + char c= Character.toUpperCase(charsInStock[i]); + cheatSheet.add(String.valueOf(c)); + } + } + static private void refreshCheatSheet(int n){ + String t=""; + cheatSheet.remove(n); + for (int i=0;i< cheatSheet.size();i++){ + t+=cheatSheet.get(i); + } + } + // szuka znaku w tablicy z podpowiedzia + static private int searchCharChaetSheet(char c){ + String s=""; + String sc=""; + //String test=""; + for (int i=0;i< cheatSheet.size();i++){ + s=cheatSheet.get(i); + sc = String.valueOf(c); + // test+=sc; + if (s.equals(sc)) { + return i; + } + } + //System.out.println("Nie odnalazłem znaku:"+sc); + return -1; + } + static private void create_real_mound(){ + + int n_char=3; + String r=""; + + for (int i=0; i<NRINGS; i++){ + truering[i] = new Ring(res.getDirectory(n_char)); + n_char++; + for (int j=0;j<truering[i].getLength();j++){ + String _r=Character.toString(truering[i].getChar(j)); + + r+=_r; + } + r+="\n"; + } + + System.out.println(r); + + } + public static void create_secret_mound(){ + // kodujemy od 3 liter + String s="???"; + + for (int i=0; i<NRINGS; i++){ + falsering[i] = new Ring(s); + s+="?"; + } + } + + public static void main(final String[] args) { + + try { + res.read(); + //wav = new wavResource(); + //wav.loadWav(); + //wav.initWav(); + }catch (Exception e) { + e.printStackTrace(); + } + javax.swing.SwingUtilities.invokeLater(new RunnableImplementation()); + } + + static private void setDisplayMound(){ + String sr = new String(); + String r=""; + textArea.setText(null); + sr+="\n"; + // i=1 ponieważ pomijamy 3 literowy ring + for (int i=1;i<NRINGS;i++){ + + //String r=""; + for (int j=0;j<truering[i].getLength();j++){ + + String _r=Character.toString(truering[i].getChar(j)); + r+=_r; + } + //System.out.println(r); + r=""; + sr+=" "; + if (i==activeRing){ + sr+=">"; + } + else sr+=" "; + for (int j=0;j<falsering[i].getLength();j++){ + String _s=Character.toString(falsering[i].getChar(j)); + sr +=_s; + } + if (i==activeRing){ + sr+="<"; + } + mound[i]=sr; + //System.out.println("mound["+i+"] "+mound[i]); + + textArea.append(mound[i]+"\n"); + sr=""; + } + textArea.append("\n\n"); + for (int i=0; i<cheatSheet.size();i++){ + textArea.append(cheatSheet.get(i)); + textArea.append(" "); + } + + } + + + private static final class RunnableImplementation implements Runnable { + public void run(){ + wav = new wavResource(); + createAndShowGUI(); + } + } + public static void unhideWords(){ + for (int j=0;j<truering[activeRing].getLength();j++){ + falsering[activeRing].setChar(truering[activeRing].getChar(j),j); + } + } + + static class KeyTicks extends TimerTask { + int cw=0; + static char pressKey='Q'; + static char lastKey='Q'; + static boolean firstRun=true; + int n=0; + /* FIXME - miga gdy odnaleziono litere ? + */ + public void run() { + ArrayList<Integer> indexExist = new ArrayList<Integer>(); + int returnIndex; + + + pressKey=actions.getKey(); + + if (go) { + wav.stop(); + indexExist=checkInstance(pressKey); + for (int exist: indexExist){ + falsering[activeRing].setChar(pressKey,exist); + wav.PlayFlag=true; + if (lastKey != pressKey) { + if (sounddialog.soundAccept()){ + System.out.println("Dzwięk akceptuje"); + wav.play("/smooth-ok.wav"); + } + else System.out.println("Dzwięk NIE akceptuje"); + } + } + if (lastKey != pressKey && indexExist.isEmpty() && !firstRun) { + //if (lastKey != pressKey && indexExist.isEmpty()) { + + wav.PlayFlag=true; + if (sounddialog.soundAccept()){ + System.out.println("Dzwięk akceptuje"); + wav.play("/bass-bad.wav"); + } + else System.out.println("Dzwięk NIE akceptuje"); + } + lastKey=pressKey; + + returnIndex = searchCharChaetSheet(pressKey); + if (returnIndex != -1){ + refreshCheatSheet(returnIndex); + } + setDisplayMound(); + pressKey=' '; + indexExist.clear(); + + if (actions.getCheat().equals(CONSTCH)){ + //pointsForTheRing=0; + actions.resetCheat(); + cheatActivate=true; + unhideWords(); + } + if (checkFullRing()) { + totalScore+=pointsForTheRing; + setCharCheatSheet (); + setDisplayMound(); + + } + + firstRun=false; + } + } + static private boolean checkFullRing() { + if (truering[activeRing].getString().equals(falsering[activeRing].getString())){ + //System.out.println("Czy zaliczony pierścień ? activeRing:"+activeRing); + if (activeRing >1){ + addScores(); + cheatActivate=false; + // nowa ściąga + cheatSheet = new ArrayList<String>(); + activeRing--; + return true; + } + else { + go=false; + + setDisplayMound(); + if(activeRing==1){ + + String s1="Ukończyłeś poziom "+level+" !\n", + s2="Na tym poziomie uzyskałeś "+pointsFOrTheMund+" punktów.\n", + s3="Póki co ugrałeś "+totalScore+" punktów !\n\n", + s4="Kontynujesz grę ?"; + + // moze boolean ? + int dialogButton = JOptionPane.YES_NO_OPTION; + int answer = JOptionPane.showConfirmDialog (frame, s1+s2+s3+s4,"Komunikat", dialogButton); + + if(answer == JOptionPane.YES_OPTION) { + activeRing=10; + go=true; + level++; + create_secret_mound(); + create_real_mound(); // generuje prawdziwy kopiec + setDisplayMound(); + pointsFOrTheMund=0; + } + if(answer == JOptionPane.NO_OPTION) { + System.exit(0); + + } + } + } + } + return false; + } + // sprawdza czy rządana litera znajduje sie w pierscieniu + static private ArrayList<Integer> checkInstance(char key){ + ArrayList<Integer> indexExist = new ArrayList<Integer>(); + + for (int i=0; i<truering[activeRing].getLength();i++){ + if (truering[activeRing].getChar(i) == key) { + indexExist.add(i); + } + } + /* + if (indexExist.size()!=0) { + changeView=true; + } +*/ + return indexExist; + } + } + static class Ring { + char c[]; + int l=0; // dlugosc + public Ring(String s){ + //System.out.println("Z Ring constructor: "+s+" dlugosc: "+s.length()); + c = new char[s.length()+2]; + c =s.toCharArray(); + l=s.length(); + } + public char getChar(int poz){ + return (char) c[poz]; + } + public void setChar(char _c,int p){ + c[p]=_c; + } + public int getLength(){ + return l; + } + public String getString(){ + String sr = new String(); + for (int j=0;j<l;j++){ + String _s=Character.toString(c[j]); + sr +=_s; + } + return sr; + } + } +} +class SoundDialog implements ItemListener, ActionListener{ + JCheckBox chkBox1; + JFrame frame; + boolean sound = true; + ConfigFile config; + public Boolean runSoundDialog=false; + + protected void initUI(ConfigFile cf, JFrame f, Boolean run) { + if (!run) { + frame = new JFrame("Zapytanko"); + frame.getContentPane().setSize(new Dimension(300,200)); // nie działa + frame.getContentPane().setLayout(new GridBagLayout()); + frame.setAlwaysOnTop(true); + GridBagConstraints c = new GridBagConstraints(); + // nadpisanie metody zamykania okna + frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); + frame.addWindowListener(new WindowAdapter() { + public void windowClosing(WindowEvent ev) { + runSoundDialog=false; + frame.dispose(); + } + // zapobiega minimalizacji okna dialogowego + public void windowIconified(WindowEvent we) { + frame.setState(JFrame.NORMAL); + //JOptionPane.showMessageDialog(frame, "Cant Minimize"); + } + }); + JLabel label = new JLabel(" "); + JButton button = new JButton("Zatwierdź"); + chkBox1= new JCheckBox("Odtwarzaj dźwięk"); + config=cf; + sound = cf.load(); + System.out.println("Dzwiek: "+sound); + chkBox1.setSelected(sound); + c.fill = GridBagConstraints.HORIZONTAL; + c.ipady = 0; + c.weighty = 1.0; + c.gridwidth = 3; + c.gridx = 0; + c.gridy = 0; + frame.getContentPane().add(chkBox1,c); + + c.fill = GridBagConstraints.HORIZONTAL; + c.ipady = 0; + c.weighty = 1.0; + c.gridwidth = 3; + c.gridx = 0; + c.gridy = 1; + frame.getContentPane().add(label,c); + + c.fill = GridBagConstraints.HORIZONTAL; + c.ipady = 0; + c.weighty = 1.0; + c.anchor = GridBagConstraints.PAGE_END; //bottom of space + c.gridwidth = 3; + c.gridx = 0; + c.gridy = 2; + frame.getContentPane().add(button,c); + + chkBox1.addItemListener(this); + button.addActionListener(this); + if (cf.osName.equals("Linux")) frame.setUndecorated(true); + chkBox1.setBorder(BorderFactory.createMatteBorder(20, 20, 20, 20, Color.RED)); // w tym wypadku kolor nie ma znaczenia + frame.getRootPane().setBorder(BorderFactory.createMatteBorder(10, 10, 10, 10, Color.RED)); + frame.pack(); + // pojawi się nad oknem rodzica + frame.setLocationRelativeTo(f); + frame.setResizable(false); + frame.setVisible(true); + } + } + public void itemStateChanged(ItemEvent e) { + + Object source = e.getItemSelectable(); + + if (source == chkBox1) { + //System.out.println("Zaznaczono dzwiek"); + sound = true; + } + if (e.getStateChange() == ItemEvent.DESELECTED) { + //System.out.println("Odznaczono dzwiek"); + sound = false; + + } + + } + public void actionPerformed(ActionEvent e) { + frame.setVisible(false); + config.save(sound); + runSoundDialog=false; + //System.out.println("Zapisuje dzwięk: "+sound); + + } + public boolean soundAccept(){ + return sound; + } +} +/* +class ResetDialog implements ItemListener, ActionListener{ + JCheckBox chkBox1; + JFrame frame; + boolean reset = false; + protected void initUI(ConfigFile cf) { + + frame = new JFrame("Zapytanko"); + + JPanel mainPanel; + JButton button; + frame.getContentPane().setLayout(new GridBagLayout()); + GridBagConstraints c = new GridBagConstraints(); + button = new JButton("Zatwierdź"); + //chkBox1= new JCheckBox("Odtwarzaj dźwięk"); + chkBox1= new JCheckBox("Zresetuj najlepsze wyniki"); + + chkBox1.setSelected(reset); + c.fill = GridBagConstraints.HORIZONTAL; + c.ipady = 0; + c.weighty = 1.0; + //c.anchor = GridBagConstraints.PAGE_END; //bottom of space + c.gridwidth = 3; + c.gridx = 0; + c.gridy = 0; + frame.getContentPane().add(chkBox1,c); + + + + c.fill = GridBagConstraints.HORIZONTAL; + c.ipady = 0; + c.weighty = 1.0; + c.anchor = GridBagConstraints.PAGE_END; //bottom of space + c.gridwidth = 3; + c.gridx = 0; + c.gridy = 2; + frame.getContentPane().add(button,c); + + + + chkBox1.addItemListener(this); + button.addActionListener(this); + frame.pack(); + frame.setLocationRelativeTo(null); + frame.setResizable(false); + frame.setVisible(true); + } + public void itemStateChanged(ItemEvent e) { + //t index = 0; + //ar c = '-'; + Object source = e.getItemSelectable(); + + if (source == chkBox1) { + //dex = 0; + System.out.println("Zaznaczono dzwiek"); + reset = true; + } + if (e.getStateChange() == ItemEvent.DESELECTED) { + System.out.println("Odznaczono dzwiek"); + reset = false; + + } + + } + public void actionPerformed(ActionEvent e) { + frame.setVisible(false); + System.out.println("jestem action"); + } + public boolean resetAccept(){ + return reset; + } +} +*/ +/* +class GetNameDialog implements ActionListener, KeyListener { + JTextField text; + JFrame frame; + public String namePlayer=""; + public boolean go; + ConfigFile config; + public Boolean runGetNameDialog=false; + + protected void initUI(ConfigFile cf, JFrame f, Boolean run) { + if (!run) { + frame = new JFrame("Zapytanko"); + frame.getContentPane().setSize(new Dimension(300,200)); // nie działa + frame.getContentPane().setLayout(new GridBagLayout()); + frame.setAlwaysOnTop(true); + GridBagConstraints c = new GridBagConstraints(); + // nadpisanie metody zamykania okna + frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); + frame.addWindowListener(new WindowAdapter() { + public void windowClosing(WindowEvent ev) { + runGetNameDialog=false; + frame.dispose(); + } + }); + JLabel label1 = new JLabel(" "); + JLabel label2 = new JLabel("Najperw się przedstaw:"); + JButton button = new JButton("Zatwierdź"); + button.setActionCommand("Button"); + + text = new JTextField(); + //text.addActionListener(this); + //text.setActionCommand("Text"); + + text.addKeyListener(this); + text.setFocusable(true); + text.requestFocus(); + + c.fill = GridBagConstraints.HORIZONTAL; + c.ipady = 0; + c.weighty = 1.0; + c.gridwidth = 3; + c.gridx = 0; + c.gridy = 0; + frame.getContentPane().add(label2,c); + + c.fill = GridBagConstraints.HORIZONTAL; + c.ipady = 0; + c.weighty = 1.0; + c.gridwidth = 3; + c.gridx = 0; + c.gridy = 1; + frame.getContentPane().add(text,c); + + c.fill = GridBagConstraints.HORIZONTAL; + c.ipady = 0; + c.weighty = 1.0; + c.gridwidth = 3; + c.gridx = 0; + c.gridy = 2; + frame.getContentPane().add(label1,c); + + c.fill = GridBagConstraints.HORIZONTAL; + c.ipady = 0; + c.weighty = 1.0; + c.anchor = GridBagConstraints.PAGE_END; //bottom of space + c.gridwidth = 3; + c.gridx = 0; + c.gridy = 3; + frame.getContentPane().add(button,c); + text.setEditable(true); + if (namePlayer.length()!=0){ + text.setText(namePlayer); + text.selectAll(); + } + button.addActionListener(this); + if (cf.osName.equals("Linux")) frame.setUndecorated(true); + frame.getRootPane().setBorder(BorderFactory.createMatteBorder(10, 10, 10, 10, Color.RED)); + frame.pack(); + frame.setLocationRelativeTo(f); + frame.setResizable(false); + frame.setVisible(true); + } + } + + public void actionPerformed(ActionEvent e) { + if(e.getActionCommand().equals("Button")) { + + frame.setVisible(false); + namePlayer=text.getText(); + runGetNameDialog=false; + if (namePlayer.length()!=0){ + go=true; + } + } + else if(e.getActionCommand().equals("Text")) { + + String t= text.getText(); + text.setText(t); + text.selectAll(); + + } + } + + @Override + public void keyTyped(KeyEvent e) { + } + + @Override + public void keyReleased(KeyEvent event) { + } + + @Override + public void keyPressed(KeyEvent event) { + if (event.getExtendedKeyCode() == KeyEvent.getExtendedKeyCodeForChar('a')) { + System.out.println("OK"); + } + System.out.println("GETNAME"); + String t= text.getText(); + text.setText(t); + text.selectAll(); + } +} + + /* + private void readConfig() { + + + try { + InputStream is = this.getClass().getResourceAsStream("/config"); + BufferedReader br=new BufferedReader(new InputStreamReader(is, "utf-8")); + + lineConfig = br.readLine(); + } catch (Exception e){ + e.printStackTrace(); + } + } + */ + /* + private void writeConfig() { + + + try { + OutputStream is = this.getClass().getResourceAsStream("/config"); + BufferedReader br=new BufferedReader(new InputStreamReader(is, "utf-8")); + + lineConfig = br.readLine(); + } catch (Exception e){ + e.printStackTrace(); + } + } + */ +//} \ No newline at end of file