Skip to content

Commit

Permalink
Feat 0328 과제: 툴바와 패널 연동
Browse files Browse the repository at this point in the history
  • Loading branch information
yeeeze committed Mar 28, 2022
1 parent 80d1f26 commit 7e713fc
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 8 deletions.
14 changes: 10 additions & 4 deletions src/pattern/DrawingPanel.java
@@ -1,6 +1,7 @@
package pattern;

import javax.swing.*;
import javax.tools.Tool;
import java.awt.*;
import java.awt.event.*;

Expand All @@ -13,8 +14,9 @@ public enum EShapes {
ePolygon
}
public EShapes eShapes;
private ToolBar toolBar;

public DrawingPanel() {
public DrawingPanel(ToolBar toolBar) {
this.setBackground(Color.white);

MouseHandler mouseHandler = new MouseHandler();
Expand All @@ -24,6 +26,8 @@ public DrawingPanel() {
this.addMouseMotionListener(mouseHandler);
// wheel
this.addMouseWheelListener(mouseHandler);

this.toolBar = toolBar;
}

@Override
Expand All @@ -37,11 +41,13 @@ private void prepareDrawing(int x, int y) {
Graphics2D graphics2D = (Graphics2D) this.getGraphics();
graphics2D.setXORMode(this.getBackground());

if(eShapes == EShapes.eRectangle) {
this.eShapes = toolBar.selectedButton();

if(this.eShapes == EShapes.eRectangle) {
this.shape = new Rectangle(x, y);
} else if(eShapes == EShapes.eOval) {
} else if(this.eShapes == EShapes.eOval) {
this.shape = new Oval(x, y);
} else if(eShapes == EShapes.eLine) {
} else if(this.eShapes == EShapes.eLine) {
this.shape = new Line(x, y);
}
this.shape.draw(graphics2D);
Expand Down
4 changes: 3 additions & 1 deletion src/pattern/MainFrame.java
Expand Up @@ -2,6 +2,8 @@

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

public class MainFrame extends JFrame {
private static final long serialVersionUTD = 1L;
Expand All @@ -21,7 +23,7 @@ public MainFrame() {
this.toolBar = new ToolBar();
this.add(this.toolBar, layoutManager.NORTH);

this.drawingPanel = new DrawingPanel();
this.drawingPanel = new DrawingPanel(toolBar);
this.add(this.drawingPanel, layoutManager.CENTER);

setTitle("my window");
Expand Down
24 changes: 21 additions & 3 deletions src/pattern/ToolBar.java
@@ -1,9 +1,11 @@
package pattern;

import javax.swing.*;

import pattern.DrawingPanel.EShapes;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.*;

public class ToolBar extends JToolBar implements ActionListener {
private static final long serialVersionUTD = 1L;
Expand All @@ -13,9 +15,10 @@ public class ToolBar extends JToolBar implements ActionListener {
private JRadioButton lineTool;
private JRadioButton polygonTool;
private JButton colorButton;
private ButtonGroup buttonGroup;

public ToolBar() {
ButtonGroup buttonGroup = new ButtonGroup();
this.buttonGroup = new ButtonGroup();

this.rectangleTool = new JRadioButton("rectangle");
this.add(this.rectangleTool);
Expand All @@ -38,6 +41,21 @@ public ToolBar() {
this.add(colorButton);
}

public EShapes selectedButton() {
if(this.buttonGroup.getSelection().equals(this.rectangleTool.getModel())) {
return EShapes.eRectangle;
}
else if(this.buttonGroup.getSelection().equals(this.ovalTool.getModel())) {
return EShapes.eOval;
}
else if(this.buttonGroup.getSelection().equals(this.lineTool.getModel())) {
return EShapes.eLine;
}
else {
return EShapes.ePolygon;
}
}

public void actionPerformed(ActionEvent event) {
if (event.getSource() == colorButton) {
JColorChooser colorChooser = new JColorChooser();
Expand Down

0 comments on commit 7e713fc

Please sign in to comment.