📄 mywindowsplot.java
字号:
//第二项限
if (mousePressedDrawRectX[i] < mouseReleasedDrawRectX[i] && mousePressedDrawRectY[i] > mouseReleasedDrawRectY[i])
{
g2D.draw3DRect(mousePressedDrawRectX[i], mouseReleasedDrawRectY[i],
mouseReleasedDrawRectX[i] - mousePressedDrawRectX[i], mousePressedDrawRectY[i] - mouseReleasedDrawRectY[i], true);
}
//第三项限
if (mousePressedDrawRectX[i] > mouseReleasedDrawRectX[i] && mousePressedDrawRectY[i] > mouseReleasedDrawRectY[i])
{
g2D.draw3DRect(mouseReleasedDrawRectX[i], mouseReleasedDrawRectY[i],
mousePressedDrawRectX[i] - mouseReleasedDrawRectX[i], mousePressedDrawRectY[i] - mouseReleasedDrawRectY[i], true);
}
//第四项限
if (mousePressedDrawRectX[i] > mouseReleasedDrawRectX[i] && mousePressedDrawRectY[i] < mouseReleasedDrawRectY[i])
{
g2D.draw3DRect(mouseReleasedDrawRectX[i], mousePressedDrawRectY[i],
mousePressedDrawRectX[i] - mouseReleasedDrawRectX[i], mouseReleasedDrawRectY[i] - mousePressedDrawRectY[i], true);
}
}
//绘填充矩形
for (int i = 0; i < countFillRect; i++)
{
g2D.setColor(fillRectColor[i]);
//第一项限
if (mousePressedFillRectX[i] < mouseReleasedFillRectX[i] && mousePressedFillRectY[i] < mouseReleasedFillRectY[i])
{
g2D.fill3DRect(mousePressedFillRectX[i], mousePressedFillRectY[i],
mouseReleasedFillRectX[i] - mousePressedFillRectX[i], mouseReleasedFillRectY[i] - mousePressedFillRectY[i], true);
}
//第二项限
if (mousePressedFillRectX[i] < mouseReleasedFillRectX[i] && mousePressedFillRectY[i] > mouseReleasedFillRectY[i])
{
g2D.fill3DRect(mousePressedFillRectX[i], mouseReleasedFillRectY[i],
mouseReleasedFillRectX[i] - mousePressedFillRectX[i], mousePressedFillRectY[i] - mouseReleasedFillRectY[i], true);
}
//第三项限
if (mousePressedFillRectX[i] > mouseReleasedFillRectX[i] && mousePressedFillRectY[i] > mouseReleasedFillRectY[i])
{
g2D.fill3DRect(mouseReleasedFillRectX[i], mouseReleasedFillRectY[i],
mousePressedFillRectX[i] - mouseReleasedFillRectX[i], mousePressedFillRectY[i] - mouseReleasedFillRectY[i], true);
}
//第四项限
if (mousePressedFillRectX[i] > mouseReleasedFillRectX[i] && mousePressedFillRectY[i] < mouseReleasedFillRectY[i])
{
g2D.fill3DRect(mouseReleasedFillRectX[i], mousePressedFillRectY[i],
mousePressedFillRectX[i] - mouseReleasedFillRectX[i], mouseReleasedFillRectY[i] - mousePressedFillRectY[i], true);
}
}
//绘多边形
g2D.setColor(pColor);
g2D.drawPolygon(mousePressedDrawPolygonX, mousePressedDrawPolygonY, countDrawPolygon);
//填充多边形
g2D.fillPolygon(mousePressedFillPolygonX, mousePressedFillPolygonY, countFillPolygon);
//绘制画笔
g2D.draw(gPath);
//绘制擦皮
for (int i = 0; i < countDrawBrush; i++)
{
g2D.setColor(bgColor);
g2D.fillOval(mouseDrawBrushX[i] - 3, mouseDrawBrushY[i] - 3, 6, 6);
}
}
};
add(contentPane, BorderLayout.CENTER);
contentPane.setBackground(bgColor);
contentPane.addMouseMotionListener(new MouseMotionAdapter()
{
public void mouseMoved(MouseEvent e)
{
jLabel1.setText("坐标:" + " " + e.getX() + " " + e.getY());
}
});
contentPane.addMouseListener(new MouseAdapter()
{
public void mouseEntered(MouseEvent evt)
{
//改变鼠标指针的样式
contentPane.setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
}
});
repaint();
}
else if (e.getActionCommand() == "MenuSave" || e.getActionCommand() == "jbSave")
{
//显示保存对话框,将文件保存
MyFileChooser JFileChooser1 = new MyFileChooser();
int i = JFileChooser1.showSaveDialog(contentPane);
if (i == JFileChooser.APPROVE_OPTION)
{
File fileName = JFileChooser1.getSelectedFile();
saveComponentToJPEG(contentPane, fileName.toString());
}
}
else if (e.getActionCommand() == "MenuSaveAs")
{
//显示另存为对话框,将文件保存
MyFileChooser JFileChooser2 = new MyFileChooser();
int i = JFileChooser2.showSaveDialog(contentPane);
if (i == JFileChooser.APPROVE_OPTION)
{
File fileName = JFileChooser2.getSelectedFile();
saveComponentToJPEG(contentPane, fileName.toString());
}
}
else if (e.getActionCommand() == "MenuOpen" || e.getActionCommand() == "jbOpen")
{
//显示打开对话框,并将文件内容加载到面板上
JFileChooser swingDialog = new JFileChooser();
swingDialog.setMultiSelectionEnabled(true);
swingDialog.setFileFilter(new FileFilter()
{
public String getDescription()
{
return "JPG and GIF Images";
}
public boolean accept(File f)
{
String name;
if (f.isDirectory())
return true;
name = f.getName().toLowerCase();
if (name.endsWith(".jpg") || name.endsWith(".jpeg") || name.endsWith(".gif"))
return true;
else
return false;
}
});
int result = swingDialog.showOpenDialog(contentPane);
if (result != JFileChooser.APPROVE_OPTION)
return;
selFiles = swingDialog.getSelectedFile();
//在控制台显示文件路径
System.out.println(selFiles.toString());
img = Toolkit.getDefaultToolkit().getImage(selFiles.toString());
contentPaneOpenPic();
}
else if (e.getActionCommand() == "MenuAbout")
{
//显示关于对话框
String aboutStr = "WindowsPlot 画图\n版本: 1.0\n版权所有: 南京普雷信息培训中心\n制作人: 刘涛\n指导教师: 毛其林";
JOptionPane.showMessageDialog(MyWindowsPlot.this, aboutStr, "关于画图",
JOptionPane.OK_OPTION, imageAbout);
}
else if (e.getActionCommand() == "precedent1")
{
precedentOne();
}
else if (e.getActionCommand() == "precedent2")
{
precedentTwo();
}
else if (e.getActionCommand() == "EditColor")
{
//显示颜色对话框
//参数contentPane为颜色对话框显示时与contentPane控件对齐
//参数color为返回的颜色值
bgColor = JColorChooser.showDialog(contentPane, "调色板", bgColor);
//设置画板的背景颜色
contentPane.setBackground(bgColor);
}
else if (e.getActionCommand() == "EditPencilColor")
{
pColor = JColorChooser.showDialog(contentPane, "调色板", pColor);
repaint();
}
else if (e.getActionCommand() == "itemNative")
{
changeLookAndFeel("Native");
}
else if (e.getActionCommand() == "itemMotif")
{
changeLookAndFeel("Motif");
}
else if (e.getActionCommand() == "itemMetal")
{
changeLookAndFeel("Metal");
}
else if (e.getActionCommand() == "MenuHelpText")
{
//打开帮助文件
try
{
Runtime r = Runtime.getRuntime();
//hh.exe 为打开.chm文件必须的程序
r.exec("hh.exe MyHelp\\WindowsPolt.chm");
}
catch(Exception err)
{
System.out.println(err.getMessage());
}
}
else if (e.getSource() == jbPencil)
{
//使用画笔
drawPencil();
}
else if (e.getSource() == jbBrush)
{
//使用刷子
drawBrush();
}
else if (e.getSource() == jbBeeline)
{
//开始绘直线
drawLine();
}
else if (e.getSource() == jbRotundity)
{
//开始绘圆
drawOval();
}
else if (e.getSource() == jbPolygon)
{
//开始绘多边形
drawPolygon();
}
else if (e.getSource() == jbRect)
{
//开始绘矩形
drawRect();
}
else if (e.getSource() == jbFillRotundity)
{
//开始填充圆
fillOval();
}
else if (e.getSource() == jbFillRect)
{
//开始填充矩形
fillRect();
}
else if (e.getSource() == jbFillPolygon)
{
//开始填充多边形
fillPolygon();
}
}
//使用画笔
public void drawPencil()
{
contentPane.removeMouseListener(mlOneFillPolygon);
contentPane.removeMouseListener(mlOneFillOval);
contentPane.removeMouseListener(mlTwoFillOval);
contentPane.removeMouseMotionListener(mmlFillOval);
contentPane.removeMouseListener(mlOneFillRect);
contentPane.removeMouseListener(mlTwoFillRect);
contentPane.removeMouseMotionListener(mmlFillRect);
contentPane.removeMouseListener(mlOneDrawPencil);
contentPane.removeMouseMotionListener(mmlDrawPencil);
contentPane.removeMouseListener(mlOneDrawRect);
contentPane.removeMouseListener(mlTwoDrawRect);
contentPane.removeMouseMotionListener(mmlDrawRect);
contentPane.removeMouseListener(mlOneDrawOval);
contentPane.removeMouseListener(mlTwoDrawOval);
contentPane.removeMouseMotionListener(mmlDrawOval);
contentPane.removeMouseListener(mlOneDrawPolygon);
contentPane.removeMouseListener(mlOneDrawLine);
contentPane.removeMouseListener(mlTwoDrawLine);
contentPane.removeMouseListener(mlOneDrawBrush);
contentPane.removeMouseMotionListener(mmlDrawBrush);
mlOneDrawPencil = new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
pencilPoint = e.getPoint();
gPath.moveTo(pencilPoint.x, pencilPoint.y);
}
};
mmlDrawPencil = new MouseMotionAdapter()
{
public void mouseDragged(MouseEvent e)
{
pencilPoint = e.getPoint(); //得到当前鼠标点
gPath.lineTo(pencilPoint.x, pencilPoint.y); //设置路径
gPath.moveTo(pencilPoint.x, pencilPoint.y);
repaint();
}
};
contentPane.addMouseListener(mlOneDrawPencil);
contentPane.addMouseMotionListener(mmlDrawPencil);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -