作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我环顾四周,很惊讶我找不到用 java swing 绘制和填充平行四边形的方法。有没有简单的方法可以做到这一点?
感谢您提前提供的帮助。
最佳答案
swing 中的所有(或至少大部分)绘图都是通过子类化 JPanel
并重写 paintComponent
方法来完成的。所以它会这样开始:
public class MyPanel extends JPanel{
@Override
public void paintComponent(Graphics g){
//Drawing stuff....
}
}
从这里开始,您将需要创建一个平行四边形形状
,并填充它。供您使用的 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);
}
关于java - 如何在java swing中绘制并填充平行四边形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28017537/
我是一名优秀的程序员,十分优秀!