Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
~ marini
marini - 2011
Component Hierarchy
Each component has its own subwindow
Subwindow is a rectangular area within parent component Has own coordinate system
(0,0) JPanel panel1 (0,0) JPanel panel2
example:
import javax.swing.*; import java.awt.*; public class Grafik extends JApplet { public void paint(Graphics g) { Graphics2D g2d = (Graphics2D) g; g2d.drawString("Menggunakan Kelas Graphics2d", 10, 20); } }
Casting Graphics g (10, 20)
(wp1, hp1)
(wp2, hp2)
marini - 2011
Color control
Combinations of Red, Green, Blue Each [0, 255]
Hokie Orange Class Color e.g. new Color(255,150,0) Graphics method setColor sets drawing color
Takes Color object Method getColor gets current color setting Graphics2D uses setPaint class
import java.awt.*; import javax.swing.*; public class WarnaTeks extends JApplet { public void paint(Graphics g) { Graphics2D g2d = (Graphics2D) g; g2d.setPaint(Color.blue); g2d.drawString("Grafik Java", 20, 50); } }
example..
Color constants
Predefined color objects:
Color.white Color.gray Color.black Color.pink Color.orange Color.green Color.cyan Color.lightGray Color.darkGray Color.red Color.blue Color.yellow Color.magenta
Font Control
Class Font
public Font(String name,int style,int size) name: any font supported by system
Serif, Monospaced
style:
Constants: FONT.PLAIN, FONT.ITALIC, FONT.BOLD Combinations: FONT.ITALIC + FONT.BOLD
size:
measured in points (1/72 of an inch)
marini - 2011
Font Control
Class FontMetrics Has methods for getting font metrics g2d.getFontMetrics
returns FontMetrics object Font fon = new Font("TimesRoman", Font.PLAIN, 14); FontMetrics fm = getFontMetrics(fon);
height
leading
ebkp
FontMetrics methods:
int int int int stringWidth(String str) getAscent() getDescent() getHeight()
example..
import java.awt.*; import javax.swing.*; public class FonMetrik extends JApplet { public void paint(Graphics g) { Graphics2D g2d = (Graphics2D) g;
Font fon = new Font("SanSerif", Font.PLAIN, 14); FontMetrics metrik = getFontMetrics(fon); String str1 = "Selamat "; int lebar_str1 = metrik.stringWidth(str1); g2d.setFont(fon); g2d.setPaint(Color.blue); Draws maju jaya g2d.drawString(str1, 50, 50); next to str1 g2d.setFont(new Font("Serif", Font.BOLD+Font.ITALIC, 24)); g2d.setPaint(Color.red); g2d.drawString("Maju Jaya", 50+lebar_str1, 50); } }
marini - 2011