我需要在JPanel上显示不同的图纸.
我已将绘图文件放入数组中,但是当我使用按钮更改它时,JPanel仅显示第一个绘图并且不会更改为下一个绘图…
我调用了panel.revalidate(),但它不起作用.
这是我使用但不起作用的代码段.
JPanel显示是静态的.
String[] a = {"image1.txt","image2.txt","image3.txt"};
List<String> files = Arrays.asList(a);
public void actionPerformed(ActionEvent e) {
if (e.getSource() == answer1){
fileNumber++;
//call other class for painting (files=array files, fileNumber=index of the array)
draw = new drawingPanel(files,fileNumber);
panel.add(draw);
}
panel.revalidate();
panel.repaint();
}
解决方法:
您可以尝试保留对drawingPanel的引用,并在重新添加之前在现有drawingPanel上调用remove().根据JPanel JavaDoc,默认情况下布局是FlowLayout – 它不会像您想要的那样替换图像,而是将下一个drawingPanel放在前一个的右侧. (当你调整窗口大小时会发生什么?)
顺便说一句,你如何处理超过阵列中最后一个图像的情况?