<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2F2D_Graphics%2FLine</id>
		<title>Java Tutorial/2D Graphics/Line - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2F2D_Graphics%2FLine"/>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/2D_Graphics/Line&amp;action=history"/>
		<updated>2026-04-07T11:04:13Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/2D_Graphics/Line&amp;diff=3460&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/2D_Graphics/Line&amp;diff=3460&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:26Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 17:44, 31 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/2D_Graphics/Line&amp;diff=3461&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/2D_Graphics/Line&amp;diff=3461&amp;oldid=prev"/>
				<updated>2010-05-31T15:24:44Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  A line is drawn using two points ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.BasicStroke;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.Graphics2D;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
public class LinesDashes1 extends JPanel {&lt;br /&gt;
  public void paintComponent(Graphics g) {&lt;br /&gt;
    super.paintComponent(g);&lt;br /&gt;
    Graphics2D g2d = (Graphics2D) g;&lt;br /&gt;
    float[] dash1 = { 2f, 0f, 2f };&lt;br /&gt;
    g2d.drawLine(20, 40, 250, 40);&lt;br /&gt;
    BasicStroke bs1 = new BasicStroke(1, &lt;br /&gt;
        BasicStroke.CAP_BUTT, &lt;br /&gt;
        BasicStroke.JOIN_ROUND, &lt;br /&gt;
        1.0f, &lt;br /&gt;
        dash1,&lt;br /&gt;
        2f);&lt;br /&gt;
    g2d.setStroke(bs1);&lt;br /&gt;
    g2d.drawLine(20, 80, 250, 80);&lt;br /&gt;
    }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    LinesDashes1 lines = new LinesDashes1();&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Lines&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    frame.add(lines);&lt;br /&gt;
    frame.setSize(280, 270);&lt;br /&gt;
    frame.setLocationRelativeTo(null);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Compares two lines are returns true if they are equal or both null. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.geom.Line2D;&lt;br /&gt;
public class Main {&lt;br /&gt;
  /**&lt;br /&gt;
   * Compares two lines are returns &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; if they are equal or&lt;br /&gt;
   * both &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&lt;br /&gt;
   *&lt;br /&gt;
   * @param l1  the first line (&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; permitted).&lt;br /&gt;
   * @param l2  the second line (&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; permitted).&lt;br /&gt;
   *&lt;br /&gt;
   * @return A boolean.&lt;br /&gt;
   */&lt;br /&gt;
  public static boolean equal(final Line2D l1, final Line2D l2) {&lt;br /&gt;
      if (l1 == null) {&lt;br /&gt;
          return (l2 == null);&lt;br /&gt;
      }&lt;br /&gt;
      if (l2 == null) {&lt;br /&gt;
          return false;&lt;br /&gt;
      }&lt;br /&gt;
      if (!l1.getP1().equals(l2.getP1())) {&lt;br /&gt;
          return false;&lt;br /&gt;
      }&lt;br /&gt;
      if (!l1.getP2().equals(l2.getP2())) {&lt;br /&gt;
          return false;&lt;br /&gt;
      }&lt;br /&gt;
      return true;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Creates a region surrounding a line segment by &amp;quot;widening&amp;quot; the line segment. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/* &lt;br /&gt;
 * JCommon : a free general purpose class library for the Java(tm) platform&lt;br /&gt;
 * &lt;br /&gt;
 *&lt;br /&gt;
 * (C) Copyright 2000-2008, by Object Refinery Limited and Contributors.&lt;br /&gt;
 *&lt;br /&gt;
 * Project Info:  http://www.jfree.org/jcommon/index.html&lt;br /&gt;
 *&lt;br /&gt;
 * This library is free software; you can redistribute it and/or modify it&lt;br /&gt;
 * under the terms of the GNU Lesser General Public License as published by&lt;br /&gt;
 * the Free Software Foundation; either version 2.1 of the License, or&lt;br /&gt;
 * (at your option) any later version.&lt;br /&gt;
 *&lt;br /&gt;
 * This library is distributed in the hope that it will be useful, but&lt;br /&gt;
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY&lt;br /&gt;
 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public&lt;br /&gt;
 * License for more details.&lt;br /&gt;
 *&lt;br /&gt;
 * You should have received a copy of the GNU Lesser General Public&lt;br /&gt;
 * License along with this library; if not, write to the Free Software&lt;br /&gt;
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,&lt;br /&gt;
 * USA.&lt;br /&gt;
 *&lt;br /&gt;
 * [Java is a trademark or registered trademark of Sun Microsystems, Inc.&lt;br /&gt;
 * in the United States and other countries.]&lt;br /&gt;
 *&lt;br /&gt;
 * -------------------&lt;br /&gt;
 * ShapeUtilities.java&lt;br /&gt;
 * -------------------&lt;br /&gt;
 * (C)opyright 2003-2008, by Object Refinery Limited and Contributors.&lt;br /&gt;
 *&lt;br /&gt;
 * Original Author:  David Gilbert (for Object Refinery Limited);&lt;br /&gt;
 * Contributor(s):   -;&lt;br /&gt;
 *&lt;br /&gt;
 * $Id: ShapeUtilities.java,v 1.18 2008/06/02 06:58:28 mungady Exp $&lt;br /&gt;
 *&lt;br /&gt;
 * Changes&lt;br /&gt;
 * -------&lt;br /&gt;
 * 13-Aug-2003 : Version 1 (DG);&lt;br /&gt;
 * 16-Mar-2004 : Moved rotateShape() from RefineryUtilities.java to here (DG);&lt;br /&gt;
 * 13-May-2004 : Added new shape creation methods (DG);&lt;br /&gt;
 * 30-Sep-2004 : Added createLineRegion() method (DG);&lt;br /&gt;
 *               Moved drawRotatedShape() method from RefineryUtilities class&lt;br /&gt;
 *               to this class (DG);&lt;br /&gt;
 * 04-Oct-2004 : Renamed ShapeUtils --&amp;gt; ShapeUtilities (DG);&lt;br /&gt;
 * 26-Oct-2004 : Added a method to test the equality of two Line2D&lt;br /&gt;
 *               instances (DG);&lt;br /&gt;
 * 10-Nov-2004 : Added new translateShape() and equal(Ellipse2D, Ellipse2D)&lt;br /&gt;
 *               methods (DG);&lt;br /&gt;
 * 11-Nov-2004 : Renamed translateShape() --&amp;gt; createTranslatedShape() (DG);&lt;br /&gt;
 * 07-Jan-2005 : Minor Javadoc fix (DG);&lt;br /&gt;
 * 11-Jan-2005 : Removed deprecated code in preparation for 1.0.0 release (DG);&lt;br /&gt;
 * 21-Jan-2005 : Modified return type of RectangleAnchor.coordinates()&lt;br /&gt;
 *               method (DG);&lt;br /&gt;
 * 22-Feb-2005 : Added equality tests for Arc2D and GeneralPath (DG);&lt;br /&gt;
 * 16-Mar-2005 : Fixed bug where equal(Shape, Shape) fails for two Polygon&lt;br /&gt;
 *               instances (DG);&lt;br /&gt;
 * 01-Jun-2008 : Fixed bug in equal(GeneralPath, GeneralPath) method (DG);&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
import java.awt.Shape;&lt;br /&gt;
import java.awt.geom.GeneralPath;&lt;br /&gt;
import java.awt.geom.Line2D;&lt;br /&gt;
/**&lt;br /&gt;
 * Utility methods for {@link Shape} objects.&lt;br /&gt;
 *&lt;br /&gt;
 * @author David Gilbert&lt;br /&gt;
 */&lt;br /&gt;
public class Main {&lt;br /&gt;
&lt;br /&gt;
  /**&lt;br /&gt;
   * Creates a region surrounding a line segment by &amp;quot;widening&amp;quot; the line&lt;br /&gt;
   * segment.  A typical use for this method is the creation of a&lt;br /&gt;
   * &amp;quot;clickable&amp;quot; region for a line that is displayed on-screen.&lt;br /&gt;
   *&lt;br /&gt;
   * @param line  the line (&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; not permitted).&lt;br /&gt;
   * @param width  the width of the region.&lt;br /&gt;
   *&lt;br /&gt;
   * @return A region that surrounds the line.&lt;br /&gt;
   */&lt;br /&gt;
  public static Shape createLineRegion(final Line2D line, final float width) {&lt;br /&gt;
      final GeneralPath result = new GeneralPath();&lt;br /&gt;
      final float x1 = (float) line.getX1();&lt;br /&gt;
      final float x2 = (float) line.getX2();&lt;br /&gt;
      final float y1 = (float) line.getY1();&lt;br /&gt;
      final float y2 = (float) line.getY2();&lt;br /&gt;
      if ((x2 - x1) != 0.0) {&lt;br /&gt;
          final double theta = Math.atan((y2 - y1) / (x2 - x1));&lt;br /&gt;
          final float dx = (float) Math.sin(theta) * width;&lt;br /&gt;
          final float dy = (float) Math.cos(theta) * width;&lt;br /&gt;
          result.moveTo(x1 - dx, y1 + dy);&lt;br /&gt;
          result.lineTo(x1 + dx, y1 - dy);&lt;br /&gt;
          result.lineTo(x2 + dx, y2 - dy);&lt;br /&gt;
          result.lineTo(x2 - dx, y2 + dy);&lt;br /&gt;
          result.closePath();&lt;br /&gt;
      }&lt;br /&gt;
      else {&lt;br /&gt;
          // special case, vertical line&lt;br /&gt;
          result.moveTo(x1 - width / 2.0f, y1);&lt;br /&gt;
          result.lineTo(x1 + width / 2.0f, y1);&lt;br /&gt;
          result.lineTo(x2 + width / 2.0f, y2);&lt;br /&gt;
          result.lineTo(x2 - width / 2.0f, y2);&lt;br /&gt;
          result.closePath();&lt;br /&gt;
      }&lt;br /&gt;
      return result;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Dash style line ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.BasicStroke;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.Graphics2D;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
public class LinesDashes1 extends JPanel {&lt;br /&gt;
  public void paintComponent(Graphics g) {&lt;br /&gt;
    super.paintComponent(g);&lt;br /&gt;
    Graphics2D g2d = (Graphics2D) g;&lt;br /&gt;
    float[] dash1 = { 2f, 0f, 2f };&lt;br /&gt;
    g2d.drawLine(20, 40, 250, 40);&lt;br /&gt;
    BasicStroke bs1 = new BasicStroke(1, &lt;br /&gt;
        BasicStroke.CAP_BUTT, &lt;br /&gt;
        BasicStroke.JOIN_ROUND, &lt;br /&gt;
        1.0f, &lt;br /&gt;
        dash1,&lt;br /&gt;
        2f);&lt;br /&gt;
    g2d.setStroke(bs1);&lt;br /&gt;
    g2d.drawLine(20, 80, 250, 80);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    LinesDashes1 lines = new LinesDashes1();&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Lines&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    frame.add(lines);&lt;br /&gt;
    frame.setSize(280, 270);&lt;br /&gt;
    frame.setLocationRelativeTo(null);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Draw a line ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import javax.swing.JComponent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
class MyCanvas extends JComponent {&lt;br /&gt;
  public void paint(Graphics g) {&lt;br /&gt;
    g.drawLine(20, 20, 200, 200);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class DrawLine {&lt;br /&gt;
  public static void main(String[] a) {&lt;br /&gt;
    JFrame window = new JFrame();&lt;br /&gt;
    window.setBounds(30, 30, 300, 300);&lt;br /&gt;
    window.getContentPane().add(new MyCanvas());&lt;br /&gt;
    window.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Draw a point: use a drawLine() method ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.Graphics2D;&lt;br /&gt;
import java.util.Random;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
public class Points extends JPanel {&lt;br /&gt;
  public void paintComponent(Graphics g) {&lt;br /&gt;
    super.paintComponent(g);&lt;br /&gt;
    Graphics2D g2d = (Graphics2D) g;&lt;br /&gt;
    g2d.setColor(Color.red);&lt;br /&gt;
    for (int i = 0; i &amp;lt;= 100000; i++) {&lt;br /&gt;
      Dimension size = getSize();&lt;br /&gt;
      int w = size.width ;&lt;br /&gt;
      int h = size.height;&lt;br /&gt;
      Random r = new Random();&lt;br /&gt;
      int x = Math.abs(r.nextInt()) % w;&lt;br /&gt;
      int y = Math.abs(r.nextInt()) % h;&lt;br /&gt;
      g2d.drawLine(x, y, x, y);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Points points = new Points();&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Points&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    frame.add(points);&lt;br /&gt;
    frame.setSize(250, 200);&lt;br /&gt;
    frame.setLocationRelativeTo(null);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Draw Dashed ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
    GNU LESSER GENERAL PUBLIC LICENSE&lt;br /&gt;
    Copyright (C) 2006 The Lobo Project&lt;br /&gt;
    This library is free software; you can redistribute it and/or&lt;br /&gt;
    modify it under the terms of the GNU Lesser General Public&lt;br /&gt;
    License as published by the Free Software Foundation; either&lt;br /&gt;
    version 2.1 of the License, or (at your option) any later version.&lt;br /&gt;
    This library is distributed in the hope that it will be useful,&lt;br /&gt;
    but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU&lt;br /&gt;
    Lesser General Public License for more details.&lt;br /&gt;
    You should have received a copy of the GNU Lesser General Public&lt;br /&gt;
    License along with this library; if not, write to the Free Software&lt;br /&gt;
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA&lt;br /&gt;
    Contact info: lobochief@users.sourceforge.net&lt;br /&gt;
*/&lt;br /&gt;
import java.awt.*;&lt;br /&gt;
public class GUITasks {&lt;br /&gt;
  public static Frame getTopFrame() {&lt;br /&gt;
    Frame[] frames = Frame.getFrames();&lt;br /&gt;
    for(int i = 0; i &amp;lt; frames.length; i++) {&lt;br /&gt;
      if(frames[i].getFocusOwner() != null) {&lt;br /&gt;
        return frames[i];&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    if(frames.length &amp;gt; 0) {&lt;br /&gt;
      return frames[0];&lt;br /&gt;
    }&lt;br /&gt;
    return null;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  public static void drawDashed(Graphics g, int x1, int y1, int x2, int y2, int dashSize, int gapSize) {&lt;br /&gt;
    if(x2 &amp;lt; x1) {&lt;br /&gt;
      int temp = x1;&lt;br /&gt;
      x1 = x2;&lt;br /&gt;
      x2 = temp;&lt;br /&gt;
    }&lt;br /&gt;
    if(y2 &amp;lt; y1) {&lt;br /&gt;
      int temp = y1;&lt;br /&gt;
      y1 = y2;&lt;br /&gt;
      y2 = temp;&lt;br /&gt;
    }&lt;br /&gt;
    int totalDash = dashSize + gapSize;&lt;br /&gt;
    if(y1 == y2) {&lt;br /&gt;
      int virtualStartX = (x1 / totalDash) * totalDash;&lt;br /&gt;
      for(int x = virtualStartX; x &amp;lt; x2; x += totalDash) {&lt;br /&gt;
        int topX = x + dashSize;&lt;br /&gt;
        if(topX &amp;gt; x2) {&lt;br /&gt;
          topX = x2;&lt;br /&gt;
        }&lt;br /&gt;
        int firstX = x;&lt;br /&gt;
        if(firstX &amp;lt; x1) {&lt;br /&gt;
          firstX = x1;&lt;br /&gt;
        }&lt;br /&gt;
        if(firstX &amp;lt; topX) {&lt;br /&gt;
          g.drawLine(firstX, y1, topX, y1);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    else if(x1 == x2) {&lt;br /&gt;
      int virtualStartY = (y1 / totalDash) * totalDash;&lt;br /&gt;
      for(int y = virtualStartY; y &amp;lt; y2; y += totalDash) {&lt;br /&gt;
        int topY = y + dashSize;&lt;br /&gt;
        if(topY &amp;gt; y2) {&lt;br /&gt;
          topY = y2;&lt;br /&gt;
        }&lt;br /&gt;
        int firstY = y;&lt;br /&gt;
        if(firstY &amp;lt; y1) {&lt;br /&gt;
          firstY = y1;&lt;br /&gt;
        }&lt;br /&gt;
        if(firstY &amp;lt; topY) {&lt;br /&gt;
          g.drawLine(x1, firstY, x1, topY);&lt;br /&gt;
        }&lt;br /&gt;
      }     &lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      // Not supported&lt;br /&gt;
      g.drawLine(x1, y1, x2, y2);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  draw Line from to ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
public class MainClass extends JPanel {&lt;br /&gt;
  public static void main(String[] a) {&lt;br /&gt;
    JFrame f = new JFrame();&lt;br /&gt;
    f.setSize(400, 400);&lt;br /&gt;
    f.add(new MainClass());&lt;br /&gt;
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    f.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public void paint(Graphics g) {&lt;br /&gt;
    g.drawLine (10, 15, 100, 115);  &lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Line2D.Float ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.BasicStroke;&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Canvas;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.Graphics2D;&lt;br /&gt;
import java.awt.GridLayout;&lt;br /&gt;
import java.awt.geom.Line2D;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
import javax.swing.JSlider;&lt;br /&gt;
import javax.swing.event.ChangeEvent;&lt;br /&gt;
import javax.swing.event.ChangeListener;&lt;br /&gt;
public class SliderControlPaintLine extends JFrame {&lt;br /&gt;
  DrawingCanvas canvas = new DrawingCanvas();&lt;br /&gt;
  JSlider slider1, slider2, slider3, slider4, slider5, slider6, slider7, slider8;&lt;br /&gt;
  double transX = 0.0;&lt;br /&gt;
  double transY = 0.0;&lt;br /&gt;
  double rotateTheta = 0.0;&lt;br /&gt;
  double rotateX = 150.0;&lt;br /&gt;
  double rotateY = 150.0;&lt;br /&gt;
  double scaleX = 1.0;&lt;br /&gt;
  double scaleY = 1.0;&lt;br /&gt;
  float width = 1.0f;&lt;br /&gt;
  public SliderControlPaintLine() {&lt;br /&gt;
    JPanel controlPanel = new JPanel();&lt;br /&gt;
    controlPanel.setLayout(new GridLayout(3, 3));&lt;br /&gt;
    getContentPane().add(controlPanel, BorderLayout.NORTH);&lt;br /&gt;
    JLabel label1 = new JLabel(&amp;quot;Translate(dx,dy): &amp;quot;);&lt;br /&gt;
    JLabel label2 = new JLabel(&amp;quot;Rotate(Theta,ox,oy): &amp;quot;);&lt;br /&gt;
    JLabel label3 = new JLabel(&amp;quot;Scale(sx,sy)x10E-2:&amp;quot;);&lt;br /&gt;
    controlPanel.add(label1);&lt;br /&gt;
    &lt;br /&gt;
    slider1 = createSlider(controlPanel, JSlider.HORIZONTAL, 0, 300, 150, 100, 50);&lt;br /&gt;
    slider2 = createSlider(controlPanel, JSlider.HORIZONTAL, 0, 300, 150, 100, 50);&lt;br /&gt;
    controlPanel.add(label2);&lt;br /&gt;
    &lt;br /&gt;
    slider3 = createSlider(controlPanel, JSlider.HORIZONTAL, 0, 360, 0, 90, 45);&lt;br /&gt;
    JPanel subPanel = new JPanel();&lt;br /&gt;
    subPanel.setLayout(new GridLayout(1, 2));&lt;br /&gt;
    slider4 = createSlider(subPanel, JSlider.HORIZONTAL, 0, 300, 150, 150, 50);&lt;br /&gt;
    slider5 = createSlider(subPanel, JSlider.HORIZONTAL, 0, 300, 150, 150, 50);&lt;br /&gt;
    controlPanel.add(subPanel);&lt;br /&gt;
    controlPanel.add(label3);&lt;br /&gt;
    &lt;br /&gt;
    slider6 = createSlider(controlPanel, JSlider.HORIZONTAL, 0, 200, 100, 100, 10);&lt;br /&gt;
    slider7 = createSlider(controlPanel, JSlider.HORIZONTAL, 0, 200, 100, 100, 10);&lt;br /&gt;
    JPanel widthPanel = new JPanel();&lt;br /&gt;
    JLabel label4 = new JLabel(&amp;quot;Width Control:&amp;quot;, JLabel.RIGHT);&lt;br /&gt;
    slider8 = createSlider(widthPanel, JSlider.HORIZONTAL, 0, 200, 100, 100, 10);&lt;br /&gt;
    slider8.addChangeListener(new SliderListener());&lt;br /&gt;
    &lt;br /&gt;
    widthPanel.setLayout(new GridLayout(1, 2));&lt;br /&gt;
    widthPanel.add(label4);&lt;br /&gt;
    widthPanel.add(slider8);&lt;br /&gt;
    getContentPane().add(widthPanel, BorderLayout.SOUTH);&lt;br /&gt;
    getContentPane().add(canvas);&lt;br /&gt;
    &lt;br /&gt;
    setSize(500,500);&lt;br /&gt;
    setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String arg[]) {&lt;br /&gt;
    new SliderControlPaintLine();&lt;br /&gt;
  }&lt;br /&gt;
  public JSlider createSlider(JPanel panel, int orientation, int minimumValue, int maximumValue,&lt;br /&gt;
      int initValue, int majorTickSpacing, int minorTickSpacing) {&lt;br /&gt;
    JSlider slider = new JSlider(orientation, minimumValue, maximumValue, initValue);&lt;br /&gt;
    slider.setPaintTicks(true);&lt;br /&gt;
    slider.setMajorTickSpacing(majorTickSpacing);&lt;br /&gt;
    slider.setMinorTickSpacing(minorTickSpacing);&lt;br /&gt;
    slider.setPaintLabels(true);&lt;br /&gt;
    slider.addChangeListener(new SliderListener());&lt;br /&gt;
    panel.add(slider);&lt;br /&gt;
    return slider;&lt;br /&gt;
  }&lt;br /&gt;
  class SliderListener implements ChangeListener {&lt;br /&gt;
    public void stateChanged(ChangeEvent e) {&lt;br /&gt;
      JSlider tempSlider = (JSlider) e.getSource();&lt;br /&gt;
      if (tempSlider.equals(slider1)) {&lt;br /&gt;
        transX = slider1.getValue() - 150.0;&lt;br /&gt;
        canvas.repaint();&lt;br /&gt;
      } else if (tempSlider.equals(slider2)) {&lt;br /&gt;
        transY = slider2.getValue() - 150.0;&lt;br /&gt;
        canvas.repaint();&lt;br /&gt;
      } else if (tempSlider.equals(slider3)) {&lt;br /&gt;
        rotateTheta = slider3.getValue() * Math.PI / 180;&lt;br /&gt;
        canvas.repaint();&lt;br /&gt;
      } else if (tempSlider.equals(slider4)) {&lt;br /&gt;
        rotateX = slider4.getValue();&lt;br /&gt;
        canvas.repaint();&lt;br /&gt;
      } else if (tempSlider.equals(slider5)) {&lt;br /&gt;
        rotateY = slider5.getValue();&lt;br /&gt;
        canvas.repaint();&lt;br /&gt;
      } else if (tempSlider.equals(slider6)) {&lt;br /&gt;
        if (slider6.getValue() != 0.0) {&lt;br /&gt;
          scaleX = slider6.getValue() / 100.0;&lt;br /&gt;
          canvas.repaint();&lt;br /&gt;
        }&lt;br /&gt;
      } else if (tempSlider.equals(slider7)) {&lt;br /&gt;
        if (slider7.getValue() != 0.0) {&lt;br /&gt;
          scaleY = slider7.getValue() / 100.0;&lt;br /&gt;
          canvas.repaint();&lt;br /&gt;
        }&lt;br /&gt;
      } else if (tempSlider.equals(slider8)) {&lt;br /&gt;
        width = slider8.getValue();&lt;br /&gt;
        canvas.repaint();&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  class DrawingCanvas extends Canvas {&lt;br /&gt;
    public DrawingCanvas() {&lt;br /&gt;
      setSize(300, 300);&lt;br /&gt;
    }&lt;br /&gt;
    public void paint(Graphics g) {&lt;br /&gt;
      Graphics2D g2D = (Graphics2D) g;&lt;br /&gt;
      g2D.translate(transX, transY);&lt;br /&gt;
      g2D.rotate(rotateTheta, rotateX, rotateY);&lt;br /&gt;
      g2D.scale(scaleX, scaleY);&lt;br /&gt;
      BasicStroke stroke = new BasicStroke(width);&lt;br /&gt;
      g2D.setStroke(stroke);&lt;br /&gt;
      Line2D line1 = new Line2D.Float(100f, 200f, 200f, 200f);&lt;br /&gt;
      g2D.draw(line1);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Line dashes style 2 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.BasicStroke;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.Graphics2D;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
public class LinesDashes2 extends JPanel {&lt;br /&gt;
  public void paintComponent(Graphics g) {&lt;br /&gt;
    super.paintComponent(g);&lt;br /&gt;
    Graphics2D g2d = (Graphics2D) g;&lt;br /&gt;
    g2d.drawLine(20, 40, 250, 40);&lt;br /&gt;
    float[] dash2 = { 1f, 1f, 1f };&lt;br /&gt;
    BasicStroke bs2 = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 1.0f, dash2,2f);&lt;br /&gt;
    g2d.setStroke(bs2);&lt;br /&gt;
    g2d.drawLine(20, 20, 250, 20);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    LinesDashes2 lines = new LinesDashes2();&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Lines&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    frame.add(lines);&lt;br /&gt;
    frame.setSize(280, 270);&lt;br /&gt;
    frame.setLocationRelativeTo(null);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Line Dash Style 4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.BasicStroke;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.Graphics2D;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
public class LinesDashes4 extends JPanel {&lt;br /&gt;
  public void paintComponent(Graphics g) {&lt;br /&gt;
    super.paintComponent(g);&lt;br /&gt;
    Graphics2D g2d = (Graphics2D) g;&lt;br /&gt;
    &lt;br /&gt;
    float[] dash4 = { 4f, 4f, 1f };&lt;br /&gt;
    BasicStroke bs4 = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 1.0f, dash4,&lt;br /&gt;
        2f);&lt;br /&gt;
        &lt;br /&gt;
    g2d.setStroke(bs4);&lt;br /&gt;
    g2d.drawLine(20, 20, 250, 20);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    LinesDashes4 lines = new LinesDashes4();&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Lines&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    frame.add(lines);&lt;br /&gt;
    frame.setSize(280, 270);&lt;br /&gt;
    frame.setLocationRelativeTo(null);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Lines Dashes style 3 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.BasicStroke;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.Graphics2D;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
public class LinesDashes3 extends JPanel {&lt;br /&gt;
  public void paintComponent(Graphics g) {&lt;br /&gt;
    super.paintComponent(g);&lt;br /&gt;
    Graphics2D g2d = (Graphics2D) g;&lt;br /&gt;
    &lt;br /&gt;
    float[] dash3 = { 4f, 0f, 2f };&lt;br /&gt;
    BasicStroke bs3 = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 1.0f, dash3,&lt;br /&gt;
        2f);&lt;br /&gt;
    &lt;br /&gt;
    g2d.setStroke(bs3);&lt;br /&gt;
    g2d.drawLine(20, 60, 250, 60);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    LinesDashes3 lines = new LinesDashes3();&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Lines&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    frame.add(lines);&lt;br /&gt;
    frame.setSize(280, 270);&lt;br /&gt;
    frame.setLocationRelativeTo(null);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>