java繪制
『壹』 在java中如何用程序畫一個圓
使用java畫圓要用到繪圖類Graphics,下面是實例代碼和運行效果:
packagecom.dikea.demo01;
importjava.awt.*;
importjavax.swing.*;
//java繪圖原理
publicclassdemo_01extendsJFrame{
MyPanelmp=null;
publicstaticvoidmain(String[]args){
//TODO自動生成的方法存根
demo_01demo01=newdemo_01();
}
publicdemo_01(){
mp=newMyPanel();
this.add(mp);
this.setSize(400,300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
//定義一個MyPanel面板,用於繪圖區域
classMyPanelextendsJPanel{
//覆蓋JPanel
//Graphics是繪圖的重要類,可以理解成一支畫筆
publicvoidpaint(Graphicsg){
//1.調用父類函數完成初始化任務
//這句話不可以少
super.paint(g);
//先畫出一個圓圈
g.drawOval(100,100,30,30);
}
}
代碼復制進ide編程工具,運行效果如下:
『貳』 用java編寫一個簡單的畫圖程序。不用復雜
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;
//不規則圖形的繪制
public class IrregularShapeDemo extends JFrame {
GeneralPath gPath= new GeneralPath(); //GeneralPath對象實例
Point aPoint;
//構造函數
public IrregularShapeDemo() {
super("不規則圖形的繪制"); //調用父類構造函數
enableEvents(AWTEvent.MOUSE_EVENT_MASK|AWTEvent.MOUSE_MOTION_EVENT_MASK); //允許事件
setSize(300, 200); //設置窗口尺寸
setVisible(true); //設置窗口可視
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //關閉窗口時退出程序
}
public void paint(Graphics g) { //重載窗口組件的paint()方法
Graphics2D g2D = (Graphics2D)g; //獲取圖形環境
g2D.draw(gPath); //繪制路徑
}
public static void main(String[] args) {
new IrregularShapeDemo();
}
protected void processMouseEvent(MouseEvent e) { //滑鼠事件處理
if(e.getID() == MouseEvent.MOUSE_PRESSED) {
aPoint = e.getPoint(); //得到當前滑鼠點
gPath = new GeneralPath(); //重新實例化GeneralPath對象
gPath.moveTo(aPoint.x,aPoint.y); //設置路徑點
}
}
protected void processMouseMotionEvent(MouseEvent e) { //滑鼠運動事件處理
if(e.getID() == MouseEvent.MOUSE_DRAGGED) {
aPoint = e.getPoint(); //得到當前滑鼠點
gPath.lineTo(aPoint.x, aPoint.y); //設置路徑
gPath.moveTo(aPoint.x, aPoint.y);
repaint(); //重繪組件
}
}
}
『叄』 Java繪圖機制是什麼樣的
JAVA的繪圖功能非常豐富,繪圖包括字體、顏色、圖形,以下我們將分技術專題來講。
一、關於JAVA的繪圖機制。
JAVA中的任何一個圖形組件,小到文本框、標簽,大到一個FRAME,一個DIALOG,都有一個專門負責顯示其界面的函數,這個函數名稱是固定的:paint,它的原型為: public void paint(Graphics g) { …… } 每當組件大小、位置、組件內容發生變化時,該函數即負責生成新的圖形界面顯示。由於該函數可以被子類繼承,因此,繼承的子類有能力修改該函數。如果子類中沒有出現該函數,則表示其行為完全繼承自父類。則不管是組件中是否添加了新的內容,是否發生了大小的改變,是否發生了位移,父類都要有一個專門的線程,來負責描繪變化以後的組件界面。 paint函數由父類自動維護,並且如果子類一旦重載該函數,必須自己去維護所有的界面顯示。
二、設置畫筆顏色
1、顏色常識
任何顏色都是三原色組成(RGB),JAVA中支持224位彩色,即紅綠藍色分量可取值介於0..255之間。下面首先學習一個JAVA中的類Color Color中的常量:
public final static Color black=new Color(0,0,0);
public final static Color blue=new Color(0,0,255);
…..
Color的構造函數:
public Color(int r,int g,int b);
使用舉例:如果想構造一個灰色對象,則用下面的句子:
Color gray=new Color(205,205,205);
2、設置畫筆顏色語法
g.setColor(color); //color是一個Color對象
每修改一次顏色它影響的就是下面所有的繪圖語句,一直影響到再次碰到setColor函數才以新的顏色代替。
3、使用JColorChooser組件選擇顏色 JAVA中有一個已經定義好的選色器,通過簡單的語法我們就可以將該窗口調出來,從其中選擇自己喜歡的顏色。下面的這個例子就是通過顏色選取器選取顏色,並將選擇到的顏色做為窗體的背景色。
(1)JColorChooser簡介 JColorChooser組件的showDialog()方法讓用戶從彈出的窗口中選擇一個顏色,並傳給Color對象。其調用語法如下: color=JColorChooser.showDialog(this,」選色」,color); 第一個參數指定調用選色器的父窗體,第二個參數指定選色器窗口標題,最後一個為接收顏色的顏色對象。
4、如何將一個圖形(以文件存在,如JPG或者GIF)畫到窗體的畫布中其實放置圖形到畫板中實際就是調用了畫板的drawImage函數。其大致思路如下:首先獲取一個ImageIcon對象,這個對象將會從指定的文件中讀取相關圖象信息,它支持GIF和JPG、BMP等基本圖象格式。語法如下:
ImageIcon icon=new ImageIcon(GraExp5.class.getResource("1.gif"));
獲取到圖象的圖標以後,就可以從圖標中獲取到繪制到畫板上的實際需要的圖象:
Image img=icon.getImage();
有了這個圖象對象,我們就可以用畫板的drawImage函數畫圖了。
g.drawImage(img,0,0,null);