java 画线程序
如何在Java中画线并使其随着按钮按动旋转(可控制角度),前提是已经有其他按钮并且有背景图片。...
如何在Java 中画线并使其随着按钮按动旋转(可控制角度),前提是已经有其他按钮并且有背景图片。
展开
展开全部
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.AffineTransform;
import java.awt.geom.Line2D;
import javax.swing.*;
public class l extends JFrame implements ActionListener {
JPanel jp;
int n=30;
static Line2D.Double ld=new Line2D.Double(400,100,400,500);
l(){
jp=new JPanel();
JButton jb= new JButton("旋转");
jp.add(jb);
jb.addActionListener(this);
add(jp,BorderLayout.NORTH);
setSize(800,600);
//setVisible(true);
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO 自动生成的方法存根
secondTransform.setToRotation(((double)n)*(Math.PI/180.0f),400,400);
double x1,x2,x3,x4;
x1=400+200*Math.cos(n/180d*Math.PI);
x2=300+200*Math.sin(n/180d*Math.PI);
x3=400+200*Math.cos((180+n)/180d*Math.PI);
x4=300+200*Math.sin((180+n)/180d*Math.PI);
System.out.println(x1+","+x2+","+x3+","+x4);
ld=new Line2D.Double(x1,x2,x3,x4);
n+=30;
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
l l1=new l();
l1.setVisible(true);
l1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void paint(Graphics g) {
super.paintComponents(g);
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
//g2.fill(ld.createTransformedShape(secondTransform));
g2.draw(ld);
repaint();
}
}
追问
为什么一直在闪烁?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询