Question

In: Computer Science

in java Write program that draws out a path based on the user input. The starting...

in java

Write program that draws out a path based on the user input. The starting coordinates for the path is the middle of the DrawingPanel. Ask the user to enter an x and a y coordinate for a DrawingPanel. Your program will draw a line from the last coordinates to the current coordinates the user enters. If the user enters an x value or y value out of bounds of the DrawingPanel, then end the program.

Solutions

Expert Solution

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.Border;

public class DrawingPanelGUI{
  
private static final int PANEL_WIDTH = 600;
private static final int PANEL_HEIGHT = 400;
private static JFrame mainFrame;
private static JPanel mainPanel, inputPanel, drawPanel;
private static JLabel xLabel, yLabel;
private static JTextField xField, yField;
private static JButton drawButton;
  
public static void main(String[] args)
{
mainFrame = new JFrame("Draw Path");
mainPanel = new JPanel(new BorderLayout());
  
inputPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
xLabel = new JLabel("X Coordinate: ");
xField = new JTextField(5);
yLabel = new JLabel("Y Coordinate: ");
yField = new JTextField(5);
drawButton = new JButton("Draw");
inputPanel.add(xLabel);
inputPanel.add(xField);
inputPanel.add(yLabel);
inputPanel.add(yField);
inputPanel.add(drawButton);
  
Border border = BorderFactory.createLineBorder(Color.black);
drawPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
drawPanel.setBorder(border);
  
mainPanel.add(inputPanel, BorderLayout.NORTH);
mainPanel.add(drawPanel, BorderLayout.CENTER);
  
mainFrame.add(mainPanel);
mainFrame.setSize(PANEL_WIDTH, PANEL_HEIGHT);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setLocationRelativeTo(null);
mainFrame.setResizable(false);
mainFrame.setVisible(true);
  
// action listener for draw button
drawButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if(xField.getText().equals("") || yField.getText().equals(""))
JOptionPane.showMessageDialog(null, "Please enter the x and y coordinates!");
else
{
int x2 = Integer.parseInt(xField.getText().trim());
int y2 = Integer.parseInt(yField.getText().trim());
if(x2 > PANEL_WIDTH || y2 > PANEL_HEIGHT)
JOptionPane.showMessageDialog(null, "x and y coordinates should be less than "
+ PANEL_WIDTH + " and " + PANEL_HEIGHT + " respectively!");
else
drawPath(x2, y2);
}
}
});
}
  
public static void drawPath(int x2, int y2)
{
int x1 = (int)drawPanel.getBounds().getCenterX();
int y1 = (int)drawPanel.getBounds().getCenterY();
  
Graphics g = drawPanel.getGraphics();
Rectangle r = drawPanel.getBounds();
g.setColor(drawPanel.getBackground());
g.fillRect(r.x, r.y, r.width, r.height);
  
g.setColor(Color.blue);
g.drawLine(x1, y1, x2, y2);
}
}

******************************************************************* SCREENSHOT ********************************************************


Related Solutions

Write java program that will ask for the user for 2 input lines and print out...
Write java program that will ask for the user for 2 input lines and print out all words that occur 1 or more times on both lines (case sensitive). Write this without arrays and method. Here is a sample run: <Output> Enter two lines to process. The quick brown fox jumps over a lazy dog The fox hound outruns the lazy dog The words that occur on both lines are: The fox lazy dog
Write Java program that asks a user to input a letter, converts the user input to...
Write Java program that asks a user to input a letter, converts the user input to uppercase if the user types the letter in lowercase, and based on the letter the user the user enters, display a message showing the number that matches the letter entered. For letters A or B or C display 2 For letter D or E or F display 3 For letter G or H or I display 4 For letter J or K or L...
Write a java program. The program requirements are: the program will let the user input a...
Write a java program. The program requirements are: the program will let the user input a starting number, such as 2.  It will generate ten multiplication problems ranging from 2x1 to 2x10.  For each problem, the user will be prompted to enter the correct answer. The program should check the answer and should not let the user advance to the next question until the correct answer is given to the question being asked currently. After testing a total of 10 multiplication problems,...
Write a java program to let the user enter the path to any directory on their...
Write a java program to let the user enter the path to any directory on their computers. Then list all the files in that directory.
Write program#1 upload .java file. #1 Write a java program that prompts the user for input...
Write program#1 upload .java file. #1 Write a java program that prompts the user for input using the Scanner class. First to enter their first name. Then prompts the user to enter their last name. Then prompts the user to enter their city. Then prompts the user to enter their state. Then prompts the user to enter their zip code. Concatenate first name and last name into full_name. Using String Class is optional. Use the String Class to replace zip...
Write program#1 upload .java file. #1 Write a java program that prompts the user for input...
Write program#1 upload .java file. #1 Write a java program that prompts the user for input using the Scanner class. First to enter their first name. Then prompts the user to enter their last name. Then prompts the user to enter their city. Then prompts the user to enter their state. Then prompts the user to enter their zip code.   Concatenate first name and last name into full_name. Using String Class is optional. Use the String Class to replace zip...
JAVA: Write a program that prompts the user to input a type of medication and the...
JAVA: Write a program that prompts the user to input a type of medication and the output will be a list of side effects that can occur from that medication.
Write a Java program that prompts the user to input a word (String). The program must...
Write a Java program that prompts the user to input a word (String). The program must print the reversed word with all consecutive duplicate characters removed. The program must contain the following classes: - The StackX class (you can use the Java Stack class). - The Reverse class which must contain a private data field called “word” of type string, a constructor, and a void method called revNoDup(). The revNoDup() method must reverse the word and remove the consecutive duplicate...
Write a java program that asks the user for the starting X and Y position of...
Write a java program that asks the user for the starting X and Y position of a mouse cursor as well as the starting X and Y movement, then prints out its position until X < 0 or X >100 Example 2: Enter the starting X position: 60 Enter the starting Y position: 60 Enter the starting X velocity: 4.7 Enter the starting Y velocity: 1 X:60    Y:60 X:64.7 Y:61 X:69.4 Y:63 X:74.1 Y:65 X:78.8 Y:67 X:83.5 Y:69 X:88.2 Y:71...
Write a Java program that prompts the user to input a string and prints whether it...
Write a Java program that prompts the user to input a string and prints whether it is a palindrome. A palindrome is a string which reads the same backward as forward, such as Madam (disregarding punctuation and the distinction between uppercase and lowercase letters). The program must use the stack data structure. The program must include the following classes: The StackX class (or you can use the Java Stack class). The Palindrome class which must contain a method named palindrome()...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT