Graphics & listener
implement WindowListner, then using self
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.GraphicsEnvironment;
import java.awt.TextField;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class MyCanvas extends Canvas {
private static final long serialVersionUID = -1;
private GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
private String fonts[] = ge.getAvailableFontFamilyNames();
public void paint(Graphics g) {
setForeground(Color.ORANGE);
g.drawString("tst", 10, 20);
g.drawRect(50, 10, 30, 20);
int xpos[] = { 150, 165, 170, 160, 155 };
int ypos[] = { 20, 10, 20, 30, 30 };
g.drawPolygon(xpos, ypos, xpos.length);
g.drawRoundRect(10, 50, 40, 40, 10, 10);
g.drawOval(60, 50, 50, 20);
g.fillArc(100, 50, 40, 40, 45, -75);
int style[] = {Font.BOLD, Font.ITALIC, Font.PLAIN};
for(int i = 0; i < 9; i++) {
g.setColor(new Color(10 * i, 20 * i, 15 * i));
g.setFont(new Font(fonts[i], style[i % 3], 10 + 2 * i));
g.drawString(fonts[i], 10, 200 + (10 + 4 * i * i));
}
}
public static void main(String[] args) {
Frame f = new MyFrame("tst");
f.setSize(200, 600);
f.setVisible(true);
}
}
class MyFrame extends Frame implements WindowListener {
private static final long serialVersionUID = -1;
private Canvas canvas;
private TextField txtPoints;
public MyFrame(String title) {
super(title);
this.canvas = new MyCanvas();
this.txtPoints = new TextField(10);
canvas.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
txtPoints.setText("x:" + e.getX() + " y: " + e.getY());
}
});
add(txtPoints, "North");
add(canvas, "Center");
addWindowListener(this);
}
public void windowOpened(WindowEvent e) {}
public void windowClosed(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}
public void windowActivated(WindowEvent e) {}
public void windowClosing(WindowEvent e) {
this.setVisible(false);
this.dispose();
}
}
using WindowAdapter
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.GraphicsEnvironment;
import java.awt.TextField;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class MyCanvas extends Canvas {
private static final long serialVersionUID = -1;
private GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
private String fonts[] = ge.getAvailableFontFamilyNames();
public void paint(Graphics g) {
setForeground(Color.ORANGE);
g.drawString("tst", 10, 20);
g.drawRect(50, 10, 30, 20);
int xpos[] = { 150, 165, 170, 160, 155 };
int ypos[] = { 20, 10, 20, 30, 30 };
g.drawPolygon(xpos, ypos, xpos.length);
g.drawRoundRect(10, 50, 40, 40, 10, 10);
g.drawOval(60, 50, 50, 20);
g.fillArc(100, 50, 40, 40, 45, -75);
int style[] = {Font.BOLD, Font.ITALIC, Font.PLAIN};
for(int i = 0; i < 9; i++) {
g.setColor(new Color(10 * i, 20 * i, 15 * i));
g.setFont(new Font(fonts[i], style[i % 3], 10 + 2 * i));
g.drawString(fonts[i], 10, 200 + (10 + 4 * i * i));
}
}
public static void main(String[] args) {
Frame f = new MyFrame("tst");
f.setSize(200, 600);
f.setVisible(true);
}
}
class MyFrame extends Frame {
private static final long serialVersionUID = -1;
private TextField txtPoints;
private Frame self;
public MyFrame(String title) {
super(title);
self = this;
Canvas canvas = new MyCanvas();
this.txtPoints = new TextField(10);
add(txtPoints, "North");
add(canvas, "Center");
canvas.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
txtPoints.setText("x:" + e.getX() + " y: " + e.getY());
}
});
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
self.setVisible(false);
self.dispose();
}
});
}
}
History
Last edited on 05/18/2007 11:42 by persona
Comments (0)