/* Ćwiczenie 11 sem.2
I. Rysowanie z wykorzystaniem interfejsu myszy
*/
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Random;
public class Mysz extends javax.swing.JFrame implements MouseListener { boolean prawy, lewy, środkowy;
Color kolor = Color.white;
Random r = new Random();
int x, y;
public Mysz() { //konstruktor klasy Mysz initComponents();
setSize(500, 500); //zmiana rozmiaru okna ramki addMouseListener(this);
}
public void paint (Graphics g) { g.setColor(kolor);
g.fillRect(0, 0, getWidth(), getHeight());
if (lewy) { // instrukcja ustawiająca kolor i rysująca koło g.setColor(Color.red);
g.fillOval(x, y, 80, 80);
}
if (prawy) { // instrukcja ustawiająca kolor i rysująca prostokąt g.setColor(Color.green);
g.fillRect(x, y, 80, 80);
}
if (środkowy) { // instrukcja ustawiająca kolor i rysująca wycinek koła g.setColor(Color.blue);
g.fillArc(x, y, 80, 80, 90, 135);
} }
public void mouseClicked(MouseEvent e) { } public void mousePressed(MouseEvent e) { x = e.getX();
y = e.getY();
lewy = e.getButton() == MouseEvent.BUTTON1; // wciśnięto lewy przycisk myszy prawy = e.getButton() == MouseEvent.BUTTON3; // wciśnięto lewy przycisk myszy środkowy = e.getButton() == MouseEvent.BUTTON2; // wciśnięto środkowy przycisk myszy if (e.isControlDown()) { //kliknięcie myszą z wciśniętym klawiszem Ctrl - kolor = new Color(r.nextInt(256), r.nextInt(256), r.nextInt(256));
}
repaint();
}
public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { }
public static void main(String args[]) { //
}}
/* Ćwiczenie 11 sem.2
II. Animacja z wykorzystaniem klasy Timer i interfejsu myszy
*/
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Random;
import javax.swing.Timer;
public class Skoczek extends javax.swing.JFrame implements ActionListener, MouseListener { Random r = new Random();
Color kolor = Color.yellow;
int x, y;
Timer timer = new Timer(500, this); // zegar tykający co 500 ms public Skoczek () { // konstruktor klasy Skoczek
initComponents();
setSize(500, 500);
setBackground(Color.white);
timer.start(); // uruchomienie zegara addMouseListener(this);
}
public void paint (Graphics g) {
g.clearRect(0, 0, getWidth(), getHeight()); //wypełnienie obszaru grafiki tłem g.translate(x, y); //przesunięcie obszaru grafiki
g.setColor(kolor);
g.fillOval(0, 0, 50, 50);
g.setColor(Color.black);
g.fillOval(10, 15, 6, 6); // oczy g.fillOval(35, 15, 6, 6);
g.drawArc(10, 10, 30, 30, -140, 110); // uśmiech }
public void actionPerformed(ActionEvent e) { x = r.nextInt(getWidth() - 60);
y = r.nextInt(getHeight() - 80);
kolor = new Color(r.nextInt(256), r.nextInt(256), r.nextInt(256));
repaint();
}
public void mouseClicked(MouseEvent e) { } public void mousePressed(MouseEvent e) { if (e.getButton() == MouseEvent.BUTTON1) { timer.start();
}
if (e.getButton() == MouseEvent.BUTTON3) { timer.stop();
} }
public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public static void main(String args[]) { }
}
/* Ćwiczenie 11 sem.2
III. Animacja poklatkowa z wykorzystaniem klasy Timer
*/
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.Timer;
public class Obrazki extends javax.swing.JFrame implements ActionListener {
ImageIcon[] rys = new ImageIcon[17]; // tablica przechowująca obrazki – klatki filmu int nr = 0; // numer wyświetlanego obrazka
Timer timer = new Timer(200, this); //zegar tykający co 200 ms public Obrazki () { // .konstruktor klasy Obrazki
initComponents();
setSize(400, 300);
setBackground(Color.white);
timer.start();
for (int n = 0; n < 17; n++) {
rys[n] = new ImageIcon("T" + (n + 1) + ".gif");
} }
public void paint (Graphics g) {
g.clearRect(0, 0, getWidth(), getHeight());
rys[nr].paintIcon(this, g, 100, 50);
}
public void actionPerformed(ActionEvent e) { nr++;
if (nr > 16) { nr = 0;
}
repaint();
}
public static void main(String args[]) { } }