Answer:
import javax.swing.JPanel;
import javax.swing.JOptionPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.border.Border;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Rectangle;
public class DrawingPanel{
private static final int width = 800;
private static final int heigth = 500;
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() {
(use the at sign here)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 > WIDTH || y2 > HEIGHT)
JOptionPane.showMessageDialog(null, "x and y coordinates should be less than "
+ width + " and " + 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);
}
}
Explanation:
The class DrawingPanel is a Java class that gets the user input for the coordinate of a path with predetermined heigth and width (defined in the class). The methods of the class are; getGraphics(), getBounds(), getBackground(), setColor() and fillRect(). The result is a rectangular path GUI on the screen.