2012-03-23 22 views
0

t.schedule(umm.setVisible(false), 5);と入力するとエラーが発生し、void型は許可されません。誰かが私のためにこれをクリアすることはできますか?非静的メソッドは参照できず、void型は許可されていません

public class menu extends JFrame{ 
JLabel bgmenu=new JLabel(); 
JLabel java=new JLabel(); 
JLabel umm=new JLabel(); 
JLayeredPane jLayeredPane1=new JLayeredPane(); 

public menu(){ 

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

    //label 
    umm.setIcon(new javax.swing.ImageIcon("D:\\Job\\Kuliah\\4\\DAMG\\Game\\pic\\umm.jpg")); 
    umm.setBounds(0, 0, 1024, 709); 
    java.setIcon(new javax.swing.ImageIcon("D:\\Job\\Kuliah\\4\\DAMG\\Game\\pic\\java.jpg")); 
    java.setBounds(0, 0, 1024, 709); 
    bgmenu.setIcon(new javax.swing.ImageIcon("D:\\Job\\Kuliah\\4\\DAMG\\Game\\pic\\interfacemainmenu.jpg")); 
    bgmenu.setBounds(0, 0, 1024, 709); 

    //posisi 
    jLayeredPane1.add(umm, javax.swing.JLayeredPane.DEFAULT_LAYER); 
    jLayeredPane1.add(java, javax.swing.JLayeredPane.DEFAULT_LAYER); 
    jLayeredPane1.add(bgmenu, javax.swing.JLayeredPane.DEFAULT_LAYER); 

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
    getContentPane().setLayout(layout); 
    layout.setHorizontalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addComponent(jLayeredPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 1024, javax.swing.GroupLayout.PREFERRED_SIZE) 
    ); 
    layout.setVerticalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addComponent(jLayeredPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 709, javax.swing.GroupLayout.PREFERRED_SIZE) 
    ); 

    pack(); 
} 
public static void main(String[] args) { 
    new menu().setVisible(true); 
    Timer t=new Timer(); 
    //get error here under this comment 
    t.schedule(umm.setVisible(false), 5); 
} 
+2

'schedule'メソッドの再チェック署名と' setVisible'戻り値の型を見てください。 – mishadoff

+2

['javax.swing.Timer' v。' java.util.Timer'](http://java.sun.com/products/jfc/tsc/articles/timer/)も参照してください。 – trashgod

+0

@ carl-manaster thx、その今はっきり:) –

答えて

1

最初のargのTimer.schedule()はTimerTaskでなければなりません。

setVisible()をTimerTaskのrun()メソッドにラップする必要があります。

テスト済みではないので、いくつかの詳細が疑わしいかもしれませんが、必要なものに近いと思います。そこにはたくさんの "本当の"例があると確信しています。

class MyTimer extends TimerTask 
{ 
    private menu theMenu = null; 
    public MyTimer(Menu m) 
    { 
     this.theMenu = m; 
    } 
    public void run() 
    { 
     // you need to add 
     // public void setUmmVisibility(boolean s) 
     // { this.umm.setVisible(s); } 
     // to the menu class. 
     this.theMenu.setUmmVisibility(false); 
    } 
} 

public static void main(String[] args) { 
    menu m = new menu(); 
    m.setVisible(true); 
    Timer t=new Timer(); 
    t.schedule(new MyTimer(m, 5); 
} 
+0

urの返信のためのthx、私はすでにurアドバイスを試みたが、 "非静的"エラーがまだ表示されます –

+0

ummは、クラスメニューのメンバーです()。 main()は静的メンバーなので、umにアクセスすることはできません。私はあなたの周りの道を示すためにコードを編集します。 – John3136

+0

ああ、私はすでにそれを修正、とにかくthx –

関連する問題