📄 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) {
rectangleButton.setSelected(true);
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 + -