?? paintboard.java
字號:
/**
* 保存文件事件
*/
class Act_SaveFile implements ActionListener{
public void actionPerformed(ActionEvent e_ji2){
if (filechooser1 == null) {
filechooser1 = new JFileChooser();
filechooser1.setFileFilter(fileFilter);
filechooser1.setMultiSelectionEnabled(false);
filechooser1.setAcceptAllFileFilterUsed(false);
filechooser1.setCurrentDirectory(new File("./"));
}
int retVal = filechooser1.showSaveDialog(canvases[canvas_control]);
if (retVal != JFileChooser.APPROVE_OPTION)
return;
File file = filechooser1.getSelectedFile();
if (!file.getName().toLowerCase().endsWith(".jwd")) {
//獲取待打開的文件名
String filename = filechooser1.getSelectedFile().getName();
canvasTabbedPane.setTitleAt(tb-1, filename);
filename = filename+ ".jwd";
//獲取待打開的文件所在的目錄,將目錄保存至數組,這樣在保存文件的時候,能夠將文件名保存到目錄中
directory[canvas_control] = filechooser1.getCurrentDirectory().toString();
try {
canvases[canvas_control].SaveFile(directory[canvas_control] + "/" + filename);
canvases[canvas_control].SaveJpg();
ImageToJpeg.toJpeg(new File("ss.jpg"), canvases[canvas_control].offScreenImg);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
/**
* 退出畫板事件
*/
class Act_ExitEditor implements ActionListener{
public void actionPerformed(ActionEvent e_ji3){
//退出畫板
exitPaintBoard();
}
}
/**
* 顯示幫助Help事件
*/
class Act_Help implements ActionListener{
public void actionPerformed(ActionEvent e_ji9){
helpFrame.pack();
helpFrame.setVisible(true);
helpFrame.requestFocus();
helpFrame.setLocation(200, 0);
}
}
//恢復
class Act_Redo implements ActionListener {
public void actionPerformed(ActionEvent e_ji10) {
canvases[canvas_control].redo();
}
}
//撤銷
class Act_UndoAs implements ActionListener{
public void actionPerformed(ActionEvent e_ji9){
canvases[canvas_control].undo();
}
}
class Act_Line implements ActionListener {
public void actionPerformed(ActionEvent e_ji11) {
lineButton.setSelected(true);
canvases[canvas_control].setCommand(Command.LINE);
statusTextArea.setText("The current draw tool: " + canvases[canvas_control].getCommandString(Command.LINE));
}
}
class Act_Circle implements ActionListener{
public void actionPerformed(ActionEvent e_ji9){
circleButton.setSelected(true);
canvases[canvas_control].setCommand(Command.CIRCLE);
canvases[canvas_control].fill = fill;
statusTextArea.setText("The current draw tool: " + canvases[canvas_control].getCommandString(Command.CIRCLE));
}
}
class Act_Rectangle implements ActionListener {
public void actionPerformed(ActionEvent e_ji10) {
canvases[canvas_control].setCommand(Command.RECTANGLE);
canvases[canvas_control].fill = fill;
statusTextArea.setText("The current draw tool: " + canvases[canvas_control].getCommandString(Command.RECTANGLE));
}
}
class Item_FillChanged implements ChangeListener{
public void stateChanged(ChangeEvent e){
JRadioButton b = (JRadioButton)e.getSource();
if(b.isSelected()){
if(b.getText().equals("Fill")){
fill = true;
canvases[canvas_control].fill = true;
}
else{
fill = false;
canvases[canvas_control].fill = false;
}
}
}
}
class Act_Eraser implements ActionListener{
public void actionPerformed(ActionEvent e_ji9){
eraserButton.setSelected(true);
canvases[canvas_control].setCommand(Command.ERASER);
}
}
/**
* 動畫顯示事件
*/
class Act_timer implements ActionListener {
public void actionPerformed(ActionEvent e_time) {
//Flash顯示,一共就4個圖片文件,按順序顯示
if (timerControl > 4){
timerControl = 0;
}
flashLabel.setIcon(new ImageIcon(loadImage("image/Juggler" + timerControl
+ ".gif")));
timerControl++;
}
}
/**
* 停止動畫事件
*/
class Act_StopFlash implements ActionListener {
public void actionPerformed(ActionEvent E_stop) {
//Flash控制。停止動畫
timer.stop();
startFlashMenuItem.setEnabled(true);
stopFlashMenuItem.setEnabled(false);
}
}
/**
* 啟動動畫事件
class Act_StartFlash implements ActionListener {
public void actionPerformed(ActionEvent E_start) {
//Flash控制。啟動動畫
timer.start();
startFlashMenuItem.setEnabled(false);
stopFlashMenuItem.setEnabled(true);
}
}
/**
* 文件過濾器,只支持編輯".jwd"文件
*/
class Filter extends FileFilter{
//覆蓋FileFilter的accept方法
public boolean accept(File file1){
if (file1.isDirectory())
return true;
if (file1.getName().endsWith(".jwd"))
return true;
return false;
}
public String getDescription(){
return ("*.jwd");
}
}
//格式為jpg的文件過濾器
private FileFilter jdrawFilter = new FileFilter() {
public boolean accept(java.io.File f) {
if (f.isDirectory())
return true;
if (f.getName().endsWith(".jpg"))
return true;
return false;
}
public String getDescription() {
return "(*.jpg)";
}
};
/**
* 從jar包中讀取圖片文件
* @param name
* @return 返回一個圖片對象
*/
private java.awt.Image loadImage(String name) {
try {
java.net.URL url = getClass().getResource(name);
//根據URL中內容新建一個圖片文件
return createImage((java.awt.image.ImageProducer) url.getContent());
} catch (Exception ex) {
return null;
}
}
class Act_Selected implements ActionListener{
public void actionPerformed(ActionEvent e){
canvases[canvas_control].setCommand(Command.SELECT);
}
}
class Act_UnSelected implements ActionListener{
public void actionPerformed(ActionEvent e){
canvases[canvas_control].setn_GraphSelect(0);
canvases[canvas_control].setCommand(Command.UNSELECTED);
}
}
class Act_Clear implements ActionListener{
public void actionPerformed(ActionEvent e){
canvases[canvas_control].clearBoard();
}
}
class Act_Pencil implements ActionListener{
public void actionPerformed(ActionEvent e){
canvases[canvas_control].setCommand(Command.PENCIL);
statusTextArea.setText("The current draw tool: " + canvases[canvas_control].getCommandString(Command.PENCIL));
}
}
class Act_Palette implements ActionListener{
public void actionPerformed(ActionEvent e){
Color tempColor = JColorChooser.showDialog(dialogFrame, "調色板", pencilColor);
if(tempColor!=null){
pencilColor = tempColor;
canvases[canvas_control].setForegroundColor(pencilColor);
fgButton.setBackground(pencilColor);
}
}
}
//插入文本
class Act_TextInsert implements ActionListener {
public void actionPerformed(ActionEvent e_ji11) {
canvases[canvas_control].setCommand(Command.TEXTINSERT);
}
}
class Act_Deleted implements ActionListener{
public void actionPerformed(ActionEvent e){
canvases[canvas_control].setCommand(Command.DELETE);
canvases[canvas_control].setSelectDel();
}
}
private void fgButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fgButtonActionPerformed
Color color = JColorChooser.showDialog(this,
"請選擇繪制圖形的顏色", canvases[canvas_control].getForeground());
if (color != null) {
canvases[canvas_control].setForeground(color);
canvases[canvas_control].setForegroundColor(color);
fgButton.setBackground(color);
}
}//GEN-LAST:event_fgButtonActionPerformed
private void bgButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bgButtonActionPerformed
java.awt.Color color = javax.swing.JColorChooser.showDialog(this,
"請選擇圖形的背景色", canvases[canvas_control].getBackground());
if (color != null) {
canvases[canvas_control].setBackground(color);
canvases[canvas_control].setBackgroundColor(color);
bgButton.setBackground(color);
}
}//GEN-LAST:event_bgButtonActionPerformed
private void brButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bgButtonActionPerformed
java.awt.Color color = javax.swing.JColorChooser.showDialog(this,
"Change Board Background Color", canvases[canvas_control].getBackground());
if (color != null) {
canvases[canvas_control].setBrushColor(color);
brButton.setBackground(color);
}
}
private void eraserComboActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_eraserComboActionPerformed
eraserButton.setSelected(true);
canvases[canvas_control].setEraserIndex(eraserCombo.getSelectedIndex());
}//GEN-LAST:event_eraserComboActionPerformed
private void weightComboActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_weightComboActionPerformed
canvases[canvas_control].setStrokeIndex(weightCombo.getSelectedIndex());
}//GEN-LAST:event_weightComboActionPerformed
class Act_SaveAs implements ActionListener{
public void actionPerformed(ActionEvent e_ji9){
if (filechooser2 == null) {
filechooser2 = new JFileChooser();
filechooser2.setFileFilter(jdrawFilter);
filechooser2.setMultiSelectionEnabled(false);
filechooser2.setAcceptAllFileFilterUsed(false);
filechooser2.setCurrentDirectory(new File("./"));
}
int retVal = filechooser2.showSaveDialog(canvases[canvas_control]);
if (retVal != JFileChooser.APPROVE_OPTION)
return;
File file = filechooser2.getSelectedFile();
if (!file.getName().toLowerCase().endsWith(".jpg")) {
//獲取待打開的文件名
String filename = filechooser2.getSelectedFile().getName();
canvasTabbedPane.setTitleAt(tb-1, filename);
filename = filename+ ".jpg";
//獲取待打開的文件所在的目錄,將目錄保存至數組,這樣在保存文件的時候,能夠將文件名保存到目錄中
directory[canvas_control] = filechooser2.getCurrentDirectory().toString();
try {
canvases[canvas_control].SaveJpg();
ImageToJpeg.toJpeg(new File(directory[canvas_control] + "/" + filename), canvases[canvas_control].offScreenImg);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
public static void main(String args[]) {
new PaintBoard();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -