下面的代码显示了我的程序,当在方法 home()、plus、minus()times()
和之间切换时divide()
,它们removeAll()
对应JPanel
的 saddPnl()
subPnl()
等等 - 这些存储在 a 中JDesktopPane
。
我对Java很陌生,我的代码背后的想法是它是一个数学程序:你按下一个按钮,从当时显示JFrame
的内容中删除内容,然后根据什么类型显示正确的你想要的总和:加法,乘法等。JPanel
JPanel
我的问题是,当您切换到菜单,然后切换到另一个JPanel
,来回切换时,切换到新屏幕/ 的速度越来越慢JPanel
。有没有办法避免这种情况?
我的代码中可能有一些不好的做法,但是,就像我说的,我还很新,需要学习这些东西!
非常感谢。
我添加JPanels
了一个JDesktopPane
,所以我可以在我的JFrame
:
desk.add( bgImg , new Integer( 50 ) );
desk.add( mainPnl , new Integer( 350 ) );
desk.add( mainG , new Integer( 350 ) );
desk.add( addPnl , new Integer( 350 ) );
desk.add( subPnl , new Integer( 350 ) );
desk.add( mulPnl , new Integer( 350 ) );
desk.add( divPnl , new Integer( 350 ) );
setLayeredPane( desk );
不同的按钮链接到不同的方法,都在我的类中调用MiniMain
public void actionPerformed( ActionEvent event ){
if( event.getSource() == addBtn ) { plus(); }
if( event.getSource() == subBtn ) { minus(); }
if( event.getSource() == mulBtn ) { times(); }
if( event.getSource() == divBtn ) { divide(); }
if( event.getSource() == menuBtn ) { home(); }
if( event.getSource() == noteBtn ) { MiniPad.pad(); return; }
removeAll()
每个方法都以 s: 中的内容的一些声明开始JPanel
:将链接到该方法的面板
public void plus(){
mainPnl.removeAll(); mainG.removeAll(); addPnl.removeAll();