您好,登錄后才能下訂單哦!
目標:在畫圖板上畫一條直線,供大家參考,具體內容如下
一、首先需要建立一個界面
過程: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){} }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。