Problem:
Create a java GUI application that creates the distance from a
point specified by a user to the center.

point specified by a user to the center.
Output:
Solution:
//*****************DistanceToCenterFrame.java**************/ import javax.swing.JFrame; public class DistanceToCenterFrame { public static void main(String[] args) { JFrame frame = new JFrame("Distance To Center"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setContentPane(new DistanceToCenterPanel()); frame.pack(); frame.setVisible(true); } } //*****************DistanceToCenterPanel.java**************/ import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Point; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.text.DecimalFormat; import javax.swing.JPanel; public class DistanceToCenterPanel extends JPanel{ private final int WIDTH = 600, HEIGHT = 600; private int centerX, centerY; private double distance; private DecimalFormat fmt; private Point current; public DistanceToCenterPanel() { centerX = WIDTH/2; centerY = HEIGHT/2; distance = 0; current = null; fmt = new DecimalFormat("0.##"); addMouseListener(new OffCenterListener()); setPreferredSize(new Dimension(WIDTH, HEIGHT)); setBackground(Color.YELLOW); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.setColor(Color.BLACK); g.fillOval(centerX-3, centerY-3, 6, 6); if(current != null) { g.drawLine(current.x, current.y, centerX, centerY); g.drawString("Distance: " + fmt.format(distance), 5, 15); } } private class OffCenterListener extends MouseAdapter { @Override public void mouseClicked(MouseEvent e) { current = e.getPoint(); distance = Math.sqrt(Math.pow(current.x-centerX, 2) + Math.pow(current.y-centerY, 2)); repaint(); } } }
No comments :
Post a Comment