import javax.swing.*;
import java.awt.*;
public class TestFigurePanel extends JFrame{
public TestFigurePanel (){
setLayout(new GridLayout(2,3,5,5));
add(new FigurePanel(FigurePanel.LINE));
add(new FigurePanel(FigurePanel.RECTANGLE));
add(new FigurePanel(FigurePanel.ROUND_RECTANGLE));
add(new FigurePanel(FigurePanel.OVAL));
add(new FigurePanel(FigurePanel.RECTANGLE,true));
add(new FigurePanel(FigurePanel.ROUND_RECTANGLE,true));
}
public static void main(String[] args){
TestFigurePanel frame1=new TestFigurePanel();
TestFigurePanel frame2=new TestFigurePanel();
TestFigurePanel frame3=new TestFigurePanel();
frame1.setSize(400,200);
frame2.setSize(400,200);
frame3.setSize(400,200);
frame1.setTitle("Panel 1");
frame2.setTitle("Panel 2");
frame3.setTitle("Panel 3");
frame1.setLocation(20,300);
frame2.setLocation(440,300);
frame3.setLocation(860,300);
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame3.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame1.setVisible(true);
frame2.setVisible(true);
frame3.setVisible(true);
}
}
import javax.swing.*;
import java.awt.*;
public class FigurePanel extends JPanel {
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;
public FigurePanel(){
}
public FigurePanel(int type){
this.type=type;
}
public FigurePanel(int type, boolean filled){
this.type=type;
this.filled=filled;
}
protected void paintComponent(Graphics g){
// super.printComponent(g);
int width=getWidth();
int height=getHeight();
switch(type){
case LINE:
g.setColor(Color.BLACK);
g.drawLine(10, 10, width -10, height-10);
g.drawLine(width-10, 10, 10, height-10);
break;
case 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:
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:
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));
}
}
public void setType(int type){
this.type=type;
repaint();
}
public int getType(){
return type;
}
public void setFilled(boolean filled){
this.filled=filled;
repaint();
}
public boolean isfilled() {
return filled;
}
public Dimension getPreferredSize() {
return new Dimension(80,80);
}
}
ASKER
ASKER
ASKER
Java is a platform-independent, object-oriented programming language and run-time environment, designed to have as few implementation dependencies as possible such that developers can write one set of code across all platforms using libraries. Most devices will not run Java natively, and require a run-time component to be installed in order to execute a Java program.
TRUSTED BY
//mode true= figures, mode false= no figures
public TestFigurePanel (boolean mode){
setLayout(new GridLayout(2,3,5,5));
if(mode){
add(new FigurePanel(FigurePanel.LI
add(new FigurePanel(FigurePanel.RE
add(new FigurePanel(FigurePanel.RO
add(new FigurePanel(FigurePanel.OV
add(new FigurePanel(FigurePanel.RE
add(new FigurePanel(FigurePanel.RO
}
}
TestFigurePanel frame1=new TestFigurePanel();
TestFigurePanel frame2=new TestFigurePanel();
TestFigurePanel frame3=new TestFigurePanel();