📄 graphicspanel.java
字号:
g.setStroke(new BasicStroke(5.0f));
g.setColor(preColor);
g.drawLine(polyPoint[1][0],polyPoint[1][1],polyPoint[Pointnum][0],polyPoint[Pointnum][1]);
Graphicsnum++;
Bgt[Graphicsnum][0]=1;
Bgt[Graphicsnum][1]=polyPoint[1][0];
Bgt[Graphicsnum][2]=polyPoint[1][1];
Bgt[Graphicsnum][3]=polyPoint[Pointnum][0];
Bgt[Graphicsnum][4]=polyPoint[Pointnum][1];
Bgt[Graphicsnum][5]=lineStyle;
colorChoice[Graphicsnum]=preColor;
Pointnum=0;
}
public void display(Graphics g)
{
int i;
Color oldColor;
Graphics2D g1=(Graphics2D) g;
g1.setColor(backColor);
g1.fillRect(0,0,aPanel.getWidth(),aPanel.getHeight());
for(i=1;i<=Graphicsnum;i++)
{ /* if(Bgt[i][0]==5||Bgt[i][0]==9)
{
if(Bgt[i][5]==1);
g1.setStroke(new BasicStroke(3.0f));
if(Bgt[i][5]==2)
g1.setStroke(new BasicStroke(5.0f));
if(Bgt[i][5]==3)
g1.setStroke(new BasicStroke(3.0f));
if(Bgt[i][5]==4)
g1.setStroke(new BasicStroke(3.0f));
}*/
//else
// {
if(Bgt[i][5]==1);
g1.setStroke(new BasicStroke(1.0f));
if(Bgt[i][5]==2)
g1.setStroke(new BasicStroke(3.0f));
if(Bgt[i][5]==3)
g1.setStroke(new BasicStroke(5.0f));
if(Bgt[i][5]==4)
g1.setStroke(new BasicStroke(3.0f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND));
if(Bgt[i][5]==5)
g1.setStroke(new BasicStroke(5.0f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND));
if(Bgt[i][5]==6)
g1.setStroke(new BasicStroke(5.0f,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL));
if(Bgt[i][5]==7)
g1.setStroke(new BasicStroke(5.0f,BasicStroke.CAP_BUTT,BasicStroke.JOIN_MITER));
// }
switch(Bgt[i][0])
{
case 1:
{
g1.setColor(colorChoice[i]);
g1.drawLine(Bgt[i][1],Bgt[i][2],Bgt[i][3],Bgt[i][4]);
break;
}
case 3:
{
/*try{
Robot r=new Robot();
positionX=Bgt[i][1]+aFrame.getX()+leftPanel.getWidth();
positionY=Bgt[i][2]+aFrame.getY()+aMenuBar.getHeight()+25;
oldColor=r.getPixelColor(positionX,positionY);
g.setColor(colorChoice[i]);
//areaFill(Bgt[i][1],Bgt[i][2],g1,oldColor,preColor,);
}*/
}
case 6:
{
g1.setColor(colorChoice[i]);
if(Bgt[i][6]==2)
g1.fillOval(Bgt[i][1],Bgt[i][2],Bgt[i][3],Bgt[i][4]);
else
g1.drawOval(Bgt[i][1],Bgt[i][2],Bgt[i][3],Bgt[i][4]);
break;
}
case 7:
{
g1.setColor(colorChoice[i]);
if(Bgt[i][6]==2)
g1.fillRect(Bgt[i][1],Bgt[i][2],Bgt[i][3],Bgt[i][4]);
else
g1.drawRect(Bgt[i][1],Bgt[i][2],Bgt[i][3],Bgt[i][4]);
break;
}
case 10:
{
//g1.setColor(colorChoice[i]);
//g1.drawString(Text[Bgt[i][2]],Bgt[i][1],Bgt[i][2]);
//break;
}
default:
break;
}
}
}
public void paint(Graphics g)
{
super.paint(g);
display(g);
//if(!(fileName.equals("未命名")))
//{
Toolkit toolk = Toolkit.getDefaultToolkit();
Image openImage = toolk.getImage(filePaths);
g.drawImage(openImage,0,0,this);
//g.drawString(fileName+"!",1,1);
// }
}
}
public class LineListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(toolState==2)
aPanel.lastLine();
toolState=1;
Graphics g=dummyPanel.getGraphics();
dummyPanel.repaint();
}
}
public class PolyListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(toolState==2)
aPanel.lastLine();
aPanel.lastLine();
toolState=2;
Graphics g=dummyPanel.getGraphics();
dummyPanel.repaint();
}
}
public class FillListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(toolState==2)
aPanel.lastLine();
toolState=3;
Graphics g=dummyPanel.getGraphics();
dummyPanel.repaint();
JOptionPane.showMessageDialog(aFrame, "填充功能未实现!");
//JOptionPane.setFont(new Font("optionFont",Font.PLAIN,14));
}
}
public class PenListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(toolState==2)
aPanel.lastLine();
toolState=4;
Graphics g=dummyPanel.getGraphics();
dummyPanel.repaint();
}
}
public class BrushListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(toolState==2)
aPanel.lastLine();
toolState=5;
Graphics g=dummyPanel.getGraphics();
dummyPanel.repaint();
}
}
public class CycleListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(toolState==2)
aPanel.lastLine();
toolState=6;
Graphics g=dummyPanel.getGraphics();
dummyPanel.repaint();
}
}
public class RectListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(toolState==2)
aPanel.lastLine();
toolState=7;
Graphics g=dummyPanel.getGraphics();
dummyPanel.repaint();
}
}
public class ArcListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(toolState==2)
aPanel.lastLine();
toolState=8;
Graphics g=dummyPanel.getGraphics();
dummyPanel.repaint();
}
}
public class EraserListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(toolState==2)
aPanel.lastLine();
toolState=9;
Graphics g=dummyPanel.getGraphics();
dummyPanel.repaint();
}
}
public class OpenListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
ExampleFileFilter filter=new ExampleFileFilter("png","PNG Images");
aFileChooser.setFileFilter(filter);
int returnValue=aFileChooser.showOpenDialog(aFrame);
if(returnValue==aFileChooser.APPROVE_OPTION)
{
fileName=aFileChooser.getSelectedFile().getName();
filePaths=aFileChooser.getSelectedFile().getPath();
aFrame.setTitle(fileName+"-画图");
Graphicsnum=0;
aPanel.repaint();
}
}
}
public class SaveAsListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
ExampleFileFilter filter=new ExampleFileFilter("png","PNG Images");
bFileChooser.setFileFilter(filter);
int returnValue=bFileChooser.showSaveDialog(aFrame);
if(returnValue==bFileChooser.APPROVE_OPTION)
{
filePaths=bFileChooser.getSelectedFile().getPath()+".png";
fileName=bFileChooser.getSelectedFile().getName()+".png";
try
{
saveImage();
aFrame.setTitle(fileName+"-画图");
}
catch(Exception e1)
{
}
}
}
public void saveImage() throws Exception
{
Iterator writers=ImageIO.getImageWritersByFormatName("png");
ImageWriter writer=(ImageWriter)writers.next();
File f=new File(filePaths);
ImageOutputStream ios=ImageIO.createImageOutputStream(f);
writer.setOutput(ios);
BufferedImage bi=new BufferedImage(aPanel.getWidth(),aPanel.getHeight(),BufferedImage.TYPE_INT_RGB);
Graphics g=bi.createGraphics();
g.setColor(Color.white);
g.fillRect(0,0,aPanel.getWidth(),aPanel.getHeight());
g.setColor(Color.black);
aPanel.display(g);
writer.write(bi);
}
}
public class SaveListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
ExampleFileFilter filter=new ExampleFileFilter("png","PNG Images");
bFileChooser.setFileFilter(filter);
if(fileName.equals("未命名"))
{
int returnValue=bFileChooser.showSaveDialog(aFrame);
if(returnValue==bFileChooser.APPROVE_OPTION)
{
fileName=bFileChooser.getSelectedFile().getName()+".png";
filePaths=bFileChooser.getSelectedFile().getPath()+".png";
try
{
saveImage();
aFrame.setTitle(fileName+"-画图");
}
catch(Exception e1)
{
}
}
}
else
{
try
{
saveImage();
aFrame.setTitle(fileName+"-画图");
}
catch(Exception e1)
{
}
}
}
public void saveImage() throws Exception
{
Iterator writers=ImageIO.getImageWritersByFormatName("png");
ImageWriter writer=(ImageWriter)writers.next();
File f=new File(filePaths);
ImageOutputStream ios=ImageIO.createImageOutputStream(f);
writer.setOutput(ios);
BufferedImage bi=new BufferedImage(aPanel.getWidth(),aPanel.getHeight(),BufferedImage.TYPE_INT_RGB);
Graphics g=bi.createGraphics();
//g.setColor(backColor);
//g.fillRect(0,0,aPanel.getWidth(),aPanel.getHeight());
//g.setColor(Color.black);
aPanel.display(g);
writer.write(bi);
}
}
public class NewListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
fileName="未命名";
filePaths="";
aFrame.setTitle(fileName+"-画图");
newState=1;
Graphicsnum=0;
aPanel.repaint();
newState=0;
}
}
public class ColorListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
preColor = aColorChooser.showDialog(aFrame,"Color Chooser",aPanel.getBackground());
colorButton.setBackground(preColor);
}
}
public class LargeListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(toolState==2)
aPanel.lastLine();
JOptionPane.showMessageDialog(aFrame, "放大镜功能未实现!");
//JOptionPane.setFont(new Font("optionFont",Font.PLAIN,14));
}
}
public class GetListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(toolState==2)
aPanel.lastLine();
toolState=10;
Graphics g=dummyPanel.getGraphics();
dummyPanel.repaint();
}
}
public class IColorListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
int red,green,blue,i;
red=255-backColor.getRed();
green=255-backColor.getGreen();
blue=255-backColor.getBlue();
backColor=new Color(red,green,blue);
for(i=1;i<=Graphicsnum;i++)
{
red=255-colorChoice[i].getRed();
green=255-colorChoice[i].getGreen();
blue=255-colorChoice[i].getBlue();
colorChoice[i]=new Color(red,green,blue);
}
aPanel.repaint();
}
}
public static void main(String[] arg)
{
new GraphicsPanel();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -