?? mainframe.java~225~
字號:
lineType = 6;
}
//菜單項準(zhǔn)備輸出文字
void writeTextItem_actionPerformed(ActionEvent e) {
lineType = 7;
}
//初始化點p1和p2
void jScrollPane1_mousePressed(MouseEvent e) {
p1 = e.getPoint();
p2 = p1;
}
//進(jìn)行圖形繪制
void jScrollPane1_mouseDragged(MouseEvent e) {
g = this.jScrollPane1.getGraphics();
//lineType表示所繪制的圖形類型:1表示繪制線段,2表示繪制圓,3表示繪制矩形
//4表示繪制橢圓,5表示繪制填充圓,6表示繪制任意線段,7表示輸出文字
switch(lineType){
case 1:
//用背景顏色覆蓋前面的直線
g.setColor(this.getBackground());
g.drawLine(p1.x,p1.y,p2.x,p2.y);
//設(shè)置當(dāng)前畫圖顏色并繪制線段
g.setColor(colour);
g.drawLine(p1.x,p1.y,e.getX(),e.getY());
p2 = e.getPoint();
break;
case 2:
g.setColor(this.getBackground());
if(Math.abs(e.getX() - p1.x) > Math.abs(e.getY() - p1.y)){
//用背景顏色覆蓋前面的圓
if(Math.abs(p2.x - p1.x) > Math.abs(p2.y - p1.y))
g.drawOval(p1.x,p1.y,Math.abs(p2.x-p1.x),Math.abs(p2.x-p1.x));
else
g.drawOval(p1.x,p1.y,Math.abs(p2.y-p1.y),Math.abs(p2.y-p1.y));
//設(shè)置當(dāng)前的畫圖顏色并繪制圓
g.setColor(colour);
g.drawOval(p1.x, p1.y, Math.abs(e.getX() - p1.x),Math.abs(e.getX() - p1.x));
}
else{
////用背景顏色覆蓋前面的圓
if(Math.abs(p2.x - p1.x) > Math.abs(p2.y - p1.y))
g.drawOval(p1.x,p1.y,Math.abs(p2.x-p1.x),Math.abs(p2.x-p1.x));
else
g.drawOval(p1.x,p1.y,Math.abs(p2.y-p1.y),Math.abs(p2.y-p1.y));
//設(shè)置當(dāng)前的畫圖顏色并繪制圓
g.setColor(colour);
g.drawOval(p1.x, p1.y, Math.abs(e.getY() - p1.y),Math.abs(e.getY() - p1.y));
}
p2 = e.getPoint();
break;
case 3:
//用背景顏色覆蓋前面的圓
g.setColor(this.getBackground());
g.drawRect(p1.x,p1.y,Math.abs(p2.x-p1.x),Math.abs(p2.y-p1.y));
//設(shè)置當(dāng)前畫圖顏色并繪制矩形
g.setColor(colour);
g.drawRect(p1.x,p1.y,Math.abs(e.getX()-p1.x),Math.abs(e.getY()-p1.y));
p2 = e.getPoint();
break;
case 4:
//用背景顏色覆蓋前面的橢圓
g.setColor(this.getBackground());
g.drawOval(p1.x,p1.y,Math.abs(p2.x-p1.x),Math.abs(p2.y-p1.y));
//設(shè)置當(dāng)前畫圖顏色并繪制橢圓
g.setColor(colour);
g.drawOval(p1.x,p1.y,Math.abs(e.getX()-p1.x),Math.abs(e.getY()-p1.y));
p2 = e.getPoint();
break;
case 5:
//用背景顏色覆蓋前面的填充圓
g.setColor(this.getBackground());
g.fillOval(p1.x,p1.y,Math.abs(p2.x-p1.x),Math.abs(p2.y-p1.y));
//設(shè)置當(dāng)前畫圖顏色并繪制填充圓
g.setColor(colour);
g.fillOval(p1.x,p1.y,Math.abs(e.getX()-p1.x),Math.abs(e.getY()-p1.y));
p2 = e.getPoint();
break;
case 6:
//設(shè)置當(dāng)前畫圖顏色并繪制任意線段
g.setColor(colour);
g.drawLine(p1.x,p1.y,e.getX(),e.getY());
p1 = e.getPoint();
break;
default:
break;
}
}
//工具欄快捷鍵準(zhǔn)備畫線段
void lineBtn_actionPerformed(ActionEvent e) {
this.drawLineItem_actionPerformed(e);
}
//工具欄快捷鍵準(zhǔn)備畫圓
void roundBtn_actionPerformed(ActionEvent e) {
this.drawRoundItem_actionPerformed(e);
}
//工具欄快捷鍵準(zhǔn)備畫橢圓
void ellipseBtn_actionPerformed(ActionEvent e) {
this.drawEllipseItem_actionPerformed(e);
}
//工具欄快捷鍵準(zhǔn)備畫填充圓
void fillRoundBtn_actionPerformed(ActionEvent e) {
this.drawFillOvalItem_actionPerformed(e);
}
//工具欄快捷鍵準(zhǔn)備畫矩形
void rectBtn_actionPerformed(ActionEvent e) {
this.drawRectangleItem_actionPerformed(e);
}
//工具欄快捷鍵準(zhǔn)備畫任意線段
void randomLineBtn_actionPerformed(ActionEvent e) {
this.drawRandomItem_actionPerformed(e);
}
//工具欄快捷鍵準(zhǔn)備輸出文字
void textWriteBtn_actionPerformed(ActionEvent e) {
this.writeTextItem_actionPerformed(e);
}
//菜單項退出系統(tǒng)
void exitSystemItem_actionPerformed(ActionEvent e) {
System.exit(0);
}
//工具欄快捷鍵退出系統(tǒng)
void exitBtn_actionPerformed(ActionEvent e) {
this.exitSystemItem_actionPerformed(e);
}
//選擇當(dāng)前繪圖顏色
void colorBtn_actionPerformed(ActionEvent e) {
JColorChooser colorChooser = new JColorChooser();
colour = colorChooser.showDialog(this,"選擇顏色",colorBtn.getForeground());
}
//點擊鼠標(biāo)后進(jìn)行文字處理
void jScrollPane1_mouseClicked(MouseEvent e) {
JOptionPane optionPane = new JOptionPane();
String text = optionPane.showInputDialog((Component)e.getSource(),"輸入文字:","Dialog for text input",JOptionPane.PLAIN_MESSAGE);
if(lineType == 7 && text != null){
g = this.jScrollPane1.getGraphics();
g.drawString(text,e.getX(),e.getY());
}
}
//創(chuàng)建新的繪圖面板
void newFileBtn_actionPerformed(ActionEvent e) {
g = this.jScrollPane1.getGraphics();
g.clearRect(0,0,this.jScrollPane1.getWidth(),this.jScrollPane1.getHeight());
colour = new Color(122,122,122);
g.setColor(colour);
lineType = 0;
}
//******************************聲音播放模塊*****************************
//選擇聲音文件
void audioFileOpenItem_actionPerformed(ActionEvent e) {
JFileChooser musicChooser = new JFileChooser();
int returnVal = musicChooser.showOpenDialog(this);
if(returnVal == JFileChooser.APPROVE_OPTION){
try {
musicURL = musicChooser.getSelectedFile().toURL();
}
catch (MalformedURLException ex) {}
}
}
//開始播放音樂
void playAudioItem_actionPerformed(ActionEvent e) {
if(musicURL == null)
return;
music = Applet.newAudioClip(musicURL);
music.loop();
}
//停止播放音樂
void abortAudioItem_actionPerformed(ActionEvent e) {
music.stop();
}
//*****************************動畫制作模塊*******************************
//選擇動畫文件
void openImageFileItem_actionPerformed(ActionEvent e) {
JFileChooser imageChooser = new JFileChooser();
int returnVal = imageChooser.showOpenDialog(this);
if(returnVal == JFileChooser.APPROVE_OPTION){
try {
imageURL = imageChooser.getSelectedFile().toURL();
imageName = imageChooser.getSelectedFile().getName();
}
catch (MalformedURLException ex) {}
}
}
//m_demoType表示動畫類型:1表示縮放平移動畫,2表示不擦除平移動畫,3表示淡入淡出動畫
//縮放平移動畫,對應(yīng)的動畫類型值為1
void zoomHerizonDemoItem_actionPerformed(ActionEvent e) {
if(imageURL == null)
return;
g = this.jScrollPane1.getGraphics();
ImageIcon icon = new ImageIcon(imageURL,imageName);
//將圖像裝入內(nèi)存
image = icon.getImage();
//創(chuàng)建當(dāng)前動畫線程前終止其他動畫線程
if(thread != null){
thread.stop();
thread = null;
}
int demoType = 1;
thread = new DemoThread(image, this.jScrollPane1, demoType);
thread.start();
}
//不擦除平移動畫,對應(yīng)的動畫類型值為2
void noEraseHerezonDemoItem_actionPerformed(ActionEvent e) {
if(imageURL == null)
return;
g = this.jScrollPane1.getGraphics();
ImageIcon icon = new ImageIcon(imageURL,imageName);
//將圖像裝入內(nèi)存
image = icon.getImage();
//創(chuàng)建當(dāng)前動畫線程前終止其他動畫線程
if(thread != null){
thread.stop();
thread = null;
}
int demoType = 2;
thread = new DemoThread(image, this.jScrollPane1, demoType);
thread.start();
}
//淡入淡出動畫,對應(yīng)的動畫類型值為3
void lightInOutDemoItem_actionPerformed(ActionEvent e) {
/* if(imageURL == null)
return;
g = this.jScrollPane1.getGraphics();
ImageIcon icon = new ImageIcon(imageURL,imageName);
image = icon.getImage();
//創(chuàng)建當(dāng)前動畫線程前終止其他動畫線程
if(thread != null){
thread.stop();
thread = null;
}
int demoType = 3;
thread = new DemoThread(image, this.jScrollPane1, demoType);
thread.start(); */
}
//終止動畫線程
void stopDemoItem_actionPerformed(ActionEvent e) {
if(thread != null){
thread.stop();
thread = null;
g = this.jScrollPane1.getGraphics();
g.clearRect(0,0,this.jScrollPane1.getWidth(),
this.jScrollPane1.getHeight());
}
}
//暫停播放動畫
void pauseDemoItem_actionPerformed(ActionEvent e) {
if (thread != null)
thread.suspend();
}
//繼續(xù)播放動畫
void resumeDemoItem_actionPerformed(ActionEvent e) {
if(thread != null)
thread.resume();
}
}
//*************************************系統(tǒng)自動生成代碼****************************
class MainFrame_drawLineItem_actionAdapter implements java.awt.event.ActionListener {
MainFrame adaptee;
MainFrame_drawLineItem_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.drawLineItem_actionPerformed(e);
}
}
class MainFrame_drawRoundItem_actionAdapter implements java.awt.event.ActionListener {
MainFrame adaptee;
MainFrame_drawRoundItem_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.drawRoundItem_actionPerformed(e);
}
}
class MainFrame_drawRectangleItem_actionAdapter implements java.awt.event.ActionListener {
MainFrame adaptee;
MainFrame_drawRectangleItem_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.drawRectangleItem_actionPerformed(e);
}
}
class MainFrame_drawEllipseItem_actionAdapter implements java.awt.event.ActionListener {
MainFrame adaptee;
MainFrame_drawEllipseItem_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -