java實現(xiàn)畫圖板上畫一條直線
目標:在畫圖板上畫一條直線,供大家參考,具體內(nèi)容如下
一、首先需要建立一個界面
過程:1、創(chuàng)建界面對象(Java語言中已經(jīng)有,可直接創(chuàng)建對象來使用)。
2、對于一個界面,我們需要設置它的大小、居中、界面關閉、界面可見。
3、寫主方法去實現(xiàn)界面。
(目前界面還未實現(xiàn)畫圖板的功能)
public class DrawUI {
//顯示界面的方法
public void show(){
//創(chuàng)建界面對象
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();
}
}
二、創(chuàng)建監(jiān)聽器類
1、重新創(chuàng)建一個監(jiān)聽器(Listener)的類:要在界面上實現(xiàn)畫圖,我們需要給界面添加監(jiān)聽器。====>實際上是讓鼠標的一些指令能夠在界面上有反應。換言之,監(jiān)聽器是一個連接鼠標與界面的橋梁。
2、監(jiān)聽器類(Listener)實現(xiàn)鼠標監(jiān)聽器(MouseListener)的接口.
3、加入鼠標監(jiān)聽器下的所有方法。
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){}
}
三、實現(xiàn)畫出直線
1、創(chuàng)建監(jiān)聽器類(Listener)后,我們需要在界面類中添加監(jiān)聽器 =====> 在界面上添加監(jiān)聽器后,我們才能在界面上畫圖。(寫在畫圖板“可見”之前 )。
在畫圖板中輸入一下代碼
//創(chuàng)建監(jiān)聽器 Listener draw = new Listener(); //添加監(jiān)聽器 jframe.addMouseListener(draw);
2、畫一條直線,我們需要用Graphics (畫布工具)用于畫圖。在此,畫圖板需要獲取Graphics 并且監(jiān)聽器對象上設置該畫布。
(寫在畫圖板“可見”之后)
//獲取Graphics Graphics graph = jframe.getGraphics(); //給監(jiān)聽器的畫布對象賦值 draw.setGraphics(graph);
然后轉(zhuǎn)到監(jiān)聽器類(Listener)中輸入代碼
3、開始畫直線
<1> 首先,畫一條直線我們需要獲取直線兩端點的坐標。所以定義x1,y1,x2,y2。
<2>畫布畫圖,需要定義Graphics
//記錄坐標 int x1,y1,x2,y2; //定義Graphics Graphics graph1;
<3> 傳畫布(Graphics)值的方法 ====> 畫圖板上的畫布值等于監(jiān)聽器上的畫布值
//傳畫布值的方法
public void setGraphics(Graphics graph2){
graph1 = graph2;
<4>鼠標畫出直線
在鼠標按下事件中輸入起點坐標
public void mousePressed(MouseEvent e){
//獲取按下信息
x1=e.getX();
y1=e.getY();
}
在鼠標松開事件中輸入終點坐標,并畫出直線
public void mouseReleased(MouseEvent e){
//獲取松開信息
x2=e.getX();
y2=e.getY();
//畫線
graph1.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");
//創(chuàng)建監(jiān)聽器
Listener draw = new Listener();
//添加監(jiān)聽器
jframe.addMouseListener(draw);
jframe.setVisible(true);
//獲取Graphics
Graphics graph = jframe.getGraphics();
//給監(jiān)聽器的畫布對象賦值
draw.setGraphics(graph);
}
//主方法
public static void main(String[] args){
DrawUI UI = new DrawUI();
UI.show();
}
}
監(jiān)聽器
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 graph1;
//傳畫布值的方法
public void setGraphics(Graphics graph2){
graph1 = graph2;
}
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();
//畫線
graph1.drawLine(x1,y1,x2,y2);
}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Springboot項目打包如何將依賴的jar包輸出到指定目錄
公司要對springboot項目依賴的jar包進行升級,但是遇到一個問題,項目打包之后,沒辦法看到他里面依賴的jar包,版本到底是不是升上去了,沒辦法看到,下面通過本文給大家分享Springboot項目打包如何將依賴的jar包輸出到指定目錄,感興趣的朋友一起看看吧2024-05-05
SpringBoot核心@SpringBootApplication使用介紹
這篇文章主要介紹了SpringBoot核心@SpringBootApplication的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
Spring Boot與Kotlin定時任務的示例(Scheduling Tasks)
這篇文章主要介紹了Spring Boot與Kotlin定時任務的示例(Scheduling Tasks),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03

