2014-01-30 31 views
-1

我有两个internalframes操作和showOperation一个JFrame的里面,我想知道如何使工作的事情,例如后更新showOperation:更新的JInternalFrame

我已经尝试了本

showOperation.repaint(); 

但没有按” T的作品,我也尝试过

showOperation.dispose(); 

showOperation.setVisible(true); 

但没有工作 我如何更新这个内部框架?


更多的细节,

我有这个类

public class ShowAssistance { 
public static JInternalFrame frame = new JInternalFrame(); 
     . 
     . 
     . 

public ShowAssistance() { 
    showProducts(); 
} 
    public void showProducts(){ 
    //add the internalframe to the mainframe of the application as explained above 
    mainFrame.getframe().add(frame); 
    } 

这个阶级当我使用更新internalframe

public class update{ 
update(){ 
    showMeUpdate(); 
    } public void showMeUpdate(){ 
    //after some operations i do 
      ShowAssistance.frame.repaint(); 
} 
+0

你的问题对我们来说有点令人沮丧,因为你遗漏了很多关键信息。请帮助我们提供更多信息和代码,最好是[mcve](http://stackoverflow.com/help/mcve)(请查看链接)。 –

+0

请参阅编辑我的答案,谢谢! –

回答

0

你的问题的关键是,我相信可能是参考文献之一,但我无法确定,因为您迄今给我们的信息是非常有限。可能一个类没有有效的参考显示其他类的实例,这意味着您可能在非显示对象上调用方法。如果是这样,关键是通过setter方法或构造函数参数传递该引用。解决方案的细节取决于问题的细节和代码。

因此,如果您需要更多帮助,请向我们提供更多相关信息和相关代码,最好是mcve(请检查链接)。


编辑
关于你最近加入你的问题:

  • 你的框架变量不应该是一成不变的。这不可能导致你的问题,但可能会在以后引起重大问题。使其成为实例变量,并赋予类方法设置它,更改其状态并提取其状态。
  • 您的showMeUpdate()方法在JInternalFrame对象上调用repaint(),但您不会告诉我们为什么您认为这会做出任何重要的事情。对repaint()的调用不应更改组件的状态,但应该仅允许组件重新绘制自己并更改其外观,这是由于其他状态的其他更改。同样,你的问题仍然缺乏重要细节。您可以给我们提供的相关信息越多(不会让我们感到无关紧要的信息)越好,我们将会提供更好的帮助。
  • 您将希望学习并遵守Java命名约定:Java类名应以大写字母和方法开头,而变量名应以小写字母开头。这对你来说似乎微不足道,但按照这些惯例,其他人(我们!)谁正在阅读你的代码将更好地理解它,并能够给你更好的帮助。
  • 您的密码并不接近mcve标准。越接近这个标准,我们越能理解你的代码和你的问题。
+0

我知道java的方案,我推断了一个非常大的类的非常小的代码,以大写字母开头,无论如何感谢你 – OiRc

0

在我看来,你想重组组件。如果是这样,你可以尝试revalidate方法。如果这没有达到预期的结果,我们需要更多信息。

+0

我试过也重新验证,但不起作用 – OiRc