新聞中心
小程序如何將canvas所畫的圖形清除或者刪除掉?
如何將canvas所畫的圖形清除或者刪除掉?
創(chuàng)新互聯(lián)自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個(gè)性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開發(fā)管理經(jīng)驗(yàn)、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團(tuán)隊(duì)及專業(yè)的網(wǎng)站設(shè)計(jì)師團(tuán)隊(duì)。
答:樓主的問題是怎么解決的?我最近也遇到了同樣的問題我想畫扇形,每隔1S更新一下扇形的面積不知道該怎么樣更新?請指導(dǎo)一下 先謝謝你了
如何清除canvas上面畫的所有圖形
答:clearRect函數(shù) context.clearRect(0,0,300,300); 第一個(gè)參數(shù):x的起始位置 第二個(gè)參數(shù):y的起始位置 第三個(gè)參數(shù):清除的寬度 第四個(gè)參數(shù):清除的高度
java 中如何將畫在畫布上的圖形清除(從canvas類繼...
答:清除方法一、 在圖片的位置接著畫一個(gè)矩形覆蓋這個(gè)圖片,并且把顏色設(shè)置成和背景色一樣就OK了! 代碼如下: context.fillStyle="ffffff";//白色為例子; context.fillRect(400,100,400,100); 注意,上面的代碼要放在imageObj.onload里面才有效果...
求一份JAVA計(jì)算器源代碼,要有()+-*/和清除鍵及小數(shù)點(diǎn)的,不用科學(xué)計(jì)算器
import?java.awt.BorderLayout;
import?java.awt.Dimension;
import?java.awt.GridLayout;
import?java.awt.Toolkit;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?javax.swing.JButton;
import?javax.swing.JFrame;
import?javax.swing.JPanel;
import?javax.swing.SwingUtilities;
import?javax.swing.UIManager;
class?CalculatorPanel?extends?JPanel?{
private?JPanel?jp;?//?中間的面板
private?double?result;?//?計(jì)算結(jié)果
private?boolean?start;?//?用于判斷是否是首次輸入,true首次,false不是首次
private?boolean?flag;?//?用于判斷是否清空顯示區(qū)域的值,true需要,false不需要
private?String?lastCommand;?//?用于保存運(yùn)算符
JButton?display;?//?顯示區(qū)域
public?CalculatorPanel()?{
//?初始化各項(xiàng)值
result?=?0;
start?=?true;
flag?=?false;
lastCommand?=?"=";
//?設(shè)置CalculatorPanel這個(gè)面板的布局為框架布局
setLayout(new?BorderLayout());
//?這個(gè)按鈕用來顯示值的區(qū)域
display?=?new?JButton("0.0");
display.setEnabled(false);//?按鈕樣式設(shè)置為禁用樣式
//?用來初始化,清除用的
JButton?clear?=?new?JButton("clear");
clear.addActionListener(new?ActionListener()?{
@Override
public?void?actionPerformed(ActionEvent?e)?{
//?作初始化的操作
result?=?0;
start?=?true;
flag?=?false;
lastCommand?=?"=";
display.setText("0.0");
}
});
jp?=?new?JPanel();
//?將此面板布局設(shè)置為網(wǎng)格布局,4行4列
jp.setLayout(new?GridLayout(4,?4));
//?實(shí)例化監(jiān)聽器對象
NumberAction?na?=?new?NumberAction();
CommandAction?ca?=?new?CommandAction();
makeButton("7",?na);
makeButton("8",?na);
makeButton("9",?na);
makeButton("/",?ca);
makeButton("4",?na);
makeButton("5",?na);
makeButton("6",?na);
makeButton("*",?ca);
makeButton("1",?na);
makeButton("2",?na);
makeButton("3",?na);
makeButton("-",?ca);
makeButton("0",?na);
makeButton(".",?na);
makeButton("+",?ca);
makeButton("=",?ca);
//?將面板,兩個(gè)按鍵加入到我的面板,實(shí)現(xiàn)計(jì)算器的界面
add(display,?BorderLayout.NORTH);
add(jp,?BorderLayout.CENTER);
add(clear,?BorderLayout.SOUTH);
}
private?void?makeButton(String?buttonName,?ActionListener?al)?{
JButton?jb?=?new?JButton(buttonName);
jp.add(jb);
jb.addActionListener(al);
}
//?數(shù)字監(jiān)聽器
private?class?NumberAction?implements?ActionListener?{
@Override
public?void?actionPerformed(ActionEvent?e)?{
JButton?jb?=?(JButton)?e.getSource();?//?獲取事件源對象
String?input?=?jb.getText();?//?獲取事件源對象上的標(biāo)簽
if?(start)?{?//?首次輸入
//?一上就".",就什么也不做
if?(input.equals("."))?{
return;
}
//?如果是"0.0"的話,就清空
if?(display.getText().equals("0.0"))?{
display.setText("");
}
start?=?false;//?改變是否首次輸入的標(biāo)記值
}?else?{
//?判斷顯示區(qū)域的值里面是否已經(jīng)有".",如果有,輸入的又是".",就什么都不做
if?(display.getText().indexOf(".")?!=?-1)?{
if?(input.equals("."))?{
return;
}
}
//?判斷顯示區(qū)域的值里面只有"-",輸入的又是".",就什么都不做
if?(display.getText().equals("-"))?{
if?(input.equals("."))?{
return;
}
}
//?判斷顯示區(qū)域的值如果是"0",輸入的不是".",就什么也不做
if?(display.getText().equals("0"))?{
if?(!input.equals("."))?{
return;
}
}
}
//?如果我點(diǎn)擊了運(yùn)算符以后,再輸入數(shù)字的話,就要清空顯示區(qū)域的值
if?(flag)?{
display.setText("");
flag?=?false;//?還原初始值,不需要清空
}
display.setText(display.getText()?+?input);//?設(shè)置顯示區(qū)域的值
}
}
//?運(yùn)算符監(jiān)聽器
private?class?CommandAction?implements?ActionListener?{
@Override
public?void?actionPerformed(ActionEvent?e)?{
JButton?jb?=?(JButton)?e.getSource();?//?獲取事件源對象
String?inputCommand?=?jb.getText();?//?獲取事件源對象上的標(biāo)簽
if?(start)?{//?首次輸入
//?一上就是"-"
if?(inputCommand.equals("-"))?{
display.setText("-");//?顯示區(qū)域的內(nèi)容設(shè)置為"-"
start?=?false;//?改變首次輸入的標(biāo)記
}
}?else?{
if?(!flag)?{//?如果flag=false不需要清空顯示區(qū)的值,就調(diào)用方法計(jì)算
calculate(Double.parseDouble(display.getText()));//?保存顯示區(qū)域的值,并計(jì)算
}
//?保存你點(diǎn)擊的運(yùn)算符
lastCommand?=?inputCommand;
flag?=?true;//?因?yàn)槲疫@里已經(jīng)輸入過運(yùn)算符,
}
}
}
//?計(jì)算用的方法
private?void?calculate(double?x)?{
if?(lastCommand.equals("+"))?{
result?+=?x;
}?else?if?(lastCommand.equals("-"))?{
result?-=?x;
}?else?if?(lastCommand.equals("*"))?{
result?*=?x;
}?else?if?(lastCommand.equals("/"))?{
result?/=?x;
}?else?if?(lastCommand.equals("="))?{
result?=?x;
}
display.setText(""?+?result);
}
}
class?MyFrameUitl?{
public?static?void?init(JFrame?jFrame,?Dimension?frameSize,?String?title,
String?iconFileName,?boolean?resizable)?{
Toolkit?tk?=?Toolkit.getDefaultToolkit();?//?系統(tǒng)工具包,可以讀取系統(tǒng)信息
Dimension?screenSize?=?tk.getScreenSize();//?獲取屏幕大小
//?獲取寬高
int?screenWidth?=?screenSize.width;
int?screenHeight?=?screenSize.height;
//?找中心點(diǎn)
int?centerX?=?screenWidth?/?2;
int?centerY?=?screenHeight?/?2;
//?解析窗體大小
int?frameWidth?=?frameSize.width;
int?frameHeight?=?frameSize.height;
//?設(shè)置窗體位置
jFrame.setBounds(centerX?-?frameWidth?/?2,?centerY?-?frameHeight?/?2,
frameWidth,?frameHeight);
jFrame.setTitle(title);//?設(shè)置標(biāo)題
if?(iconFileName?!=?null)?{
jFrame.setIconImage(tk.getImage(iconFileName));//?設(shè)置圖標(biāo)
}
//?設(shè)置皮膚com.sun.java.swing.plaf.windows.WindowsLookAndFeel
/**/
try?{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
SwingUtilities.updateComponentTreeUI(jFrame);
}?catch?(Exception?e1)?{
e1.printStackTrace();
}
jFrame.setResizable(resizable);//?設(shè)置窗體是否可以改變大小
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);?//?設(shè)置程序關(guān)閉動(dòng)作
jFrame.setVisible(true);//?顯示窗體
}
}
class?CalculatorFrame?extends?JFrame?{
public?CalculatorFrame()?{
add(new?CalculatorPanel());
MyFrameUitl.init(this,?new?Dimension(400,?300),?"簡易計(jì)算器",?null,
false);
this.pack();//?讓組件按原始大小顯示,并且窗體的大小剛好能夠容納所有的組件
}
}
public?class?CalculatorTest?{
public?static?void?main(String[]?args)?{
new?CalculatorFrame();
}
}
運(yùn)行結(jié)果:
java,怎樣清除已畫圖形?
盡量不要重寫JFrame的paint方法,會有各種問題,JFrame中的所有內(nèi)容實(shí)際上都包含在contentPane里,所以定制contentPane是更好的辦法
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MouseDemo3 extends JFrame implements MouseListener, MouseMotionListener {
int flag;
int x = 0;
int y = 0;
int startx, starty, endx, endy;
public MouseDemo3() {
//將contentPane修改為自己的Panel,而不是使用JFrame自帶的
JPanel contentPane = new PaintPanel();
contentPane.addMouseListener(this);
contentPane.addMouseMotionListener(this);
setContentPane(contentPane);
setSize(300, 300);
// show(); 已過時(shí)的API,用setVisible代替
setVisible(true);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public void mousePressed(MouseEvent e) {
startx = e.getX();
starty = e.getY();
}
public void mouseReleased(MouseEvent e) {
endx = e.getX();
endy = e.getY();
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mouseClicked(MouseEvent e) {
}
public void mouseMoved(MouseEvent e) {
flag = 1;
x = e.getX();
y = e.getY();
repaint();
}
public void mouseDragged(MouseEvent e) {
flag = 2;
x = e.getX();
y = e.getY();
repaint();
}
public void update(Graphics g) {
g.setColor(this.getBackground());
g.fillRect(0, 0, getWidth(), getHeight());
paint(g);
}
//繼承JPanel,并重寫paintComponent而不是paint方法
//重寫paint方法會導(dǎo)致該容器中的其他組件無法繪制
private class PaintPanel extends JPanel {
@Override
protected void paintComponent(Graphics g) {
g.setColor(Color.black);
if (flag == 1) {
g.drawString("鼠標(biāo)坐標(biāo):(" + x + "," + y + ")", 10, 50);
g.drawLine(startx, starty, endx, endy);
}
if (flag == 2) {
g.drawString("拖拽鼠標(biāo)坐標(biāo):(" + x + "," + y + ")", 10, 50);
g.drawLine(startx, starty, x, y);
}
}
}
public static void main(String[] args) {
new MouseDemo3();
}
}
當(dāng)前文章:java圖形清除鍵的代碼 java刪除功能代碼
網(wǎng)頁地址:http://biofuelwatch.net/article/ddggshp.html