Java by API/javax.swing/RepaintManager

Материал из Java эксперт
Перейти к: навигация, поиск

RepaintManager: currentManager(JComponent c)

   <source lang="java">

import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.RepaintManager; public class Main extends JComponent implements MouseMotionListener {

 static int imageWidth = 60, imageHeight = 60;
 int imageX, imageY;
 Image image;
 public Main(Image i) {
   image = i;
   addMouseMotionListener(this);
 }
 public void mouseDragged(MouseEvent e) {
   imageX = e.getX();
   imageY = e.getY();
   repaint();
 }
 public void mouseMoved(MouseEvent e) {
 }
 public void paint(Graphics g) {
   Graphics2D g2 = (Graphics2D) g;
   g2.drawImage(image, imageX, imageY, this);
 }
 public static void main(String[] args) {
   String imageFile = "A.jpg";
   RepaintManager.currentManager(null).setDoubleBufferingEnabled(false);
   Image image = Toolkit.getDefaultToolkit().getImage(Main.class.getResource(imageFile));
   image = image.getScaledInstance(imageWidth, imageHeight, Image.SCALE_DEFAULT);
   JFrame frame = new JFrame("DragImage");
   frame.getContentPane().add(new Main(image));
   frame.setSize(300, 300);
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   frame.setVisible(true);
 }

}

 </source>
   
  
 
  



RepaintManager: setDoubleBufferingEnabled(boolean aFlag)

   <source lang="java">

import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.RepaintManager; public class Main extends JComponent implements MouseMotionListener {

 static int imageWidth = 60, imageHeight = 60;
 int imageX, imageY;
 Image image;
 public Main(Image i) {
   image = i;
   addMouseMotionListener(this);
 }
 public void mouseDragged(MouseEvent e) {
   imageX = e.getX();
   imageY = e.getY();
   repaint();
 }
 public void mouseMoved(MouseEvent e) {
 }
 public void paint(Graphics g) {
   Graphics2D g2 = (Graphics2D) g;
   g2.drawImage(image, imageX, imageY, this);
 }
 public static void main(String[] args) {
   String imageFile = "A.jpg";
   RepaintManager.currentManager(null).setDoubleBufferingEnabled(false);
   Image image = Toolkit.getDefaultToolkit().getImage(Main.class.getResource(imageFile));
   image = image.getScaledInstance(imageWidth, imageHeight, Image.SCALE_DEFAULT);
   JFrame frame = new JFrame("DragImage");
   frame.getContentPane().add(new Main(image));
   frame.setSize(300, 300);
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   frame.setVisible(true);
 }

}

 </source>