Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class InputPanel extends JPanel{
- public static int shapeType; //1: Rectangle; 2: Oval; 3: Line
- public static boolean isFilled; //whether or not the shape is filled
- public static Color color; //color of the shape
- public InputPanel(){
- JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT));
- panel.setBackground(Color.GRAY);
- setPreferredSize(new Dimension(200,500));
- JButton rect = new JButton("Rectangle");
- JButton oval = new JButton("Oval");
- JButton line = new JButton("Line");
- JRadioButton fill = new JRadioButton("Filled:");
- JButton color1 = new JButton("Color..");
- rect.addActionListener(new rectListener());
- oval.addActionListener(new ovalListener());
- line.addActionListener(new lineListener());
- isFilled = fill.isSelected();
- color1.addActionListener(new colorListener());
- panel.add(rect);
- panel.add(oval);
- panel.add(line);
- panel.add(fill);
- panel.add(color1);
- this.setVisible(true);
- }
- }
- public class PaintPanel extends JPanel{
- public static int x1, y1, x2, y2;
- ArrayList<Shape> shapeList = new ArrayList<Shape>();
- public PaintPanel(){
- JPanel panel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
- panel.setBackground(Color.WHITE);
- setPreferredSize(new Dimension(500, 500));
- this.addMouseListener(new MouseAdapter() {
- @Override public void mousePressed(MouseEvent e) {
- PaintPanel.x1 = e.getX();
- PaintPanel.y1 = e.getY();
- }
- @Override public void mouseReleased(MouseEvent e) {
- PaintPanel.x2 = e.getX();
- PaintPanel.y2 = e.getY();
- if(InputPanel.shapeType == 1){
- shapeList.add(new Rectangle(PaintPanel.x1, PaintPanel.y1, PaintPanel.x2, PaintPanel.y2, InputPanel.isFilled));
- }
- if(InputPanel.shapeType == 2){
- shapeList.add(new Oval(PaintPanel.x1, PaintPanel.y1, PaintPanel.x2, PaintPanel.y2, InputPanel.isFilled));
- }
- if(InputPanel.shapeType == 3){
- shapeList.add(new Line(PaintPanel.x1, PaintPanel.y1, PaintPanel.x2, PaintPanel.y2));
- }
- repaint();
- }
- });
- this.setVisible(true);
- }
- @Override
- public void paintComponent(Graphics g){
- super.paintComponent(g);
- for(Shape s : shapeList){
- s.draw(g);
- }
- }
- }
- public class PaintGUI {
- public static void main(String[] args){
- JFrame frame = new JFrame("Shape Drawer!");
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.add(new InputPanel());
- frame.add(new PaintPanel());
- frame.pack();
- frame.setVisible(true);
- }
- }
- public static void main(String[] args){
- SwingUtilities.invokeLater(new Runnable() {
- @Override
- public void run() {
- JFrame frame = new JFrame("Shape Drawer!");
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- //set the layout, add your panels
- frame.pack();
- frame.setVisible(true);
- }
- });
- }
- frame.add(new InputPanel());
- frame.add(new PaintPanel());
- frame.add(new InputPanel(), BorderLayout.CENTER);
- frame.add(new PaintPanel(), BorderLayout.CENTER);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement