Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.*;
- import javax.swing.*;
- @SuppressWarnings("serial")
- public class FigurePanel extends JPanel
- {
- // Declare constants
- public static final int LINE = 1;
- public static final int RECTANGLE = 2;
- public static final int ROUND_RECTANGLE = 3;
- public static final int OVAL = 4;
- private int type = 1;
- private boolean filled = false;
- // Construct a default FigurePanel
- public FigurePanel()
- {
- }
- // Construct a FigurePanel with the specified type
- public FigurePanel(int type)
- {
- this.type = type;
- }
- // Construct a FigurePanel with the specified type and filled
- public FigurePanel(int type, boolean filled)
- {
- this.type = type;
- this.filled = filled;
- }
- @Override // Draw a figure on the panel
- protected void paintComponent(Graphics g)
- {
- super.paintComponent(g);
- // Get the appropriate size for the figure
- int width = getWidth();
- int height = getHeight();
- switch(type)
- {
- case LINE: // Display two cross lines
- g.setColor(Color.black);
- g.drawLine(10, 10, width - 10, height - 10);
- g.drawLine(width - 10, 10, 10, height - 10);
- break;
- case RECTANGLE: // Display a rectangle
- g.setColor(Color.blue);
- if(filled)
- g.fillRect((int)(0.1 * width), (int)(0.1 * height), (int)(0.8 * width), (int)(0.8 * height));
- else
- g.drawRect((int)(0.1 * width), (int)(0.1 * height), (int)(0.8 * width), (int)(0.8 * height));
- break;
- case ROUND_RECTANGLE: // Display a round-cornered rectangle
- g.setColor(Color.red);
- if(filled)
- g.fillRoundRect((int)(0.1 * width), (int)(0.1 * height), (int)(0.8 * width), (int)(0.8 * height), 20, 20);
- else
- g.drawRoundRect((int)(0.1 * width), (int)(0.1 * height), (int)(0.8 * width), (int)(0.8 * height), 20, 20);
- break;
- case OVAL: // Display an oval
- g.setColor(Color.black);
- if(filled)
- g.fillOval((int)(0.1 * width), (int)(0.1 * height), (int)(0.8 * width), (int)(0.8 * height));
- else
- g.drawOval((int)(0.1 * width), (int)(0.1 * height), (int)(0.8 * width), (int)(0.8 * height));
- break;
- }
- }
- // Set a new figure type
- public void setType(int type)
- {
- this.type = type;
- repaint();
- }
- // Return figure type
- public int getType()
- {
- return type;
- }
- // Set a new filled property
- public void setFilled(boolean filled)
- {
- this.filled = filled;
- repaint();
- }
- // Check if the figure is filled
- public boolean isFilled()
- {
- return filled;
- }
- @Override // Specify preferred size
- public Dimension getPreferredSize()
- {
- return new Dimension(80, 80);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment