From 42c8dff2b8e300ec0375270d1fc009db66f57021 Mon Sep 17 00:00:00 2001 From: ennurluaf <95492813+ennurluaf@users.noreply.github.com> Date: Wed, 30 Jul 2025 11:00:34 +0200 Subject: [PATCH 1/2] Innitial commit --- yourproject/pom.xml | 20 ++++++ .../src/main/java/yourpackage/main/App.java | 28 ++++++++ .../src/main/java/yourpackage/main/Input.java | 63 ++++++++++++++++++ .../src/main/java/yourpackage/main/Panel.java | 20 ++++++ .../src/test/java/yourpackage/AppTest.java | 38 +++++++++++ .../target/classes/yourpackage/main/App.class | Bin 0 -> 1581 bytes .../classes/yourpackage/main/Input.class | Bin 0 -> 1423 bytes .../classes/yourpackage/main/Panel.class | Bin 0 -> 533 bytes .../compile/default-compile/createdFiles.lst | 0 .../compile/default-compile/inputFiles.lst | 1 + .../test-classes/yourpackage/AppTest.class | Bin 0 -> 609 bytes 11 files changed, 170 insertions(+) create mode 100644 yourproject/pom.xml create mode 100644 yourproject/src/main/java/yourpackage/main/App.java create mode 100644 yourproject/src/main/java/yourpackage/main/Input.java create mode 100644 yourproject/src/main/java/yourpackage/main/Panel.java create mode 100644 yourproject/src/test/java/yourpackage/AppTest.java create mode 100644 yourproject/target/classes/yourpackage/main/App.class create mode 100644 yourproject/target/classes/yourpackage/main/Input.class create mode 100644 yourproject/target/classes/yourpackage/main/Panel.class create mode 100644 yourproject/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 yourproject/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst create mode 100644 yourproject/target/test-classes/yourpackage/AppTest.class diff --git a/yourproject/pom.xml b/yourproject/pom.xml new file mode 100644 index 0000000..527cf97 --- /dev/null +++ b/yourproject/pom.xml @@ -0,0 +1,20 @@ + + 4.0.0 + + yourpackage.main + yourproject + + jar + 1.0 + yourproject + http://maven.apache.org + + + junit + junit + 3.8.1 + test + + + diff --git a/yourproject/src/main/java/yourpackage/main/App.java b/yourproject/src/main/java/yourpackage/main/App.java new file mode 100644 index 0000000..d57d2bc --- /dev/null +++ b/yourproject/src/main/java/yourpackage/main/App.java @@ -0,0 +1,28 @@ +package yourpackage.main; + +import javax.swing.JFrame; +import javax.swing.SwingUtilities; + +/** + * Hello world! + * + */ +public class App extends JFrame { + + public App() { + init(); + System.out.println( "Hello World!" ); + } + + private void init() { + setTitle("Hello World Frame"); + setSize(400, 300); + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + setLocationRelativeTo(null); + setVisible(true); + } + + public static void main( String[] args ) { + SwingUtilities.invokeLater(() -> new App()); + } +} diff --git a/yourproject/src/main/java/yourpackage/main/Input.java b/yourproject/src/main/java/yourpackage/main/Input.java new file mode 100644 index 0000000..09a25c0 --- /dev/null +++ b/yourproject/src/main/java/yourpackage/main/Input.java @@ -0,0 +1,63 @@ +package yourpackage.main; + +import java.awt.event.*; + +public class Input implements MouseListener, MouseMotionListener, KeyListener { + + private final App app; + + public Input(App app) { + this.app = app; + } + + @Override + public void mouseClicked(MouseEvent e) { + + } + + @Override + public void mouseEntered(MouseEvent e) { + + } + + @Override + public void mouseExited(MouseEvent e) { + + } + + @Override + public void mousePressed(MouseEvent e) { + + } + + @Override + public void mouseReleased(MouseEvent e) { + + } + + @Override + public void mouseDragged(MouseEvent e) { + + } + + @Override + public void mouseMoved(MouseEvent e) { + + } + + @Override + public void keyPressed(KeyEvent e) { + + } + + @Override + public void keyReleased(KeyEvent e) { + + } + + @Override + public void keyTyped(KeyEvent e) { + + } + +} diff --git a/yourproject/src/main/java/yourpackage/main/Panel.java b/yourproject/src/main/java/yourpackage/main/Panel.java new file mode 100644 index 0000000..1f5a22a --- /dev/null +++ b/yourproject/src/main/java/yourpackage/main/Panel.java @@ -0,0 +1,20 @@ +package yourpackage.main; + +import java.awt.Graphics; + +import javax.swing.JPanel; + +public class Panel extends JPanel { + + private final App app; + + public Panel(App app) { + this.app = app; + } + + @Override + protected void paintComponent(Graphics arg0) { + super.paintComponent(arg0); + } + +} diff --git a/yourproject/src/test/java/yourpackage/AppTest.java b/yourproject/src/test/java/yourpackage/AppTest.java new file mode 100644 index 0000000..73ab636 --- /dev/null +++ b/yourproject/src/test/java/yourpackage/AppTest.java @@ -0,0 +1,38 @@ +package yourpackage; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +} diff --git a/yourproject/target/classes/yourpackage/main/App.class b/yourproject/target/classes/yourpackage/main/App.class new file mode 100644 index 0000000000000000000000000000000000000000..f14436b013bd2c312a1f11e7c4d92cd970efc622 GIT binary patch literal 1581 zcmbVMYi|=r6g`s|uk9`*b`k=i1*Z+*n8!ljttm8^h9o#VV&m|TkS6gErWwzycE?H6 zU(vtPelQi4`U4QZsp_4zRc}>`50&Me-8=W5d+)ht=Ivi^{sizjo_m;Jm_0JRDCE2Q zd`|>jE_JXHh8{8ur62hL|0#$MrQQoRRwLdO4A~n}OM8=Hva;M}$ka_o6flXrk7LLd z!0>?&A6eRRj(MEGw1+8%X@?dlPFT&O*ov-?B1(i~dX{0Xk!(v7JdC8aO&bZ`t>rMw z;I9d#OnKWxs;FJ}Ki1 zh62U5Wh@hNGL>h^u$?@Jj>_|Ktd>Yr-}v|zH5zKvOB|O|j$1vg9k;atzQZjKq@jg$ z(@m$d$5tw7rHFlej};P=)CXo?G`JPfsPJT*|KKI1@o0}GH8Z9%nu6lpoep2R<{HdX zZ%vZ?u2_|B@HvwERaXZ|^tLfJwh<3Eg?(i@MEnLC9`4aV6SXCI2Nea41d|;3OTKGO zbmU_b_o?FU$i(n2Ex=*q0DO(>juP=w!9fjc<}v24v`st{ZxK^mP{#^ad2GuaTpF;Wr#F&Ga$%D;XznhMpw~0o_X(97oRG zNtnWii6sfdM>w1K(#52rxQ#k6 zU2szvf>aVuAomB@)7SW6gyB3KhKqM-lUPmO?qZErpLQRR?ID_I;W1gBzT>AEjAC8h7 zG7P12KIXQ^{l5LacP?By%`(*WDgTn#Vl4c`?gXP)I5JLzFQOb)7QE( zu+?xD{!P2oR)!s_&KQ;2{7=pmvF#@!QpCJ2(EchDrKaURL?VurEb8D#;R&wwH2fyw z{k{rYI@}4yS`5TwcCo(HC(U5qWp%N`S(F+g&b;CZsnbcQ3w)v%<%(me?6kB&`^pUL zknw3+H;{uGLRrm#o?@Q9i&&+7jnpwxv;eF11EtoJ@3{SqR0`{~uhMPM-3%<+^Qe%j zOtWzp8>Hx-rjo;`qISuAM(2vj=BO-%fYM(GHbc;8P^UPr4Y6ir%8L@3Z w+&3fk42T^wqG>?vni2a3!~^V^hWhlMh=+QpkIabY2E=1C;-vx6&~LK&2T4TTtpET3 literal 0 HcmV?d00001 diff --git a/yourproject/target/classes/yourpackage/main/Panel.class b/yourproject/target/classes/yourpackage/main/Panel.class new file mode 100644 index 0000000000000000000000000000000000000000..0be6ecc24290bc03182e76b45f5f09bd477f6177 GIT binary patch literal 533 zcmZvZ&rZTX5Ql$TYAdCHfFkP28-Eh(!5fCekYHjOW1{JOsT){@c2kPzV|g$n9(({F z$~aqznn06ocP2C6ezX1jdj9}$h9esWL;WS5CyIxUd?dUnmyvhFBQddIGE^V<6Myz* z3mJ{Pt1Qou<4RGRzt(r5RF}azmyt|+3TR|QSB^O(; z7|Onk#PxhS6v-VQP6WC5amXhDPo$1lNi!YG8AD_Jq)e7{N{U8G`|(u8k%&?fZ~A&F zk1ta1GT~}0!&$c#Xqmc;8g|K!C! zgZ4JIY0XnKpxB_V(_Yfsc|-9vt0~i3$~p@$;Zki8JCv*cRHH&X{Wuww?6l;H*;_HK fc4vvbKc18IR;Z);k7fO`EbOB}4Ejq%HgNb2<_u^) literal 0 HcmV?d00001 diff --git a/yourproject/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/yourproject/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/yourproject/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/yourproject/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..ed6b4f6 --- /dev/null +++ b/yourproject/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1 @@ +/home/joey/Code/Java/Framework/yourproject/src/main/java/yourpackage/App.java diff --git a/yourproject/target/test-classes/yourpackage/AppTest.class b/yourproject/target/test-classes/yourpackage/AppTest.class new file mode 100644 index 0000000000000000000000000000000000000000..528cb7e15589b5902cb1bdc067c4bbffd73a3de1 GIT binary patch literal 609 zcmZvZ%TB^T6o&tS(!y9pxd~olq6uJP7rMic7!p?v8wiQ+1{|^6N_x@wR=UDy;sf|l z#xtc0qom1c&z%4K=bO{7@Appt7dSMKV8}nap*I(Uu^3A0YCi8uKQN#%ltxZHjwCWBQqUQ)wlkCM zaN3t%SM(?3k+a=_nDm6_s60N@f(OSZTYCjmgCQLdLYsJ0`@g{qDL-@qDweA?dlh}d zK%Swps?<@P961yfafzYu`)aL;@crm!hC-kfW62|&12X`Iqo~Bx2mSJH&p&2 T97DrN)MhS4F#^MWWPb1iM80@l literal 0 HcmV?d00001 From b022e724d4bdcf269c984ce40f21c5a3c5f6d2a7 Mon Sep 17 00:00:00 2001 From: ennurluaf <95492813+ennurluaf@users.noreply.github.com> Date: Wed, 30 Jul 2025 13:21:30 +0000 Subject: [PATCH 2/2] changing main class --- yourproject/pom.xml | 2 +- .../src/main/java/yourpackage/game/App.java | 69 +++++++++++++++++++ .../yourpackage/{main => game}/Input.java | 8 +-- .../src/main/java/yourpackage/main/App.java | 28 -------- .../src/main/java/yourpackage/main/Panel.java | 20 ------ .../compile/default-compile/inputFiles.lst | 3 +- 6 files changed, 76 insertions(+), 54 deletions(-) create mode 100644 yourproject/src/main/java/yourpackage/game/App.java rename yourproject/src/main/java/yourpackage/{main => game}/Input.java (88%) delete mode 100644 yourproject/src/main/java/yourpackage/main/App.java delete mode 100644 yourproject/src/main/java/yourpackage/main/Panel.java diff --git a/yourproject/pom.xml b/yourproject/pom.xml index 527cf97..f42ef24 100644 --- a/yourproject/pom.xml +++ b/yourproject/pom.xml @@ -2,7 +2,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 - yourpackage.main + yourpackage.game yourproject jar diff --git a/yourproject/src/main/java/yourpackage/game/App.java b/yourproject/src/main/java/yourpackage/game/App.java new file mode 100644 index 0000000..82a3288 --- /dev/null +++ b/yourproject/src/main/java/yourpackage/game/App.java @@ -0,0 +1,69 @@ +// src/game/GameLoop.java +package yourpackage.game; + +import javax.swing.*; +import java.awt.*; + +public class Game extends JPanel implements Runnable { + private Thread thread; + private Input input; + private boolean running = false; + private int fps = 0; + + public Game() { + this.input = new Input(this); + this.setPreferredSize(new Dimension(800, 600)); + this.addMouseListener(input); + this.addMouseMotionListener(input); + this.addKeyListener(input); + this.start(); + } + + public void start() { + thread = new Thread(this); + running = true; + thread.start(); + } + + @Override + public void run() { + long lastTime = System.nanoTime(); + long timer = System.currentTimeMillis(); + final double ns = 1_000_000_000.0 / 60; + double delta = 0; + int frames = 0; + + while (running) { + long now = System.nanoTime(); + delta += (now - lastTime) / ns; + lastTime = now; + + if (delta >= 1) { + repaint(); + delta--; + frames++; + } + + if (System.currentTimeMillis() - timer > 1000) { + timer += 1000; + fps = frames; + frames = 0; + } + } + } + + @Override + protected void paintComponent(Graphics g) { + super.paintComponent(g); + g.drawString("FPS: " + fps, 10, 20); + } + + public static void main(String[] args) { + JFrame frame = new JFrame("Game Loop"); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setContentPane(new Game()); + frame.pack(); + frame.setLocationRelativeTo(null); + frame.setVisible(true); + } +} diff --git a/yourproject/src/main/java/yourpackage/main/Input.java b/yourproject/src/main/java/yourpackage/game/Input.java similarity index 88% rename from yourproject/src/main/java/yourpackage/main/Input.java rename to yourproject/src/main/java/yourpackage/game/Input.java index 09a25c0..4f55f06 100644 --- a/yourproject/src/main/java/yourpackage/main/Input.java +++ b/yourproject/src/main/java/yourpackage/game/Input.java @@ -1,13 +1,13 @@ -package yourpackage.main; +package yourpackage.game; import java.awt.event.*; public class Input implements MouseListener, MouseMotionListener, KeyListener { - private final App app; + private final Game game; - public Input(App app) { - this.app = app; + public Input(Game game) { + this.game = game; } @Override diff --git a/yourproject/src/main/java/yourpackage/main/App.java b/yourproject/src/main/java/yourpackage/main/App.java deleted file mode 100644 index d57d2bc..0000000 --- a/yourproject/src/main/java/yourpackage/main/App.java +++ /dev/null @@ -1,28 +0,0 @@ -package yourpackage.main; - -import javax.swing.JFrame; -import javax.swing.SwingUtilities; - -/** - * Hello world! - * - */ -public class App extends JFrame { - - public App() { - init(); - System.out.println( "Hello World!" ); - } - - private void init() { - setTitle("Hello World Frame"); - setSize(400, 300); - setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - setLocationRelativeTo(null); - setVisible(true); - } - - public static void main( String[] args ) { - SwingUtilities.invokeLater(() -> new App()); - } -} diff --git a/yourproject/src/main/java/yourpackage/main/Panel.java b/yourproject/src/main/java/yourpackage/main/Panel.java deleted file mode 100644 index 1f5a22a..0000000 --- a/yourproject/src/main/java/yourpackage/main/Panel.java +++ /dev/null @@ -1,20 +0,0 @@ -package yourpackage.main; - -import java.awt.Graphics; - -import javax.swing.JPanel; - -public class Panel extends JPanel { - - private final App app; - - public Panel(App app) { - this.app = app; - } - - @Override - protected void paintComponent(Graphics arg0) { - super.paintComponent(arg0); - } - -} diff --git a/yourproject/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/yourproject/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index ed6b4f6..9a0181a 100644 --- a/yourproject/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/yourproject/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1 +1,2 @@ -/home/joey/Code/Java/Framework/yourproject/src/main/java/yourpackage/App.java +/workspaces/Java-Framework/yourproject/src/main/java/yourpackage/main/App.java +/workspaces/Java-Framework/yourproject/src/main/java/yourpackage/main/Input.java