Closed. This question needs debugging details。它当前不接受答案。
                            
                        
                    
                
            
                    
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        5年前关闭。
                    
                
        

我环顾了一下,我惊讶于找不到用Java swing绘制和填充平行四边形的方法。有没有简单的方法可以做到这一点?

感谢您的帮助。

最佳答案

挥杆中的所有(或至少大多数)绘图都是通过将JPanel子类化并覆盖paintComponent方法来完成的。因此它将开始如下:

public class MyPanel extends JPanel{

    @Override
    public void paintComponent(Graphics g){
        //Drawing stuff....
    }
}


在这里,您将要创建一个平行四边形Shape,并将其填充。 Shape供您使用的最简单的实现是Path2D

public class MyPanel extends JPanel{

    private Path2D.Double parallelogram;

    public MyPanel(){
        parallelogram = new Path2D.Double();
        parallelogram.moveTo(0,0);
        parallelogram.lineTo(50,0);
        parallelogram.lineTo(100,50);
        parallelogram.lineTo(50,50);
        parallelogram.closePath();

        setPreferredSize(new Dimension(100, 100));
    }

    @Override
    public void paintComponent(Graphics g){
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D)g;
        g2d.setColor(Color.BLACK);
        g2d.fill(parallelogram);
    }
}


然后创建此面板的一个实例并将其添加到JFrame

public static void main(String[] args){
    JFrame f = new JFrame();
    f.add(new MyPanel(), BorderLayout.CENTER);
    f.pack();
    f.setVisible(true);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

07-24 20:34