Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

import java.awt.*; import javax.swing.*; public class ColorButtons { private JPa

ID: 662801 • Letter: I

Question

import java.awt.*;
import javax.swing.*;

public class ColorButtons {
  
    private JPanel panel;
    private JLabel mouseTracker;
    private Color[] colors = {Color.red, Color.green, Color.blue,
        Color.cyan, Color.magenta, Color.yellow, Color.black,
        Color.white};
  
    public ColorButtons() {
        // set up the window
        JFrame win = new JFrame("Color Buttons");
        win.setSize(560, 420);
        win.setLocation(50, 50);
        win.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
      
        // set up the toolbar
        JPanel tool = new JPanel();
        for(int i = 0; i < colors.length; i++) {
            ColorButton b = new ColorButton(colors[i]);
            tool.add(b);
        }
        win.add(tool, BorderLayout.NORTH);
      
        // set up the display area
        panel = new JPanel();
        panel.setBackground(Color.lightGray);
        win.add(panel);

        win.setVisible(true);
    }

    public static void main(String[] args) {
        new ColorButtons();
    }
  
}

class ColorButton extends JPanel {
  
    public ColorButton(Color c) {
        setBackground(c);
        setPreferredSize(new Dimension(50, 50));
    }
  
}

CAN SOMEONE EDIT THE CODE WITH MOUSE LISTENER AND MOUSEMOTIONLISTENER SO WHEN WE CLICK THE COLOR AT THE TOP IT WILL CHANGE THE BACKGROUND.

Implementing handlers for the eight toolbar "buttons." The handler will change the background color of the large panel in center to the specified color.

Notice that the colors for the ColorButton objects are specified when the objects are created. They are "read" from the colors array. These are the same values that need to be specified by the click handler.

Explanation / Answer

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;

import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;

public class MouseTest extends JFrame {
int startX, startY, endX, endY;

Color color = Color.BLACK;

public MouseTest() {
    super();

    final JPopupMenu pop = new JPopupMenu();
    pop.add(new JMenuItem("Cut"));
    pop.add(new JMenuItem("Copy"));
    pop.add(new JMenuItem("Paste"));
    pop.addSeparator();
    pop.add(new JMenuItem("Select All"));
    pop.setInvoker(this);

    MouseListener popup = new MouseListener() {
      public void mouseClicked(MouseEvent e) {
      }

      public void mouseEntered(MouseEvent e) {
      }

      public void mouseExited(MouseEvent e) {
      }

      public void mousePressed(MouseEvent e) {
        if (e.isPopupTrigger()) {
          showPopup(e);
        }
      }

      public void mouseReleased(MouseEvent e) {
        if (e.isPopupTrigger()) {
          showPopup(e);
        }
      }

      private void showPopup(MouseEvent e) {
        pop.show(e.getComponent(), e.getX(), e.getY());
      }
    };
    addMouseListener(popup);

    MouseListener drawing1 = new MouseListener() {
      public void mouseClicked(MouseEvent e) {
      }

      public void mouseEntered(MouseEvent e) {
      }

      public void mouseExited(MouseEvent e) {
      }

      public void mousePressed(MouseEvent e) {
        color = Color.RED;
        startX = endX = e.getX();
        startY = endY = e.getY();
        repaint();
      }

      public void mouseReleased(MouseEvent e) {
        color = Color.BLACK;
        repaint();
      }
    };
    addMouseListener(drawing1);

    MouseMotionListener drawing2 = new MouseMotionListener() {
      public void mouseDragged(MouseEvent e) {
        endX = e.getX();
        endY = e.getY();
        repaint();
      }

      public void mouseMoved(MouseEvent e) {
      }
    };
    addMouseMotionListener(drawing2);

}

public void paint(Graphics g) {
    super.paint(g);
    g.setColor(color);
    g.drawLine(startX, startY, endX, endY);
}

public static void main(String args[]) {
    JFrame frame = new MouseTest();
    frame.setSize(300, 300);
    frame.show();
}
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at drjack9650@gmail.com
Chat Now And Get Quote