「java图片平移」图片的平移

博主:adminadmin 2022-11-22 14:40:07 84

今天给各位分享java图片平移的知识,其中也会对图片的平移进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

怎么编写java程序实现图片的移动(最好有例子)

import java.awt.Color;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import javax.swing.JFrame;

public class DrawTest extends JFrame {

private int x = 50;

private int y = 50;

private Image offScreenImage = null;

@Override

public void paint(Graphics g) {

Color c = g.getColor();

g.setColor(Color.BLACK);

g.fillOval(x, y, 30, 30);

g.setColor(c);

}

public void update(Graphics g) {

if (offScreenImage == null) {

offScreenImage = this.createImage(500, 500);

}

Graphics gOffScreen = offScreenImage.getGraphics();

Color c = gOffScreen.getColor();

gOffScreen.setColor(Color.GREEN);

gOffScreen.fillRect(0, 0, 500, 500);

gOffScreen.setColor(c);

paint(gOffScreen);

g.drawImage(offScreenImage, 0, 0, null);

}

public static void main(String[] args) {

DrawTest d = new DrawTest();

}

public DrawTest() {

init();

addKeyListener(new KeyAdapter() {

public void keyPressed(final KeyEvent e) {

int code = e.getKeyCode();

switch (code) {

case KeyEvent.VK_UP:

y -= 5;

break;

case KeyEvent.VK_RIGHT:

x += 5;

break;

case KeyEvent.VK_DOWN:

y += 5;

break;

case KeyEvent.VK_LEFT:

x -= 5;

break;

}

}

});

}

public void init() {

this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);

this.setBackground(Color.GREEN);

this.setResizable(false);

this.setBounds(140, 140, 500, 500);

this.setVisible(true);

MyThread mt = new MyThread();

new Thread(mt).start();

}

class MyThread implements Runnable {

public void run() {

while (true) {

repaint();

try {

Thread.sleep(100);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

}

以上

用JAVA语言写一个二维平面图形(如长方形)的平移,旋转,缩放的程序.

import javax.swing.*;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.geom.*;

/**

* @author Hardneedl

*/

class RectTransform extends JFrame {

private static final Dimension minSize = new Dimension(300, 200);

private static final Dimension maxSize = new Dimension(1024, 768);

private static final Dimension preferredSize = new Dimension(600, 400);

public Dimension getMaximumSize() {return maxSize;}

public Dimension getMinimumSize() {return minSize;}

public Dimension getPreferredSize() {return preferredSize;}

public String getTitle() {return "Frame Title";}

private AffineTransform af = new AffineTransform();

private Stroke stroke = new BasicStroke(2.0f);

private Rectangle rct = new Rectangle(40,140,200,140);

private JComponent canvas = new JComponent(){

protected void paintComponent(Graphics g) {

super.paintComponent(g);

g.setColor(Color.BLACK);

g.fillRect(0,0,getWidth(),getHeight());

Graphics2D g2d = (Graphics2D)g.create();

g2d.setColor(Color.YELLOW);

g2d.setTransform(af);

g2d.setStroke(stroke);

g2d.draw(rct);

g2d.dispose();

}

};

RectTransform() throws HeadlessException {

init();

doLay();

attachListeners();

}

private void init() {

}

private void doLay() {

Container container = getContentPane();

JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER,30,5));

panel.add(new JButton( new AfAction("move", AffineTransform.getTranslateInstance(100,100)) ));

panel.add(new JButton( new AfAction("rotate", AffineTransform.getRotateInstance(Math.PI/3,40,120) ) ));

panel.add(new JButton( new AfAction("zoomIn", AffineTransform.getScaleInstance(2,2)) ));

panel.add(new JButton( new AfAction("ZoomOut", AffineTransform.getScaleInstance(.5d,.5d)) ));

panel.add(new JButton( new AfAction("Original", new AffineTransform()) ) );

container.add(panel,BorderLayout.NORTH);

container.add(canvas,BorderLayout.CENTER);

pack();

}

private void attachListeners() {

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

private class AfAction extends AbstractAction {

private AffineTransform aff;

private AfAction(String n,AffineTransform af) {

super(n);

this.aff = af;

}

public void actionPerformed(ActionEvent e) {

af.setTransform(aff);

if(canvas.isVisible()) canvas.paintImmediately(0,0,getWidth(),getHeight());

}

}

public static void main(String[] args) {

new RectTransform().setVisible(true);

}

}

java怎么控制图片在窗体中移动?

写一个线程,在run方法中控制图片x,y的坐标位置,不能超过窗体的控制就是当你的x和Y的坐标不能大于窗体的最大值和最小值。

import java.awt.*;

import java.util.Date;

import javax.swing.*;

import sun.security.krb5.internal.rcache.ReplayCache;

public class CanvasPanel extends JPanel implements Runnable {

private Image back;

private Image cloud;

int time;

private Thread thread;

private boolean play = true;

int width = 458;

int height = 357;

int x = width;

public CanvasPanel() {

super();

back = new ImageIcon(getClass().getResource("back.jpg")).getImage();

cloud = new ImageIcon(getClass().getResource("cloud.png")).getImage();

time = 100;

play = true;

if (thread == null || !thread.isAlive())

thread = new Thread(this);

thread.start();

}

@Override

protected void paintComponent(Graphics g) {

super.paintComponent(g);

g.drawImage(back, 0, 0, width, height, this);

g.drawImage(cloud, x, 10, this);

x -= 2;

if (x = -cloud.getWidth(this))

x = width;

}

public void run() {

while (play) {

try {

Thread.sleep(time);

} catch (Exception e) {

e.printStackTrace();

}

repaint();

}

}

}

import java.awt.BorderLayout;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class ImageRun extends JFrame {

private JPanel panel;

public static void main(String args[]) {

try {

ImageRun frame = new ImageRun();

frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

}

}

public ImageRun() {

super();

setBounds(100, 100, 458, 357);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

getContentPane().add(getPanel(), BorderLayout.CENTER);

//

}

protected JPanel getPanel() {

if (panel == null) {

panel = new CanvasPanel();

}

return panel;

}

}

back.jpg和cloud.jpg是两张图片

java如何实现图片拖动,放大缩小,旋转。

这个只是实现了移动,你参考以下吧 !

public class MoveImage {

static int x,y;

private static int num=0;

private static Icon icon=null;

public static void main(String[] args) throws Exception{

JFrame f = new JFrame();

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.getContentPane().setLayout(null);//这个要设置成 null

//图片

icon = new ImageIcon("d:/test.gif");//d:/test.gif本地一张图片

JLabel l = new JLabel(icon); //创建具有指定图像的 JLabel 实例。

l.setSize(icon.getIconWidth(),icon.getIconHeight());//设置面板的宽度和高度

l.setBorder(BorderFactory.createLineBorder(Color.red));//给图片加上红色外框

f.getContentPane().add(l);

f.setSize(900,700);

f.setVisible(true);

l.addMouseListener(new MouseAdapter(){

public void mousePressed(MouseEvent e){

x=e.getX();

y=e.getY();

}

});

l.addMouseMotionListener(new MouseMotionListener(){

public void mouseDragged(MouseEvent e) {

JLabel l = (JLabel)e.getSource();

l.setLocation(l.getX()+e.getX()-x,l.getY()+e.getY()-y);

}

public void mouseMoved(MouseEvent e) {}

});

}

java语言里怎么让图象移动到指定位置啊,最好用一小段代码说明.

改变规制时候的X Y就行了.伪代码如下.

int x =0,y=0,;

x++; y++;

g.drawImage( "图片信息" , x, y,锚点);

大概就这样图片就动了.你想移动到哪加个判断就行了.

JAVA插入图片并可以实现图片的缩小放大移动

亲,这是需要线程的,你构造一个线程,在run方法里面就可以控制这张图片的坐标(移动)和宽高(放大缩小)

关于java图片平移和图片的平移的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-22,除非注明,否则均为首码项目网原创文章,转载请注明出处。