started with the TicTacToe_MinMax Project. Finished the rendering of the game.
TODO: Make a playable version and add MinMax
This commit is contained in:
11
DemoProjects/DemoProjects.iml
Normal file
11
DemoProjects/DemoProjects.iml
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
24
DemoProjects/src/painting/SwingPaintDemo1.java
Normal file
24
DemoProjects/src/painting/SwingPaintDemo1.java
Normal file
@@ -0,0 +1,24 @@
|
||||
package painting;
|
||||
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.JFrame;
|
||||
|
||||
public class SwingPaintDemo1 {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
createAndShowGUI();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static void createAndShowGUI() {
|
||||
System.out.println("Created GUI on EDT? " +
|
||||
SwingUtilities.isEventDispatchThread());
|
||||
JFrame f = new JFrame("Swing Paint Demo");
|
||||
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
f.setSize(250, 250);
|
||||
f.setVisible(true);
|
||||
}
|
||||
}
|
||||
49
DemoProjects/src/painting/SwingPaintDemo2.java
Normal file
49
DemoProjects/src/painting/SwingPaintDemo2.java
Normal file
@@ -0,0 +1,49 @@
|
||||
package painting;
|
||||
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.BorderFactory;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Graphics;
|
||||
|
||||
public class SwingPaintDemo2 {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
createAndShowGUI();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static void createAndShowGUI() {
|
||||
System.out.println("Created GUI on EDT? "+
|
||||
SwingUtilities.isEventDispatchThread());
|
||||
JFrame f = new JFrame("Swing Paint Demo");
|
||||
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
f.add(new MyPanel1());
|
||||
f.pack();
|
||||
f.setVisible(true);
|
||||
}
|
||||
}
|
||||
|
||||
class MyPanel1 extends JPanel {
|
||||
|
||||
public MyPanel1() {
|
||||
setBorder(BorderFactory.createLineBorder(Color.blue));
|
||||
}
|
||||
|
||||
public Dimension getPreferredSize() {
|
||||
return new Dimension(900,900);
|
||||
}
|
||||
|
||||
public void paintComponent(Graphics g) {
|
||||
super.paintComponent(g);
|
||||
|
||||
// Draw Text
|
||||
g.drawString("This is my custom Panel!", getSize().width/2,getSize().height/2);
|
||||
System.out.println("called");
|
||||
}
|
||||
}
|
||||
85
DemoProjects/src/painting/SwingPaintDemo3.java
Normal file
85
DemoProjects/src/painting/SwingPaintDemo3.java
Normal file
@@ -0,0 +1,85 @@
|
||||
package painting;
|
||||
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.BorderFactory;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.MouseListener;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseMotionListener;
|
||||
import java.awt.event.MouseMotionAdapter;
|
||||
|
||||
public class SwingPaintDemo3 {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
createAndShowGUI();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static void createAndShowGUI() {
|
||||
System.out.println("Created GUI on EDT? "+
|
||||
SwingUtilities.isEventDispatchThread());
|
||||
JFrame f = new JFrame("Swing Paint Demo");
|
||||
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
f.add(new MyPanel2());
|
||||
f.pack();
|
||||
f.setVisible(true);
|
||||
}
|
||||
}
|
||||
|
||||
class MyPanel2 extends JPanel {
|
||||
|
||||
private int squareX = 50;
|
||||
private int squareY = 50;
|
||||
private int squareW = 20;
|
||||
private int squareH = 20;
|
||||
|
||||
public MyPanel2() {
|
||||
|
||||
setBorder(BorderFactory.createLineBorder(Color.black));
|
||||
|
||||
addMouseListener(new MouseAdapter() {
|
||||
public void mousePressed(MouseEvent e) {
|
||||
moveSquare(e.getX(),e.getY());
|
||||
}
|
||||
});
|
||||
|
||||
addMouseMotionListener(new MouseAdapter() {
|
||||
public void mouseDragged(MouseEvent e) {
|
||||
moveSquare(e.getX(),e.getY());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void moveSquare(int x, int y) {
|
||||
int OFFSET = 1;
|
||||
if ((squareX!=x) || (squareY!=y)) {
|
||||
repaint(squareX,squareY,squareW+OFFSET,squareH+OFFSET);
|
||||
squareX=x;
|
||||
squareY=y;
|
||||
repaint(squareX,squareY,squareW+OFFSET,squareH+OFFSET);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public Dimension getPreferredSize() {
|
||||
return new Dimension(250,200);
|
||||
}
|
||||
|
||||
protected void paintComponent(Graphics g) {
|
||||
super.paintComponent(g);
|
||||
g.drawString("This is my custom Panel!",10,20);
|
||||
g.setColor(Color.RED);
|
||||
g.fillRect(squareX,squareY,squareW,squareH);
|
||||
g.setColor(Color.BLACK);
|
||||
g.drawRect(squareX,squareY,squareW,squareH);
|
||||
}
|
||||
}
|
||||
136
DemoProjects/src/painting/SwingPaintDemo4.java
Normal file
136
DemoProjects/src/painting/SwingPaintDemo4.java
Normal file
@@ -0,0 +1,136 @@
|
||||
package painting;
|
||||
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.BorderFactory;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.MouseAdapter;
|
||||
|
||||
public class SwingPaintDemo4 {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
createAndShowGUI();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static void createAndShowGUI() {
|
||||
System.out.println("Created GUI on EDT? "+
|
||||
SwingUtilities.isEventDispatchThread());
|
||||
JFrame f = new JFrame("Swing Paint Demo");
|
||||
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
f.add(new MyPanel3());
|
||||
f.setSize(250,250);
|
||||
f.setVisible(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class MyPanel3 extends JPanel {
|
||||
|
||||
RedSquare redSquare = new RedSquare();
|
||||
RedSquare redSquare2 = new RedSquare();
|
||||
|
||||
public MyPanel3() {
|
||||
|
||||
setBorder(BorderFactory.createLineBorder(Color.black));
|
||||
|
||||
addMouseListener(new MouseAdapter(){
|
||||
public void mousePressed(MouseEvent e){
|
||||
moveSquare(e.getX(),e.getY());
|
||||
}
|
||||
});
|
||||
|
||||
addMouseMotionListener(new MouseAdapter(){
|
||||
public void mouseDragged(MouseEvent e){
|
||||
moveSquare(e.getX(),e.getY());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void moveSquare(int x, int y){
|
||||
|
||||
// Current square state, stored as final variables
|
||||
// to avoid repeat invocations of the same methods.
|
||||
final int CURR_X = redSquare.getX();
|
||||
final int CURR_Y = redSquare.getY();
|
||||
final int CURR_W = redSquare.getWidth();
|
||||
final int CURR_H = redSquare.getHeight();
|
||||
final int OFFSET = 1;
|
||||
|
||||
if ((CURR_X!=x) || (CURR_Y!=y)) {
|
||||
|
||||
// The square is moving, repaint background
|
||||
// over the old square location.
|
||||
repaint(CURR_X,CURR_Y,CURR_W+OFFSET,CURR_H+OFFSET);
|
||||
|
||||
// Update coordinates.
|
||||
redSquare.setX(x);
|
||||
redSquare.setY(y);
|
||||
|
||||
// Repaint the square at the new location.
|
||||
repaint(redSquare.getX(), redSquare.getY(),
|
||||
redSquare.getWidth()+OFFSET,
|
||||
redSquare.getHeight()+OFFSET);
|
||||
}
|
||||
}
|
||||
|
||||
public Dimension getPreferredSize() {
|
||||
return new Dimension(250,200);
|
||||
}
|
||||
|
||||
public void paintComponent(Graphics g) {
|
||||
super.paintComponent(g);
|
||||
g.drawString("This is my custom Panel!",10,20);
|
||||
System.out.println(getSize());
|
||||
redSquare.paintSquare(g);
|
||||
redSquare2.paintSquare(g);
|
||||
}
|
||||
}
|
||||
|
||||
class RedSquare{
|
||||
|
||||
private int xPos = 50;
|
||||
private int yPos = 50;
|
||||
private int width = 20;
|
||||
private int height = 20;
|
||||
|
||||
public void setX(int xPos){
|
||||
this.xPos = xPos;
|
||||
}
|
||||
|
||||
public int getX(){
|
||||
return xPos;
|
||||
}
|
||||
|
||||
public void setY(int yPos){
|
||||
this.yPos = yPos;
|
||||
}
|
||||
|
||||
public int getY(){
|
||||
return yPos;
|
||||
}
|
||||
|
||||
public int getWidth(){
|
||||
return width;
|
||||
}
|
||||
|
||||
public int getHeight(){
|
||||
return height;
|
||||
}
|
||||
|
||||
public void paintSquare(Graphics g){
|
||||
g.setColor(Color.RED);
|
||||
g.fillRect(xPos,yPos,width,height);
|
||||
g.setColor(Color.BLACK);
|
||||
g.drawRect(xPos,yPos,width,height);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user