Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions PaintingBoard.iml
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" exported="" name="lib" level="project" />
</component>
</module>
1 change: 0 additions & 1 deletion src/Codes/shape/AbstractShape.java
Original file line number Diff line number Diff line change
Expand Up @@ -66,5 +66,4 @@ public abstract class AbstractShape implements Serializable {
*/

public abstract void draw(Graphics2D g);

}
6 changes: 2 additions & 4 deletions src/Codes/shape/Brush.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,11 @@ public Brush() {

@Override
public void draw(Graphics2D g) {


g.setPaint(color);
g.setStroke(new BasicStroke(0, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL));
for (int i = 0; i < 100; i++) {
double d = (double) fx[i];
double c = (double) fy[i];
double d = fx[i];
double c = fy[i];
g.drawLine((int) (x1 + d * Math.sin(d)), (int) (y1 + c * Math.sin(c)), (int) (x2 + d * Math.sin(d)),
(int) (y2 + c * Math.sin(c)));
}
Expand Down
4 changes: 1 addition & 3 deletions src/Codes/shape/FillRect.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,9 @@

import java.awt.*;
/**
*
* 填充矩形
*/
public class FillRect extends AbstractShape {


@Override
public void draw(Graphics2D g2d) {
g2d.setPaint(color);
Expand Down
3 changes: 1 addition & 2 deletions src/Codes/shape/FillRoundRect.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@
import java.awt.*;

/**
* 填充圆角矩形
*/
public class FillRoundRect extends AbstractShape {


@Override
public void draw(Graphics2D g2d) {
g2d.setPaint(color);
Expand Down
4 changes: 1 addition & 3 deletions src/Codes/shape/Hexagon.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,9 @@
import java.awt.*;

/**
*
* 六边形
*/
public class Hexagon extends AbstractShape {


@Override
public void draw(Graphics2D g2d) {
g2d.setPaint(color);
Expand Down
6 changes: 1 addition & 5 deletions src/Codes/shape/Images.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,11 @@
import java.awt.*;

/**
*
* 图片
*/
public class Images extends AbstractShape {


@Override
public void draw(Graphics2D g) {
g.drawImage(image, 0, 0, board);
}


}
3 changes: 1 addition & 2 deletions src/Codes/shape/Line.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,11 @@
import java.awt.*;

/**
*
* 线段
*/
public class Line extends AbstractShape {

public Line() {

}

@Override
Expand Down
4 changes: 1 addition & 3 deletions src/Codes/shape/Oval.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,9 @@
import java.awt.*;

/**
*
* 椭圆
*/
public class Oval extends AbstractShape {


@Override
public void draw(Graphics2D g2d) {
g2d.setPaint(color);
Expand Down
9 changes: 1 addition & 8 deletions src/Codes/shape/Pencil.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,16 @@
import java.awt.*;

/**
*
* 铅笔
*/
public class Pencil extends AbstractShape {


public Pencil() {

}

@Override
public void draw(Graphics2D g) {
g.setPaint(color);

g.setStroke(new BasicStroke(width, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL));

g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

g.drawLine(x1, y1, x2, y2);
}
}
Expand Down
4 changes: 1 addition & 3 deletions src/Codes/shape/Pentagon.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,9 @@
import java.awt.*;

/**
*
* 五边形
*/
public class Pentagon extends AbstractShape {


@Override
public void draw(Graphics2D g2d) {
g2d.setPaint(color);
Expand Down
7 changes: 1 addition & 6 deletions src/Codes/shape/Rectangle.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,14 @@
import java.awt.*;

/**
*
* 矩形
*/
public class Rectangle extends AbstractShape {


public Rectangle() {


}

@Override
public void draw(Graphics2D g2d) {

g2d.setColor(color);
g2d.setStroke(new BasicStroke(width));
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
Expand Down
6 changes: 1 addition & 5 deletions src/Codes/shape/RoundRect.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,9 @@
import java.awt.*;

/**
*
* 圆角矩形
*/
public class RoundRect extends AbstractShape {
/**
* 定义一个RoundRectangle类,继承Shape类,用于绘制一个圆角矩形
*/

@Override
public void draw(Graphics2D g2d) {
g2d.setPaint(color);
Expand Down
73 changes: 73 additions & 0 deletions src/Codes/shape/Select.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
package Codes.shape;

import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.*;

/**
* 可拖动矩形,边框为虚线,内部透明
*/
public class Select extends JPanel {
private int x, y, width, height;
private boolean dragging = false;
private int offsetX, offsetY;

public Select() {
setOpaque(false); // 透明背景
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
if (isInsideRectangle(e.getX(), e.getY())) {
dragging = true;
offsetX = e.getX() - x;
offsetY = e.getY() - y;
}
}

@Override
public void mouseReleased(MouseEvent e) {
dragging = false;
}
});

addMouseMotionListener(new MouseAdapter() {
@Override
public void mouseDragged(MouseEvent e) {
if (dragging) {
x = e.getX() - offsetX;
y = e.getY() - offsetY;
repaint();
}
}
});
}

public void setRectangle(int x, int y, int width, int height) {
this.x = x;
this.y = y;
this.width = width;
this.height = height;
repaint();
}

private boolean isInsideRectangle(int mouseX, int mouseY) {
return mouseX >= x && mouseX <= x + width && mouseY >= y && mouseY <= y + height;
}

@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;

// 设置虚线边框
float[] dashPattern = {5, 5};
g2d.setStroke(new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, dashPattern, 0));
g2d.setColor(Color.BLACK);
g2d.drawRect(x, y, width, height);

// 内部透明效果
g2d.setColor(new Color(255, 255, 255, 100));
g2d.fillRect(x, y, width, height);
}
}
6 changes: 0 additions & 6 deletions src/Codes/shape/Text.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,12 @@
* 定义一个Text类,继承Shape类,用于文字输入
*/
public class Text extends AbstractShape {



@Override
public void draw(Graphics2D g) {
//Font(String name, int style, int size)
g.setColor(color);
g.setFont(new Font(fontName, italic + boldType, fontSize));
if (s != null) {

g.drawString(s, x1, y1);
//System.out.println(fontName+" "+s+" "+fontSize );
}
}
}
2 changes: 0 additions & 2 deletions src/Codes/shape/Triangle.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@
* 定义一个Triangle类,继承Shape类,用于绘制一个三角形
*/
public class Triangle extends AbstractShape {


@Override
public void draw(Graphics2D g2d) {
g2d.setPaint(color);
Expand Down
2 changes: 1 addition & 1 deletion src/Codes/start/Start.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ public class Start {
public static MyFrame wds;
public static void main(String[] args) {

// try {
// try
// //调用Windows的文件系统
// UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
// } catch (Exception e) {
Expand Down
18 changes: 9 additions & 9 deletions src/Codes/tools/ColorPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@ public class ColorPanel extends JPanel {
* 调色板
* 颜色数组,用来设置按钮的背景颜色
*/
private final Color[] colors = {new Color(255, 255, 255), new Color(0, 0, 0), new Color(128, 128, 128),
new Color(195, 195, 195), new Color(67, 0, 0, 255), new Color(185, 122, 87), new Color(255, 0, 0),
new Color(255, 174, 201), new Color(255, 128, 0), new Color(0, 255, 0), new Color(255, 255, 0),
new Color(34, 117, 76), new Color(128, 128, 0), new Color(0, 0, 255), new Color(0, 158, 158),
new Color(255, 107, 39), new Color(56, 141, 246), new Color(163, 73, 164), new Color(200, 191, 231),
new Color(87, 195, 169), new Color(8, 193, 194), new Color(24, 76, 64), new Color(168, 95, 223),
private final Color[] colors = {new Color(0, 0, 0), new Color(255, 255, 255), new Color(80, 79, 79),
new Color(128, 128, 128), new Color(67, 0, 0, 255), new Color(177, 96, 49), new Color(255, 0, 0),
new Color(255, 174, 201), new Color(255, 107, 39), new Color(255, 128, 0), new Color(255, 255, 0),
new Color(230, 218, 152), new Color(239, 233, 151), new Color(107, 251, 107), new Color(29, 29, 255),
new Color(0, 0, 255), new Color(26, 124, 232), new Color(104, 118, 198), new Color(163, 195, 241),
new Color(49, 75, 110), new Color(8, 193, 194), new Color(128, 44, 189), new Color(177, 121, 223),
new Color(199, 73, 4)};

public ColorPanel() {
Expand All @@ -39,7 +39,7 @@ private void addColorPanel() {
// 主面板添加左边面板
this.setPreferredSize(new Dimension(60, 60));
this.setLayout(null);
this.setBackground(new Color(195, 195, 195));
this.setBackground(new Color(239, 238, 238));
// 左边面板添加子面板

JPanel panelDownChild = new JPanel();
Expand Down Expand Up @@ -76,7 +76,7 @@ private void addColorPanel() {

// 右面板
JPanel right = new JPanel();
right.setBackground(new Color(195, 195, 195));
right.setBackground(new Color(239, 238, 238));
right.setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0));
right.setPreferredSize(new Dimension(60, 240));

Expand Down Expand Up @@ -119,7 +119,7 @@ private void addColorPanel() {
JButton jbt = (JButton) e.getSource();
// 拿到被选中按钮的背景颜色
Color c = jbt.getBackground();
// 把背景颜色复制给WIndowStart中的颜色属性
// 把背景颜色复制给WindowStart中的颜色属性
MyFrame.color = c;
MyFrame.itemList[MyFrame.index].color = c;

Expand Down
Loading