Commit 5647d07e authored by Trisha Gee's avatar Trisha Gee
Browse files

[Ch14] Example code for painting stuff to the GUI

parent 41d905eb
Loading
Loading
Loading
Loading
+9 −2
Changes for src/main/java/ch14/MyDrawPanel.java: 9 added lines, 2 removed lines.
Original line number Diff line number Diff line
package ch14;

import javax.swing.*;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.*;

class MyDrawPanel extends JPanel {

@@ -11,4 +10,12 @@ class MyDrawPanel extends JPanel {

    g.fillRect(20, 50, 100, 100);
  }

  public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().add(new MyDrawPanel());
    frame.setSize(300, 300);
    frame.setVisible(true);
  }
}
 No newline at end of file
+25 −0
Changes for src/main/java/ch14/ShowCat.java: 25 added lines, 0 removed lines.
Original line number Diff line number Diff line
package ch14;

import javax.swing.*;
import java.awt.*;
import java.awt.image.ImageObserver;

public class ShowCat extends JPanel implements ImageObserver {
  public void paintComponent(Graphics g) {
    Image image = new ImageIcon("catzilla.jpg").getImage();

    g.drawImage(image, 3, 4, this);
  }

  public boolean imageUpdate(Image img, int infoflags, int x, int y, int width, int height) {
    return false;
  }

  public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.add(new ShowCat());
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(300, 300);
    frame.setVisible(true);
  }
}
+28 −0
Changes for src/main/java/ch14/ShowCircle.java: 28 added lines, 0 removed lines.
Original line number Diff line number Diff line
package ch14;

import javax.swing.*;
import java.awt.*;
import java.util.Random;

public class ShowCircle extends JPanel {
  public void paintComponent(Graphics g) {
    g.fillRect(0, 0, this.getWidth(), this.getHeight());

    Random random = new Random();
    int red = random.nextInt(256);
    int green = random.nextInt(256);
    int blue = random.nextInt(256);

    Color randomColor = new Color(red, green, blue);
    g.setColor(randomColor);
    g.fillOval(70, 70, 100, 100);
  }

  public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.add(new ShowCircle());
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(300, 300);
    frame.setVisible(true);
  }
}
+23 −0
Changes for src/main/java/ch14/ShowGradient.java: 23 added lines, 0 removed lines.
Original line number Diff line number Diff line
package ch14;

import javax.swing.*;
import java.awt.*;

public class ShowGradient extends JPanel {
  public void paintComponent(Graphics g) {
    Graphics2D g2d = (Graphics2D) g;

    GradientPaint gradient = new GradientPaint(70, 70, Color.blue, 150, 150, Color.orange);

    g2d.setPaint(gradient);
    g2d.fillOval(70, 70, 100, 100);
  }

  public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.add(new ShowGradient());
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(300, 300);
    frame.setVisible(true);
  }
}
+34 −0
Changes for src/main/java/ch14/ShowRandomGradient.java: 34 added lines, 0 removed lines.
Original line number Diff line number Diff line
package ch14;

import javax.swing.*;
import java.awt.*;
import java.util.Random;

public class ShowRandomGradient extends JPanel {
  public void paintComponent(Graphics g) {
    Graphics2D g2d = (Graphics2D) g;

    Random random = new Random();
    int red = random.nextInt(256);
    int green = random.nextInt(256);
    int blue = random.nextInt(256);
    Color startColor = new Color(red, green, blue);

    red = random.nextInt(256);
    green = random.nextInt(256);
    blue = random.nextInt(256);
    Color endColor = new Color(red, green, blue);

    GradientPaint gradient = new GradientPaint(70, 70, startColor, 150, 150, endColor);
    g2d.setPaint(gradient);
    g2d.fillOval(70,70,100,100);
  }

  public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.add(new ShowRandomGradient());
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(300, 300);
    frame.setVisible(true);
  }
}
Loading