Java 限制JPanel上的绘图区域并保存图形状态
黑色Java 限制JPanel上的绘图区域并保存图形状态,java,swing,graphics2d,Java,Swing,Graphics2d,黑色JPanel的用途是绘图 如何将图形限制为直线形成的圆的半径 是否有办法保存图形对象状态,以便可以向其中添加更多图形以及添加撤消功能 公共组件(图形g) { 超级组件(g); 扇区=12; Graphics2D g2d=(Graphics2D)g; g2d.setColor(Color.RED); 扇区=newline2d.Double(getWidth()/2,0,getWidth()/2,getHeight()); //setClip(新的Ellipse2D.Double(getW
JPanel
的用途是绘图
- 如何将图形限制为直线形成的圆的半径
- 是否有办法保存图形对象状态,以便可以向其中添加更多图形以及添加撤消功能
公共组件(图形g)
{
超级组件(g);
扇区=12;
Graphics2D g2d=(Graphics2D)g;
g2d.setColor(Color.RED);
扇区=newline2d.Double(getWidth()/2,0,getWidth()/2,getHeight());
//setClip(新的Ellipse2D.Double(getWidth()/2,getHeight()/2,radius,radius));
//在屏幕上绘制扇区
对于(int i=0;i对于你的第一个问题
您需要仔细阅读Java的定制绘画
不是让你气馁但这是一个棘手的过程,
为了回答你的问题,这里有一个类似的帖子
你能为黑色JPanelI添加代码吗?只需将其颜色设置为黑色并给出一个大小。其他所有内容都在paintComponent()中。1)为了尽快获得更好的帮助,请发布一个或。2)“如何将绘图限制在由线条形成的圆的半径范围内?”3)“有办法吗…”哇!这是一个问答网站,不是服务台。每个具体问题都应该是独立的,并且有自己的问题线索。我建议你删除这篇文章中的第二个问题,否则它有被关闭为“太宽”的风险。我没有冒险的问题。“我没有冒险的问题。”你刚刚冒了被否决的风险。恭喜!你赢了一次。还有一个提示:提示:添加@Kennedy(或任何人,@
很重要),通知此人新的评论。
public void paintComponent(Graphics g)
{
super.paintComponent(g);
sectors = 12;
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.RED);
sector = new Line2D.Double(getWidth()/2, 0, getWidth()/2, getHeight());
//g2d.setClip(new Ellipse2D.Double(getWidth()/2,getHeight()/2, radius, radius));
//draws the sectors on the screen
for(int i=0; i<sectors; i++)
{
g2d.draw(sector);
g2d.rotate(Math.toRadians(30),getWidth()/2,getHeight()/2);
}
//draws the doily
if(dragging)
{
for(int i=0; i<sectors; i++)
{
g2d.fillOval((int) draw.getX(), (int) draw.getY(),20, 20);
g2d.rotate(Math.toRadians(30), getWidth()/2, getHeight()/2);
}
//saves the current drawing in a stack
graphics.push(g2d);
}
}