Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Did you convert <code>Graphics</code> object to <a href="http://docs.oracle.com/javase/7/docs/api/java/awt/Graphics2D.html" rel="nofollow noreferrer"><code>Graphics2D</code></a> and set the <a href="http://docs.oracle.com/javase/7/docs/api/java/awt/RenderingHints.html" rel="nofollow noreferrer"><code>RenderHints</code></a>? i.e </p> <pre><code>Graphics2D g2d=(Graphics2D)g; g2d.setRenderingHint(RenderHints.KEY_ANTIALIASING,RenderHints.VALUE_ANTIALIASING _ON); </code></pre> <p>This will add some nice <a href="http://en.wikipedia.org/wiki/Anti-aliasing_filter" rel="nofollow noreferrer">anti aliasing</a> effects and might make the line appearance straighter.</p> <p>Also increasing the stroke width via <a href="http://docs.oracle.com/javase/1.4.2/docs/api/java/awt/Graphics2D.html#setStroke%28java.awt.Stroke%29" rel="nofollow noreferrer"><code>Graphics2D#setStroke</code></a> will make the jaggeder edges disappear as its now thicker.</p> <p>See this example (press, drag and release mouse to create a line):</p> <p>With <code>g2d.setRenderingHint(..)</code> and <code>g2d.setStroke(..)</code> within <code>paintComponent(..)</code> commented out:</p> <p><img src="https://i.stack.imgur.com/L5IMk.png" alt="enter image description here"></p> <p>With <code>g2d.setRenderingHint(..)</code> and <code>g2d.setStroke(..)</code> uncommented:</p> <p><img src="https://i.stack.imgur.com/xCr8f.png" alt="enter image description here"></p> <pre><code>import java.awt.BasicStroke; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Point; import java.awt.RenderingHints; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.geom.Line2D; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.SwingUtilities; public class Test { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { Test gui = new Test(); } }); } public Test() { initComponents(); } private void initComponents() { JFrame frame = new JFrame("Line Demo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(new MyPanel()); frame.pack(); frame.setVisible(true); } } class MyPanel extends JPanel { Point point1; Point point2; Line2D line2d; public MyPanel() { addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent me) { super.mousePressed(me); point1 = me.getPoint(); } }); addMouseMotionListener(new MouseAdapter() { @Override public void mouseDragged(MouseEvent me) { super.mouseDragged(me); point2 = me.getPoint(); line2d = new Line2D.Double(point1, point2); repaint(); } }); } @Override public Dimension getPreferredSize() { return new Dimension(300, 300); } @Override public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; //Set anti-alias! g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); if (point1 != null &amp;&amp; point2 != null) { g2d.setPaint(Color.RED); g2d.setStroke(new BasicStroke(1.5f));//set stroke size g2d.draw(line2d); } } } </code></pre> <p>If above does not help, posting an SSCCE would enable us to test and see what could be at fault/make it better.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload