2016-08-14 11 views
1

JLabelに楕円形の画像を描画したい場合は、グラフィックを使います。これは私のコードですが、グラフィックについては知らないのです。JLabelでの楕円形画像の描画方法

class imagePanel extends JLabel { 
    //private PlanarImage image; 

    private BufferedImage buffImage = null; 

    private void drawFingerImage(int nWidth, int nHeight, byte[] buff) { 
     buffImage = new BufferedImage(nWidth, nHeight, BufferedImage.TYPE_BYTE_GRAY); 
     buffImage.getRaster().setDataElements(0, 0, nWidth, nHeight, buff); 
     Graphics g = buffImage.createGraphics(); 
     g.drawImage(buffImage, 0, 0, 140, 150, null); 
     g.dispose(); 
     repaint(); 
    } 

    public void paintComponent(Graphics g) { 
     g.drawImage(buffImage, 0, 0, this); 
    } 
} 

I have this

答えて

0

herehereを述べたように、あなたは、setClipメソッド()メソッドの助けを必要としています。

それがこの

public class OvalImageLabel extends JLabel { 

    private Image image; 

    public OvalImageLabel(URL imageUrl) throws IOException { 
     image = ImageIO.read(imageUrl); 
    } 

    public void paintComponent(Graphics g) { 

     super.paintComponent(g); 

     g.setClip(new java.awt.geom.Ellipse2D.Float(0f,0f, getWidth(),getHeight()/2)); 
     g.drawImage(image, 0, 0, this); 

    } 
} 

と、このクラスを使用して

public class UsageExample extends JPanel { 

    public UsageExample() { 
     super(new BorderLayout()); 
     OvalImageLabel l; 
     try { 
      l = new OvalImageLabel(new File("/path/to/image.png").toURI().toURL()); 
     } catch (Exception e) { 
      e.printStackTrace(); 
      return; 
     } 

     add(l, BorderLayout.CENTER); 
    } 

    private static void createAndShowGUI() { 
     JFrame frame = new JFrame(); 
     frame.setContentPane(new UsageExample()); 
     frame.setSize(200, 200); 
     frame.setVisible(true); 
    } 

    public static void main(String[] args) { 
     javax.swing.SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       createAndShowGUI(); 
      } 
     }); 
    } 
} 
+0

はイムだけ'g.setClip(新を使用し、それが働いた、ありがとうございことを実行しているアプリケーションのようになりますコーディングしていますjava.awt.geom.Ellipse2D.Float(0f、0f、getWidth()、getHeight()/ 2)); ' –

関連する問題