亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Java實現的可選擇及拖拽圖片的面板功能【基于swing組件】

2024-07-13 10:16:19
字體:
來源:轉載
供稿:網友

本文實例講述了Java實現的可選擇及拖拽圖片的面板功能。分享給大家供大家參考,具體如下:

今天在論壇上看到帖子希望能在 Swing 中實現像拖地圖一樣拖拽圖片。這里是一個最簡單的實現,提供了一個基本思路。

import javax.swing.*;import javax.swing.filechooser.FileNameExtensionFilter;import java.awt.*;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.event.MouseMotionListener;import java.io.File;/** * 在窗體上拖拽圖片。使用方法:雙擊窗體空白處將會彈出打開圖片對話框。打開圖片后可以在窗體上拖拽圖片。 */@SuppressWarnings("serial")public class DragingFrame extends JFrame {  /**   * 構造函數   *   * @throws HeadlessException ???   */  public DragingFrame() throws HeadlessException {    this.setDefaultCloseOperation(EXIT_ON_CLOSE);    getContentPane().setLayout(new BorderLayout());    getContentPane().add(new ImagePanel(), BorderLayout.CENTER);  }  // 程序入口  public static void main(String[] args) throws Exception {    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());    DragingFrame frame = new DragingFrame();    frame.setSize(400, 300);    frame.setLocation(300, 300);    frame.setResizable(false);    frame.setTitle("www.49028c.com 雙擊打開圖片,然后拖拽");    frame.setVisible(true);  }}/** * 能夠拖拽圖片的面板 */@SuppressWarnings("serial")class ImagePanel extends JPanel {  private DragStatus status = DragStatus.Ready;  // 拖拽狀態  private Image image;              // 要顯示的圖片  private Point imagePosition = new Point(0, 0), // 圖片的當前位置      imageStartposition = new Point(0, 0),  // 每次拖拽開始時圖片的位置(也就是上次拖拽后的位置)      mouseStartposition;           // 每次拖拽開始時鼠標的位置  ImagePanel() {    addMouseListener(new MouseListener() {      // 雙擊鼠標時打開圖片      public void mouseClicked(MouseEvent e) {        if (e.getClickCount() == 2) {          openImage();        }      }      // 按下鼠標時,更改狀態,并且記錄拖拽起始位置。      public void mousePressed(MouseEvent e) {        if (status == DragStatus.Ready) {          status = DragStatus.Dragging;          mouseStartposition = e.getPoint();          imageStartposition.setLocation(imagePosition.getLocation());        }      }      // 松開鼠標時更改狀態      public void mouseReleased(MouseEvent e) {        if (status == DragStatus.Dragging) {          status = DragStatus.Ready;        }      }      public void mouseEntered(MouseEvent e) {      }      public void mouseExited(MouseEvent e) {      }    });    addMouseMotionListener(new MouseMotionListener() {      // Java 有拖拽事件,在這個事件中移動圖片位置      public void mouseDragged(MouseEvent e) {        if (status == DragStatus.Dragging) {          moveImage(e.getPoint());        }      }      public void mouseMoved(MouseEvent e) {      }    });  }  /**   * 移動圖片。實際上畫圖工作在 paintComponent() 中進行,這里只是計算圖片位置,然后調用該方法。   *   * @param point 當前的鼠標位置   */  private void moveImage(Point point) {    // 圖片的當前位置等于圖片的起始位置加上鼠標位置的偏移量。    imagePosition.setLocation(        imageStartposition.getX() + (point.getX() - mouseStartposition.getX()),        imageStartposition.getY() + (point.getY() - mouseStartposition.getY())    );    repaint();  }  // 打開圖片  private void openImage() {    System.out.println("Opening image...");    File file = createFileChooser().getSelectedFile();    if (file != null) {      image = Toolkit.getDefaultToolkit().getImage(file.getAbsolutePath());      if (image != null) {        this.repaint();      }    }  }  // 創建打開文件對話框  private JFileChooser createFileChooser() {    JFileChooser chooser = new JFileChooser();    chooser.setDialogTitle("請選擇圖片文件...");    chooser.addChoosableFileFilter(new FileNameExtensionFilter("常用圖片格式", "jpg", "jpeg", "gif", "png"));    chooser.showOpenDialog(this);    return chooser;  }  @Override  protected void paintComponent(Graphics g) {    super.paintComponent(g);    if (image != null) {      g.drawImage(image, (int) imagePosition.getX(), (int) imagePosition.getY(), this);    }  }  private enum DragStatus {    Ready, Dragging  }}

運行效果:

Java,可選擇,拖拽,圖片,面板,swing組件

 

希望本文所述對大家java程序設計有所幫助。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品久久久久久久久久| 久久精品色欧美aⅴ一区二区| 日韩精品欧美国产精品忘忧草| 日韩精品高清在线| 91色在线观看| 亚洲精品白浆高清久久久久久| 俺去了亚洲欧美日韩| 欧美成人午夜剧场免费观看| 一区二区成人av| www.99久久热国产日韩欧美.com| 久久精品久久精品亚洲人| 久久久视频精品| 欧美精品video| 国产欧美日韩最新| 亚洲国产日韩欧美在线图片| 国产精品99久久99久久久二8| 欧美激情国产日韩精品一区18| 欧美成人免费全部观看天天性色| 欧美日韩中文字幕日韩欧美| 成人欧美在线观看| 亚洲视频在线看| 狠狠爱在线视频一区| 91精品久久久久久久| 国产成人精品优优av| 亚洲色图av在线| 日韩欧美视频一区二区三区| 色妞欧美日韩在线| 高清欧美电影在线| 国产视频在线一区二区| 亚洲高清久久网| 国产精品久久久av久久久| 中文字幕亚洲无线码在线一区| 亚洲韩国日本中文字幕| 日韩电视剧免费观看网站| 精品av在线播放| 亚洲综合自拍一区| 国自在线精品视频| 国产精品自拍小视频| 欧美成人精品在线观看| 国产成人精品a视频一区www| 国产精品678| 精品偷拍各种wc美女嘘嘘| 色在人av网站天堂精品| 欧美超级免费视 在线| 国产成人在线精品| 久久久999精品视频| 国产精品久久久久久av| 成人网中文字幕| 这里只有精品在线观看| 91视频免费网站| 欧美性xxxx在线播放| 亚洲最大激情中文字幕| 成人精品aaaa网站| 国产中文欧美精品| 欧美成人免费全部观看天天性色| 26uuu另类亚洲欧美日本老年| 久久亚洲电影天堂| 久久精品视频va| 亚洲精品久久在线| 日韩av手机在线| 亚洲国产私拍精品国模在线观看| 国产精品中文字幕在线观看| 日韩高清有码在线| 日韩最新中文字幕电影免费看| 夜夜嗨av一区二区三区免费区| 国产精品高潮呻吟久久av无限| 成人精品一区二区三区电影免费| 亚洲第一综合天堂另类专| 国产精品三级久久久久久电影| 中文字幕欧美精品日韩中文字幕| 成人有码视频在线播放| 久99久在线视频| 在线观看亚洲区| 日韩精品在线免费观看| 不用播放器成人网| 中文字幕欧美日韩va免费视频| 久久精品国产亚洲| 亚洲大胆人体视频| 疯狂蹂躏欧美一区二区精品| 亚洲国产91色在线| 大桥未久av一区二区三区| 在线观看国产精品淫| 97在线精品视频| 欧美黑人性猛交| 亚洲人成在线观看网站高清| 高跟丝袜欧美一区| 国产成人精品视频在线| 欧美成人合集magnet| 日韩在线精品视频| 成人激情在线观看| 成人免费高清完整版在线观看| 成人精品网站在线观看| 欧美午夜宅男影院在线观看| 久久久精品久久久久| 国产精品在线看| 97视频免费在线观看| 日韩美女主播视频| 久久久国产影院| 欧美视频在线观看免费| 欧美在线视频免费| 亚洲美女精品成人在线视频| 久久在精品线影院精品国产| 久久精品国产成人精品| 久久综合网hezyo| 亚洲资源在线看| 亚洲深夜福利网站| 国产精品偷伦一区二区| 日韩在线观看免费全| 亚洲高清一区二| 久久综合九色九九| 狠狠爱在线视频一区| 欧美性色19p| 亚洲综合社区网| 国产成人在线精品| 中文国产成人精品久久一| 美日韩在线视频| 欧美一区二区大胆人体摄影专业网站| 中日韩美女免费视频网址在线观看| 欧美午夜电影在线| 欧美日韩午夜激情| 日韩理论片久久| 91精品久久久久久久久| 国产精品私拍pans大尺度在线| 欧美午夜丰满在线18影院| 午夜精品久久久99热福利| 在线视频日韩精品| 中文字幕日韩av电影| 成人久久久久久久| 国产精品成人一区二区| 黑人精品xxx一区一二区| 91高清视频免费观看| 中文字幕一区电影| 成人乱人伦精品视频在线观看| 欧美视频在线免费看| 久久成人国产精品| 九九热精品在线| 国产精品视频免费观看www| 在线观看国产欧美| 国产一区二区视频在线观看| 欧美精品制服第一页| 国产精品专区第二| 国产精品第二页| 亚洲一区av在线播放| 中文字幕日韩av综合精品| 国产精品va在线播放我和闺蜜| 亚洲一区二区三区视频| 亚洲影院色在线观看免费| 人九九综合九九宗合| 伊人男人综合视频网| 欧洲s码亚洲m码精品一区| 中文字幕久久亚洲| 一区二区三区国产在线观看| 韩国日本不卡在线| 欧美激情精品久久久久久蜜臀| 国产一区二区成人| 欧美日韩一区二区免费视频| 亚洲色图综合久久| 亚洲影视中文字幕| 中日韩美女免费视频网址在线观看| 国产精品91在线观看| 亚洲免费成人av电影| 日韩福利在线播放| 色妞在线综合亚洲欧美| 国产精品亚洲网站|