如何在 java swing 中绘制并填充平行四边形?
How do you draw and fill a parallelogram in java swing?
我环顾四周,我很惊讶我找不到用 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);
}
建议:
- 使用 Path2D 对象创建形状,
- 使用它的
moveTo(...)
方法开始你的平行四边形
- 继续使用其
lineTo(...)
方法绘制线条。
- 在 JPanel 的
paintComponent(Graphics g)
方法覆盖中绘制。
- 在此方法中,将 Graphics 对象转换为 Graphics2D 对象。
- 然后调用
fill(yourShape)
传入您的 Path2D 对象。
我环顾四周,我很惊讶我找不到用 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);
}
建议:
- 使用 Path2D 对象创建形状,
- 使用它的
moveTo(...)
方法开始你的平行四边形 - 继续使用其
lineTo(...)
方法绘制线条。 - 在 JPanel 的
paintComponent(Graphics g)
方法覆盖中绘制。 - 在此方法中,将 Graphics 对象转换为 Graphics2D 对象。
- 然后调用
fill(yourShape)
传入您的 Path2D 对象。