我需要在一个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()。按照的JPanel 的JavaDoc,布局是的FlowLayout 通过默认 - 这不会替换图像像您打算,而是将放置下drawingPanel前一个的权利。 (当你调整窗口的大小会发生什么?)

对了,你是怎么处理的情况下你过去的数组中的最后一个图像?

其他提示

您只显示一次一个画什么?如果是这样,你可能想使用CardLayout试试,让你可以轻松图纸之间切换。请参见 http://java.sun.com/docs/books /tutorial/uiswing/layout/card.html 一个例子。

我有一个类似的问题前些天试图动态地显示在我的UI不同的按钮根据用户选取其中JTabbedPane中的选项卡。 CardLayout只是为了让事情容易的事情。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top