包含java設置圖形移動的詞條

本文目錄一覽:

java 畫了一個圓,怎麼讓它上下左右移動啊?

移動圓,改變它的圓心即可,可以通過給圓心設置一個運動軌跡函數實現,實例代碼為;

public class joinDemo1 extends JFrame

{

 //繼承    

 private int x=100, y=100, r=100; 

 

 //初始值   

 public joinDemo1() 

 {        

  super(“小圖形”);       

  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        

        

  this.setSize(800, 600);        

  this.setVisible(true); 

  Thread thread=new Thread(new Graphicss());

  thread.start();

}    

 public void paint(Graphics g)

 {        

  super.paint(g);        

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

 }    

 public static void main(String[] args)

 {        

  new joinDemo1();    

 }     

 

 class Graphicss implements Runnable{

  @Override

  public void run() {

   // TODO Auto-generated method stub

for (int j = 0; j = 240; j++) {

      revalidate();

  // System.out.println(j);                

                try {

                    Thread.sleep(1000);// 當前線程休眠0.01秒

                    

                } catch (InterruptedException e) {

                    e.printStackTrace();

                }

   

                y=y+j;

     repaint();           

                

}

}

}

}

java中如何控制圖形移動

圖像移動效果是你第一眼看到他在這,第二眼看到他在那。

所以你要做兩件事,,

1,不斷繪圖

2,改變要繪製的對象的位置

另一種方式,,

繪製一下,改變一下位置,繪製一下,改變,,,

相關類,,

窗體JFRAME

繪製面板PANEL

重寫繪製面板的PAINT方法,用一個線程以一定頻率不斷調用重繪方法,

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程序實現圖片的移動(最好有例子)

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();

}

}

}

}

}

以上

原創文章,作者:SYNQ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/148301.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
SYNQ的頭像SYNQ
上一篇 2024-11-03 15:15
下一篇 2024-11-03 15:15

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論