Closed. This question needs debugging details。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
5年前关闭。
我环顾了一下,我惊讶于找不到用Java swing绘制和填充平行四边形的方法。有没有简单的方法可以做到这一点?
感谢您的帮助。
在这里,您将要创建一个平行四边形
然后创建此面板的一个实例并将其添加到
想改善这个问题吗? 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