java – 保存JPanel图形
发布时间:2020-12-15 08:43:08 所属栏目:Java 来源:网络整理
导读:我不太确定图形如何在 Java中工作,所以我无法调试我的问题. 我有一个类MyFrame扩展JPanel.现在我在MyFrame上做一些绘图保存并保存关于该特定帧的属性,然后添加一个MyFrames的ArrayList集合.后来我想回忆一下MyFrame的某个实例的属性,并在屏幕上重绘该帧.让框
|
我不太确定图形如何在
Java中工作,所以我无法调试我的问题.
我有一个类MyFrame扩展JPanel.现在我在MyFrame上做一些绘图保存并保存关于该特定帧的属性,然后添加一个MyFrames的ArrayList集合.后来我想回忆一下MyFrame的某个实例的属性,并在屏幕上重绘该帧.让框架的图形再次显示是我遇到的麻烦. 这是一个快速的代码,将演示我的问题. public class MyFrame extends JPanel{
private int property;
private int x;
private int y;
public MyFrame(int xp,int yp){
x = xp;
y = yp;
}
@override
public void paintComponent(Graphics g){
super.paintComponent(g);
g.fillRect(x,y,5,5);
}
public void setProperty(int p){
property = p;
}
}
public class MainClass() extends JPanel{
private ArrayList<MyFrame> frames = new ArrayList<MyFrame>;
private MyFrame currentFrame = new MyFrame();
public void addFrame(int x,int y){
this.remove(currentFrame);
currentFrame = new MyFrame();
this.add(currentFrame);
frames.add(currentFrame);
}
public void setFrame(int frame){
this.remove(currentFrame);
currentFrame = frames.get(frame);
this.add(currentFrame);
}
}
摘要: 解决方法
您似乎正在将JPanel交换进出另一个JPanel,并且在执行此操作时,您必须考虑容器-JPanel使用的布局,并且您需要在交换后调用revalidate并重新映射容器-JPanel.
但是,为什么不通过使用CardLayout交换JPanels或者JLabel与ImageIcons来保存图像,而不是搞砸所有这些? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
