2016-02-14 74 views
0
public void paintComponent(Graphics g){ 
    g.drawImage(back,0,0,this); 

    if(winner || loser){ 

     g.setColor(Color.white); 
     g.setFont(new Font(null,Font.BOLD,55)); 
     g.drawString("SCORE:",350,250); 
     g.drawString(""+score,600,250); 
     g.drawImage(enemy,100,500,this); 
     g.drawImage(enemy2,175,500,this); 
     g.drawImage(enemy3,250,500,this); 
     g.drawImage(enemy5,700,515,this); 
     g.drawImage(enemy6,775,515,this); 
     g.drawImage(enemy7,850,515,this); 
     g.drawImage(enemy4,495,515,this); 
     if(winner){ 
      g.drawImage(winnerPic,200,50,this); 
     } 
     else{ 
      g.drawImage(gameOver,220,50,this); 
     } 
     g.drawImage(endingTitle,190,590,this); 

     JButton menu=new JButton("Return to menu"); 
     menu.setSize(200,100); 
     menu.setLocation(400,400); 
    } 
} 

如何讓按鈕出現在屏幕上。請非常詳細,idk如何使用擺動佈局樣式。Java swing,在我的paint組件中創建一個按鈕

+2

不更新,或從paintComponent方法裏面 – MadProgrammer

回答

2

首先,您有一個顯示在JFrame上的容器(例如JPanel)。 在創建按鈕後,您必須將其添加到容器中。大多數情況下,您希望容器具有佈局,例如BorderLayout。

JButton menu = new JButton("Back to the menu"); 
container.add(menu, BorderLayout.CENTER); 

編輯: 如果這不是你想要實現它的方式,它會ATLEAST幫助你理解的層次結構。

public void buttonExample(){ 
    JFrame frame = new JFrame("Button Example"); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    JPanel panel = new JPanel(); 
    panel.setLayout(new BorderLayout()); 
    panel.setPreferredSize(new Dimension(200, 100)); 

    JButton button = new JButton("Return to the menu"); 
    panel.add(button, BorderLayout.CENTER); 

    frame.add(panel); 
    frame.pack(); 
    frame.setVisible(true); 
} 
+0

內修改組件的狀態你怎麼定義一個容器,你將按鈕添加到容器中後,怎麼會出現在屏幕上。 –

+1

@ShadowKing這只是基本的Swing,請參閱[使用JFC/Swing創建GUI](http://docs.oracle.com/javase/tutorial/uiswing/) – MadProgrammer