java 渐变橡皮擦_java 的画板上面的一个橡皮檫功能
importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;classToolBarextendsJPanel{//工具條Image[]img;//圖標數(shù)組intselect=0;//選擇項ToolBar(String[]s){//構(gòu)造方法intn=s...
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class ToolBar extends JPanel{//工具條
Image[] img;//圖標數(shù)組
int select=0;//選擇項
ToolBar(String[] s){//構(gòu)造方法
int n=s.length;
img=new Image[n];
for(int i=0;i
setPreferredSize(new Dimension(0,30));//首選大小
addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){//按下鼠標
int n=(e.getX()-5)/25;
if(n
}
});
}
protected void paintComponent(Graphics g){//重繪
g.clearRect(0,0,getWidth(),getHeight());//清除
for(int i=0;i
g.drawRect(3+select*25,3,23,23);//突出選擇項
}
}
//
class P extends JPanel{//畫板
ToolBar toolBar;//工具條
int state=0;
int x=0;
int y=0;
Image bImage;//后臺圖像
Graphics bg;//后臺畫布
P(ToolBar b){//構(gòu)造方法
toolBar=b;
addMouseListener(
new MouseAdapter(){//監(jiān)聽器
public void mousePressed(MouseEvent e){
switch(toolBar.select){
case 1://橢圓
state+=1000;
x=e.getX();
y=e.getY();
break;
case 2://矩形
state+=2000;
x=e.getX();
y=e.getY();
break;
}
}
public void mouseReleased(MouseEvent e){
switch(toolBar.select){
case 1://橢圓
bg.setColor(Color.black);//黑色
bg.drawOval(x,y,e.getX()-x,e.getY()-y);//橢圓
repaint();//重繪
break;
case 2://矩形
bg.setColor(Color.black);//黑色
bg.drawRect(x,y,e.getX()-x,e.getY()-y);//橢圓
repaint();//重繪
break;
}
}
});
}
protected void paintComponent(Graphics g){//自動重繪
if(bImage==null){//首次創(chuàng)建
bImage = createImage(getSize().width,getSize().height);//后臺圖像
bg=bImage.getGraphics();//后臺畫布
bg.setColor(Color.white);//白色
bg.fill3DRect(0, 0, getWidth(), getHeight(), true); //矩形
}
g.drawImage(bImage,0,0,this);//將背景圖復(fù)制到前臺
}
}
class paint{
public static void main(String[] args){
JFrame f=new JFrame("電子畫板");
String[] s={"橡皮擦.jpg","橢圓.jpg","矩形.jpg"};
ToolBar b=new ToolBar(s);
f.add(b,"North");
f.add(new P(b));
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
f.setBounds(200,100,400,300);
f.setVisible(true);
}
}
-------------------------------------------------------------
放至代碼的文件夾下面有三個小圖標 橡皮擦.jpg","橢圓.jpg","矩形.jpg 現(xiàn)在我的橡皮檫功能還沒有實現(xiàn),問一下有沒有什么Graphics里面的方法能提供這種功能·
展開
總結(jié)
以上是生活随笔為你收集整理的java 渐变橡皮擦_java 的画板上面的一个橡皮檫功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 云计算机可持续发展的关键,云计算发展的几
- 下一篇: android 横向竖排文字,GitHu