亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java實現畫圖板上畫一條直線

發布時間:2020-09-29 11:16:27 來源:腳本之家 閱讀:214 作者:NaiKuaii 欄目:編程語言

目標:在畫圖板上畫一條直線,供大家參考,具體內容如下

一、首先需要建立一個界面

過程:1、創建界面對象(Java語言中已經有,可直接創建對象來使用)。

2、對于一個界面,我們需要設置它的大小、居中、界面關閉、界面可見。

3、寫主方法去實現界面。

(目前界面還未實現畫圖板的功能)

public class DrawUI {
  //顯示界面的方法
 public void show(){
    //創建界面對象
 JFrame jframe = new JFrame();
    //設置界面的尺寸、位置居中、關閉、標題
 jframe.setSize(1000, 900);
 jframe.setLocationRelativeTo(null);
 jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 jframe.setTitle("畫圖板v2.0");
 
    //設置界面可見
    jframe.setVisible(true);
 }
 //主方法
 public static void main(String[] args){
 DrawUI UI = new DrawUI();
 UI.show();
 }
 
}

二、創建監聽器類

1、重新創建一個監聽器(Listener)的類:要在界面上實現畫圖,我們需要給界面添加監聽器。====>實際上是讓鼠標的一些指令能夠在界面上有反應。換言之,監聽器是一個連接鼠標與界面的橋梁。

2、監聽器類(Listener)實現鼠標監聽器(MouseListener)的接口.

3、加入鼠標監聽器下的所有方法。

public class Listener implements MouseListener{
 
    //鼠標點擊
 public void mouseClicked(MouseEvent e){}
 
   // 鼠標按下
  public void mousePressed(MouseEvent e){}
 
   //鼠標松開
  public void mouseReleased(MouseEvent e){}
 
   // 進入
  public void mouseEntered(MouseEvent e){}
 
   // 退出 
  public void mouseExited(MouseEvent e){}
 }

三、實現畫出直線

1、創建監聽器類(Listener)后,我們需要在界面類中添加監聽器  =====> 在界面上添加監聽器后,我們才能在界面上畫圖。(寫在畫圖板“可見”之前 )。

在畫圖板中輸入一下代碼

//創建監聽器
 Listener draw = new Listener(); 
//添加監聽器
 jframe.addMouseListener(draw);

2、畫一條直線,我們需要用Graphics (畫布工具)用于畫圖。在此,畫圖板需要獲取Graphics 并且監聽器對象上設置該畫布。

(寫在畫圖板“可見”之后)

//獲取Graphics
Graphics graph = jframe.getGraphics();
//給監聽器的畫布對象賦值
draw.setGraphics(graph);

然后轉到監聽器類(Listener)中輸入代碼

3、開始畫直線

<1> 首先,畫一條直線我們需要獲取直線兩端點的坐標。所以定義x1,y1,x2,y2。

<2>畫布畫圖,需要定義Graphics

//記錄坐標
int x1,y1,x2,y2;
 
//定義Graphics
Graphics graph2;

<3> 傳畫布(Graphics)值的方法 ====> 畫圖板上的畫布值等于監聽器上的畫布值

//傳畫布值的方法
public void setGraphics(Graphics graph3){
graph2 = graph3;

<4>鼠標畫出直線

在鼠標按下事件中輸入起點坐標

 public void mousePressed(MouseEvent e){
  //獲取按下信息
  x1=e.getX();
  y1=e.getY();
  }

在鼠標松開事件中輸入終點坐標,并畫出直線

public void mouseReleased(MouseEvent e){
  //獲取松開信息
  x2=e.getX();
  y2=e.getY();
  //畫線
  graph2.drawLine(x1,y1,x2,y2);
  }

四、完整過程:

界面

package Draw;
 
import java.awt.Graphics;
 
import javax.swing.JFrame;
 
public class DrawUI {
 public void show(){
 JFrame jframe = new JFrame();
 jframe.setSize(1000, 900);
 jframe.setLocationRelativeTo(null);
 jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 jframe.setTitle("畫圖板v2.0");
 
 //創建監聽器
 Listener draw = new Listener(); 
 //添加監聽器
 jframe.addMouseListener(draw);
 
 
 jframe.setVisible(true);
 //獲取Graphics
 Graphics graph = jframe.getGraphics();
 //給監聽器的畫布對象賦值
 draw.setGraphics(graph);
 }
 //主方法
 public static void main(String[] args){
 DrawUI UI = new DrawUI();
 UI.show();
 }
 
}

監聽器

package Draw;
 
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
 
 
public class Listener implements MouseListener{
 //記錄坐標
 int x1,y1,x2,y2;
 
 //定義Graphics
 Graphics graph2;
 
 //傳畫布值的方法
 public void setGraphics(Graphics graph3){
 graph2 = graph3;
 
 
 }
 
  public void mouseClicked(MouseEvent e){}
 
  public void mousePressed(MouseEvent e){
  //獲取按下信息
  x1=e.getX();
  y1=e.getY();
  }
 
  public void mouseReleased(MouseEvent e){
  //獲取松開信息
  x2=e.getX();
  y2=e.getY();
  //畫線
  graph2.drawLine(x1,y1,x2,y2);
  }
 
 
  public void mouseEntered(MouseEvent e){}
 
  public void mouseExited(MouseEvent e){}
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

祁东县| 昭平县| 永吉县| 廉江市| 华池县| 子长县| 凯里市| 漯河市| 辽宁省| 保山市| 株洲县| 房产| 松潘县| 舒城县| 玉树县| 九江县| 台南市| 嘉善县| 长顺县| 西青区| 电白县| 昌都县| 甘孜| 黑龙江省| 烟台市| 邵阳市| 巨野县| 鄂州市| 马鞍山市| 隆回县| 闸北区| 临泉县| 托克托县| 怀仁县| 双辽市| 巴里| 苍山县| 明水县| 保亭| 龙山县| 昆山市|