我环顾四周,我很惊讶我找不到用java swing绘制和填充平行四边形的方法。有没有一种简单的方法可以做到这一点?
提前感谢您的帮助。
答案 0 :(得分:6)
所有(或至少大多数)绘图都是通过继承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);
}
答案 1 :(得分:1)
建议:
moveTo(...)
方法lineTo(...)
方法继续绘制线条。paintComponent(Graphics g)
方法覆盖。fill(yourShape)
。