📄 mywindowsplot.java
字号:
{
//改变鼠标指针的样式
contentPane.setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
}
});
this.addComponentListener(new ComponentAdapter()
{
public void componentResized(ComponentEvent e)
{
repaint();
}
});
}
class MyActionListener implements ActionListener
{
public void contentPaneOpenPic()
{
initialization();
contentPane = new JPanel()
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
if (img != null)
{
g.drawImage(img, 0, 0, contentPane.getWidth(), contentPane.getHeight(), contentPane);
}
}
};
add(contentPane, BorderLayout.CENTER);
repaint();
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.HAND_CURSOR));
}
});
repaint();
}
public void precedentOne()
{
myRemove(contentPane);
contentPane = new JPanel()
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
int i, j;
Font f = new Font("TimesRoman", Font.BOLD, 14);
g.setColor(Color.pink);
for (i = 0; i < getHeight(); i += 20)
{
g.drawLine(0, i, getWidth(), i);
}
for (j = 0; j < getWidth(); j += 20)
{
g.drawLine(j, 0 , j, getHeight());
}
g.setFont(f);
g.setColor(Color.red);
g.drawString("hello the world!", 20, 20);
g.drawRect(getWidth() / 2 - 50, getHeight() / 2, 100, 100);
g.drawArc(getWidth() / 2 - 50, getHeight() / 2, 100, 100, 0, 360);
g.setColor(Color.green);
g.drawOval(30, 30, 80, 60);
g.fillOval(250, 30, 80, 60);
g.setColor(Color.yellow);
g.fill3DRect(30, 200, 80, 60, false);
g.setColor(Color.blue);
g.fill3DRect(250, 200, 80, 60, true);
}
};
myAdd(contentPane);
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.HAND_CURSOR));
}
});
repaint();
}
public void precedentTwo()
{
myRemove(contentPane);
contentPane = new JPanel()
{
public void paintComponent(Graphics g)
{
super.paintComponent(g); //调用父类的绘制组件方法
Graphics2D g2D = (Graphics2D)g;
setBackground(Color.white);
setForeground(Color.black);
int charH = 16; //最大字符高度
int gridW = getWidth() / 5; //绘图网格宽度
int gridH = getHeight() / 4; //绘图网格高度
int posX = 2; //各图形绘制位置的x坐标
int posY = 2; //各图形位置的y坐标
int strY = gridH - 7; //字符串绘制位置的y坐标
int w = gridW - 2 * posX; //图形的宽度
int h = strY - charH - posY; //图形的高度
int cirlceD = Math.min(w, h); //圆的直径
Shape[][] shape = new Shape[2][5];
shape[0][0] = new Line2D.Float(0, 0, w, h); //直线
shape[0][1] = new Rectangle2D.Double(0, 0, w, h); //矩形
shape[0][2] = new RoundRectangle2D.Float(0, 0, w, h, 20, 20); //圆角矩形
shape[0][3] = new Ellipse2D.Float(0, 0, cirlceD, cirlceD); //圆
shape[0][4] = new Ellipse2D.Float(0, 0, w, h); //椭圆
shape[1][0] = new Arc2D.Float(0, 0, w, h, 45, 225, Arc2D.OPEN); //开弧
shape[1][1] = new Arc2D.Float(0 , 0, w, h, 45, 225, Arc2D.CHORD); //弓形
shape[1][2] = new Arc2D.Float(0, 0, w, h, 45, 225, Arc2D.PIE); //饼形
shape[1][3] = new QuadCurve2D.Double(0, 0, w, h/6, w, h); //二次曲线
shape[1][4] = new CubicCurve2D.Double(0, 0, w/2, h, w, h/2, w, h); //三次曲线
//绘制几何图形的名称
String[][] shapeName = {{"直线","矩形","圆角矩形","圆","椭圆"},
{"开弧","弓形","饼形","二次曲线","三次曲线"}};
AffineTransform defaultAT = g2D.getTransform();
for (int i = 0; i < shapeName.length; i++)
{
for (int j = 0; j < shape[i].length; j++)
{
g2D.setColor(Color.black);
g2D.translate(posX,posY); //坐标平移
g2D.draw(shape[i][j]);
g2D.setColor(Color.blue);
g2D.drawString(shapeName[i][j], 2, strY); //绘制说明文字
g2D.setTransform(defaultAT);
posY += gridH;
g2D.translate(posX,posY);
g2D.setColor(Color.pink);
g2D.fill(shape[i][j]);
g2D.setColor(Color.blue);
g2D.drawString("填充" + shapeName[i][j], 2, strY); //文字
g2D.setTransform(defaultAT);
posX += gridW;
posY -= gridH;
}
posX = 2;
posY += 2 * gridH;
}
}
};
myAdd(contentPane);
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.HAND_CURSOR));
}
});
repaint();
}
//重新初始化变量
public void initialization()
{
remove(contentPane);
gPath = new GeneralPath();
bgColor = new Color (255, 255, 255);
pColor = new Color (0, 0, 0);
countDrawBrush = 0;
countDrawLine = 0;
countDrawRect = 0;
mouseDraggedDrawRectX = 0; mouseDraggedDrawRectY = 0;
countDrawOval = 0;
mouseDraggedDrawOvalX = 0; mouseDraggedDrawOvalY = 0;
countDrawPolygon = 0;
countFillOval = 0;
mouseDraggedFillOvalX = 0; mouseDraggedFillOvalY = 0;
countDrawPolygon = 0;
countFillPolygon = 0;
countFillRect = 0;
mouseDraggedFillRectX = 0; mouseDraggedFillRectY = 0;
jLabel1.setText("坐标:");
}
public void actionPerformed(ActionEvent e)
{
if (e.getActionCommand() == "Exit")
{
System.exit(0);
}
else if (e.getActionCommand() == "jbNew" || e.getActionCommand() == "NewPage")
{
initialization();
contentPane = new JPanel()
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2D = (Graphics2D)g;
//绘直线
for (int i = 0; i < countDrawLine; i++)
{
g2D.setColor(drawLineColor[i]);
g2D.drawLine(mousePressedDrawLineX[i], mousePressedDrawLineY[i],
mouseReleasedDrawLineX[i], mouseReleasedDrawLineY[i]);
}
//绘圆
for (int i = 0; i < countDrawOval; i++)
{
g2D.setColor(drawOvalColor[i]);
//第一项限
if (mousePressedDrawOvalX[i] < mouseReleasedDrawOvalX[i] && mousePressedDrawOvalY[i] < mouseReleasedDrawOvalY[i])
{
g2D.drawOval(mousePressedDrawOvalX[i], mousePressedDrawOvalY[i],
mouseReleasedDrawOvalX[i] - mousePressedDrawOvalX[i], mouseReleasedDrawOvalY[i] - mousePressedDrawOvalY[i]);
}
//第二项限
if (mousePressedDrawOvalX[i] < mouseReleasedDrawOvalX[i] && mousePressedDrawOvalY[i] > mouseReleasedDrawOvalY[i])
{
g2D.drawOval(mousePressedDrawOvalX[i], mouseReleasedDrawOvalY[i],
mouseReleasedDrawOvalX[i] - mousePressedDrawOvalX[i], mousePressedDrawOvalY[i] - mouseReleasedDrawOvalY[i]);
}
//第三项限
if (mousePressedDrawOvalX[i] > mouseReleasedDrawOvalX[i] && mousePressedDrawOvalY[i] > mouseReleasedDrawOvalY[i])
{
g2D.drawOval(mouseReleasedDrawOvalX[i], mouseReleasedDrawOvalY[i],
mousePressedDrawOvalX[i] - mouseReleasedDrawOvalX[i], mousePressedDrawOvalY[i] - mouseReleasedDrawOvalY[i]);
}
//第四项限
if (mousePressedDrawOvalX[i] > mouseReleasedDrawOvalX[i] && mousePressedDrawOvalY[i] < mouseReleasedDrawOvalY[i])
{
g2D.drawOval(mouseReleasedDrawOvalX[i], mousePressedDrawOvalY[i],
mousePressedDrawOvalX[i] - mouseReleasedDrawOvalX[i], mouseReleasedDrawOvalY[i] - mousePressedDrawOvalY[i]);
}
}
//绘填充圆
for (int i = 0; i < countFillOval; i++)
{
g2D.setColor(fillOvalColor[i]);
//第一项限
if (mousePressedFillOvalX[i] < mouseReleasedFillOvalX[i] && mousePressedFillOvalY[i] < mouseReleasedFillOvalY[i])
{
g2D.fillOval(mousePressedFillOvalX[i], mousePressedFillOvalY[i],
mouseReleasedFillOvalX[i] - mousePressedFillOvalX[i], mouseReleasedFillOvalY[i] - mousePressedFillOvalY[i]);
}
//第二项限
if (mousePressedFillOvalX[i] < mouseReleasedFillOvalX[i] && mousePressedFillOvalY[i] > mouseReleasedFillOvalY[i])
{
g2D.fillOval(mousePressedFillOvalX[i], mouseReleasedFillOvalY[i],
mouseReleasedFillOvalX[i] - mousePressedFillOvalX[i], mousePressedFillOvalY[i] - mouseReleasedFillOvalY[i]);
}
//第三项限
if (mousePressedFillOvalX[i] > mouseReleasedFillOvalX[i] && mousePressedFillOvalY[i] > mouseReleasedFillOvalY[i])
{
g2D.fillOval(mouseReleasedFillOvalX[i], mouseReleasedFillOvalY[i],
mousePressedFillOvalX[i] - mouseReleasedFillOvalX[i], mousePressedFillOvalY[i] - mouseReleasedFillOvalY[i]);
}
//第四项限
if (mousePressedFillOvalX[i] > mouseReleasedFillOvalX[i] && mousePressedFillOvalY[i] < mouseReleasedFillOvalY[i])
{
g2D.fillOval(mouseReleasedFillOvalX[i], mousePressedFillOvalY[i],
mousePressedFillOvalX[i] - mouseReleasedFillOvalX[i], mouseReleasedFillOvalY[i] - mousePressedFillOvalY[i]);
}
}
//绘矩形
for (int i = 0; i < countDrawRect; i++)
{
g2D.setColor(drawRectColor[i]);
//第一项限
if (mousePressedDrawRectX[i] < mouseReleasedDrawRectX[i] && mousePressedDrawRectY[i] < mouseReleasedDrawRectY[i])
{
g2D.draw3DRect(mousePressedDrawRectX[i], mousePressedDrawRectY[i],
mouseReleasedDrawRectX[i] - mousePressedDrawRectX[i], mouseReleasedDrawRectY[i] - mousePressedDrawRectY[i], true);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -