KinderElektro/src/main/java/de/ph87/electro/circuit/CircuitPanel.java

45 lines
1.2 KiB
Java

package de.ph87.electro.circuit;
import de.ph87.electro.circuit.part.parts.Battery;
import de.ph87.electro.circuit.part.parts.Light;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import javax.swing.*;
import java.awt.*;
import static de.ph87.electro.circuit.CircuitPainter.paintCircuit;
import static de.ph87.electro.circuit.part.Position.RST;
@Slf4j
public class CircuitPanel extends JPanel {
@Getter
private Circuit circuit = new Circuit();
private final CircuitPanelMouseAdapter mouseAdapter = new CircuitPanelMouseAdapter(this);
public CircuitPanel() {
new CircuitPanelDropTarget(this);
final Battery b0 = circuit.addPart(new Battery(circuit, RST(0, 0)));
final Light l = circuit.addPart(new Light(circuit, RST(2, 0)));
final Battery b1 = circuit.addPart(new Battery(circuit, RST(4, 0)));
circuit.connect(b0.getPlus(), l.getA());
circuit.connect(l.getB(), b1.getMinus());
}
@Override
public void paint(final Graphics _g) {
final Graphics2D g = (Graphics2D) _g;
paintCircuit(circuit, g, getWidth(), getHeight());
mouseAdapter.drawHover(g);
mouseAdapter.drawDrag(g);
}
public void newCircuit() {
circuit = new Circuit();
repaint();
}
}