From e1c6b1cffc79ea9c05e8e5dc4857d78c6b6ff915 Mon Sep 17 00:00:00 2001 From: Noah Kessinger Date: Thu, 2 Dec 2021 12:45:28 +0100 Subject: [PATCH] Contol Windwo Update. Velocity Change implemented. FONT and some other Var and method needs to be implemented in the GUI class not in Menu Window Update --- lib/Conway-Game-Of-Live.mv.db | Bin 24576 -> 24576 bytes src/gui/ControlWindow.java | 43 ++++++++++++++++++++++++++++++++-- src/gui/JTextFieldLimit.java | 27 +++++++++++++++++++++ src/main/Main.java | 15 +++++++++--- 4 files changed, 80 insertions(+), 5 deletions(-) create mode 100644 src/gui/JTextFieldLimit.java diff --git a/lib/Conway-Game-Of-Live.mv.db b/lib/Conway-Game-Of-Live.mv.db index 51cb2f4a55eccb0703420d508fe76bf0e4ad4ad6..306f943e454d07e35dda22c13530725f875f41fe 100644 GIT binary patch literal 24576 zcmeI3OLN*r9KgY_Nn^)OY3uaeE&}X!hVkev&`kzmn87#!kvJztf+c2RgU8@B?YUo~ zrye@(cW67k^pI;mM88F6I@4V}kb)CC@goV-zYi;|{(9{GcD?(5QPst~vp?!S(q-@1 z8hl4|f#>;rckg)kNbfp!zPnHCp)TaRN5r0xo-SxTO;qIqDQfxt=;*+nP~l^8G#-qG z?gRaOGU@J-Bc1fro}lsSVhsL(01yBIKmZ5;0U!VbfB+Bx0zd!=0D(6~pbGZ?8)FY2 z1_D3;2mk>f00e*l5C8%|00;m9An>{f1VMhy&jJwh`-Fx159~u->=Jr>q8A9CACe~% zUCJNY56PIO3LK3_v?}(xG*N&Tq=F#lCxZi`7m9)?$Z8}RK+7KvhNaQ*aH8}0lK*H{ z!NSv(zY-`Wh?1Dii~DS}L7nRIPU>j^61`CgCL9HFp|jq-M_kxFJTUjAdjZ%fH2Rn0QC zjLo`v=>PiGt;uikq&tmcDU{wWx5tyg@X>gZ%qKUKyD7v~zu6nvYisO0Q#&NX!FX*g zokH1aV`T5KyVhc{`0C2w_xQT^-=J#f9drXNq9t?_Eu$553%!d{=som4`T(t>+vr2| z5&9T?f<8r`q0iA5=u3oA8gVFtvM7hv(0VMDNM|ys1cz}dLFa5Lk@bo+JL6bErCFS1 zMUEC}c1xN`(@dIX(lnE%nUrHvj!8Kt<(QOXQjSS8OqyZR43o0&W;0BhVbUy&PCC?e2tTMvc8k zC$_UsHuz{oidK{r_u=DVZ&V*W+z_s@wRS_g?j9W5KRUm}gQZ)UCUAL6_x|89*`~`j zpJ!)x+!dSm7xdn<3%Yt@L6@Jmpo?n$cz8UfnP0*B?p2M+y=l@{bj?>HYkt^H)o-Wj zZ!xE})7yAdnuX?WJaiLryCF)aTFpAEJSA6|3Z_eR>`~=9dDtv6fRrLKJsdTwdB>nS~_jl0vQkh0zd!= z00AHX1c1PK37oXQL;JrN+W)dl?f>2t+W+=U5Q)aTPR9RFgo}t9hB-Cx5M~<#6vjs6&B~&R~SavU*s!{ zdJ2O~fODsIo#~e=M*MQo?60@paTtP}^@g9Fs&Eb;`742py3yy`!RhG?L8^jZ^PO*g z4V-W1RVU#&AOHk_01%iH0)hP>+TWr5Z-@53=t$i@xkCGYHkKQ;|6e6)8@4_glD%xh z-+v#?|4;mU>!+x8AIa{WYWLbaYxkkn9OU^1DH^9KrD2}$>@POl@aC+?<{}BcVFQB% zU+tyy0a$|Xm1p+8#kmyot;u`8{s}aBzZQhi-CqXrOp}NB|D5ba&`clz1b_e#00KY& a2mpbrClJ{Gq5U1Tpr`r&vU)}F|Nj7OT?Rh@ literal 24576 zcmeHOO>^2t7>2+mjU79st<n#77j7Q%B&GaCHFw9__fJmG}hmnMcJ+Z+xIL-9j zKhaZ9?SE)Hz2?&Y(M#_=w3qJc+mJemLq3?kK1fqnQqmv_ZLcoX4$@pM2 zbT1ejIum=}IZ^wAzGL-Gdno~bzyL4+3;+Yb05AXy00Y1PFaQhy1Hb?<@Y)!tL;U~R zxQ7P=1Hb?<01N;FzyL4+3;+Yb05AXy00XazfuP7Q`6>Xuc<9hl|B-pD@}@=hkJOUG z7KhHGi7FJ2&HK)nNCi$tBhqBcA`uF(oKWJ#;^g4SQ6)tzStUCr29S!!2gAzfbU0C2 zJm){6D!BA`^{W(0aJ(Q&iA*|+*Y`TQfh%oYGxXk8x6!O(o@Fy>1~V()CB5^w+tJ&& zQNyiW1M7Q@j?uwPM`LhDYZ`cilT1alMMdHVHeVjd8@R4@>Ucv@$^%Pw6vY{sDXM^;Rnuu6UlESOX`~nr%0UWh@xYgiqhv~hh_VHR16TE$)+JW9^gRRL(VATy z*LK^n3p@8ZhQ8D5=(oFitD^TRrLwGRvfk5b)k;q+^HQ%Qlxw{$S*)>2wN$H=$*n09 zt!}gFZhFRUFL+LHpBH^X(R+;+c`b(6-LBNNwtwz!qiWRMxARZb^~QGHh@aWkTY6hF z8oMp`?9vyRbROqcj(iU1WhCwxTHC;P8%7;VcuQ~YwzfNz4YzkP=>qAv+fVPes%B_Y z{pP>fUi_u*`R_vh*SD|#@k=u84&y`yWp}FG@#J9mU_40|(_87i3}Wiv?2pX#b$Xm@ z96Q5<@%nl;gYxy($lRyDT2CaBYpehKn%waI8)OB&g|4C{w2ZEy6|{=3qqk88y@TFG z@1Zqx1HF$vKp&!y(8uT#^eMWDK0_E~5rc9lj|ylVZ6q?OY%Z5cF&Jl3WXxt#d2f@Y zM-1H%G>`LiQy`lx{YjRhS&C*Unx$x#q6|eDiZT>sD9TWjp=gexIf~{eN}rq0Q8Y)< zJVo;q%~Lc_(L6=-6fID+K+yt43luF-v`|PSQmf0qC)N^I-I;FF=7sP`L}ZrRHth*f zMvc8oC#H4iY_jo&5N}AU?!~9W{-`;+zsX&ubM2;Z#obw^zqfu$22-~X3b?$f`|#kQ zvqPqBwn&d|xidEFPw3{^302>nP|4T`h66n&!@=!ddQ8X6P4|}G6~fdFd4Y?=(kz^mlVVaza!KKm zWnQwZ6dAZH!9q;=;G>qqv2xTJ@V4`+yb5>@FaQhy1Hb?<01TYRK;Xnh@pq)7mx`f| z-YlD@C|PrkpD|tvp0D^$r0|6JUkKbV;xD=0WaNgq?xO2<#N4oQ{9^#(x`n>ryv?Wa z|KF>2+`E@T?_OSH@BaJHyN?FOS?^vXNtwvM7hW`BGwaYxF^4{$#Q7mKP4>r(^vn)D zNf*rwp;F+c@02lxUfB|3t7yt$?%D`;=9mW6TOw@``0h{)+|_|v5d z7s!!67m@Ka`eG+IJ)a>+zWFUb`R2DE`F2rv60QRVfB|3t7+4Sng7`m*zoYoS6vh97 zP2ztdFrRw_9Xx-!mK%@%pQmaYSsyRS&f9GNex&}N`tkagaqm8+?hURJ{r_M42KeFt diff --git a/src/gui/ControlWindow.java b/src/gui/ControlWindow.java index 06bcdac..22e306a 100644 --- a/src/gui/ControlWindow.java +++ b/src/gui/ControlWindow.java @@ -27,6 +27,8 @@ public class ControlWindow { private JButton jump2GenButton; private JTextField multipleGenSkipLable; private JTextField jump2GenLable; + private JTextField saveGrid; + private JLabel saveGridPlaceholder; private int velocity, minVelocity = 1 , maxVelocity = 5000; @@ -87,6 +89,7 @@ public class ControlWindow { initClearButton(); initMultibleGenSkip(); initJump2Gen(); + initSaveGrid(); } private void initHeading(){ @@ -372,9 +375,43 @@ public class ControlWindow { }); } - private void initSaveButton(){} + private void initSaveGrid(){ - private void initSaveNameField(){} + saveGridPlaceholder = new JLabel("Save Grid..."); + saveGridPlaceholder.setBounds(50, 300, 300, 50); + saveGridPlaceholder.setFont(text); + saveGridPlaceholder.setForeground(Color.decode("#121212")); + saveGridPlaceholder.setVisible(true); + + saveGrid = new JTextField(); + saveGrid.setDocument(new JTextFieldLimit(10)); + saveGrid.setOpaque(false); + saveGrid.setBackground(null); + saveGrid.setBorder(null); + saveGrid.setBounds(50, 300, 300, 50); + saveGrid.setFont(text); + saveGrid.setForeground(Color.decode("#121212")); + saveGrid.setVisible(true); + saveGrid.addKeyListener(new KeyAdapter() { + public void keyTyped(KeyEvent evt) { + if (!(Character.isDigit(evt.getKeyChar()) || Character.isLetter(evt.getKeyChar()))) { + evt.consume(); + } + } + }); + saveGrid.addFocusListener(new FocusListener() { + @Override + public void focusGained(FocusEvent e) { + saveGridPlaceholder.setVisible(false); + } + + @Override + public void focusLost(FocusEvent e) { + saveGridPlaceholder.setVisible(true); + } + }); + + } private void addComponents(){ controlWindow.add(heading); @@ -390,6 +427,8 @@ public class ControlWindow { controlWindow.add(jump2GenLable); controlWindow.add(multipleGenSkipButton); controlWindow.add(jump2GenButton); + controlWindow.add(saveGridPlaceholder); + controlWindow.add(saveGrid); } public void setVisibility(boolean value) { diff --git a/src/gui/JTextFieldLimit.java b/src/gui/JTextFieldLimit.java new file mode 100644 index 0000000..bdf6ed0 --- /dev/null +++ b/src/gui/JTextFieldLimit.java @@ -0,0 +1,27 @@ +package gui; + +import javax.swing.text.AttributeSet; +import javax.swing.text.BadLocationException; +import javax.swing.text.PlainDocument; + +class JTextFieldLimit extends PlainDocument { + private int limit; + JTextFieldLimit(int limit) { + super(); + this.limit = limit; + } + + JTextFieldLimit(int limit, boolean upper) { + super(); + this.limit = limit; + } + + public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException { + if (str == null) + return; + + if ((getLength() + str.length()) <= limit) { + super.insertString(offset, str, attr); + } + } +} \ No newline at end of file diff --git a/src/main/Main.java b/src/main/Main.java index 9adca5d..058345f 100644 --- a/src/main/Main.java +++ b/src/main/Main.java @@ -5,9 +5,18 @@ import game.Control; public class Main { - //TODO: Inputfield witch Changelistner to cange Slider, Generic ActionListener. - //TODO: Window visibility, Control window create only one time. Visibility = false when game started, Visibility = true when game quited. :DONE Need a code Check when Brain is awake. - //TODO: Database + //TODO: Database Seve Button. Alert when Name is already is taken. + //TODO: Database window to Delete Entries. + //TODO: Save Velocity in DB + //TODO: Correct generation saving in DB and read out it + //TODO: Save button + //TODO: Reset game state when closing game + //TODO: Correct new Initialisation when game starts + //TODO: Change the population Rules + //TODO: Limit input length + + //TODO: Implement Corona Virus. Infected, Vaccinated, Recovered and Normal + //TODO: Implement a war mode.