2013-10-29 71 views
0

我想用java jframe開發一款遊戲。每件事件/圖形都做得很好。但是,當我試圖添加按鈕,菜單等jFrame我遇到了麻煩。我看到很多其他的Java圖形與Jpane一起工作。我不是java的專業人士,只是偷偷摸摸。那麼,任何人都可以幫我解決我應該使用哪一個?哪一個更適合遊戲開發? Jpanel或jframe?

+1

請至少在你的代碼,你將元素添加到JFrame的線。什麼不適合你?什麼是麻煩? – alexey28

+0

您可能需要一個JFrame。我並不擅長Swing,但我會將'LayoutManager'設置爲'JFrame.getContentPane();'並將這些組件添加到'JFrame.getContentPane();'中。 –

+0

使用「畫布」。 –

回答

4

JFrame是頂層窗口,其中包含一個標題欄,其中包含一些關閉/最小化窗口的控件。它還包含菜單欄。

enter image description here ... enter image description here

JFrame裏面,有一個很大的JPanelcontent paneJPanel是一個容器,可以包含擺動組件,如JButton,JLabel,JTextField,...等。JPanel也可以包含嵌套的JPanel

。注意,後面和在所述內容窗格層前面多層:正在打印

enter image description here

1

除了Eng.Fouad的回答,這裏是該概念的一個簡單的示範,用線沿到JPanel。

以下是創建JFrame並向其中添加JPanel的類。

import javax.swing.*; 

public class DrawPanelTest { 

    public static void main (String args[]) { 
     DrawPanel panel = new DrawPanel(); 
     JFrame application = new JFrame(); 

     application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     application.add(panel); 
     application.setSize (250, 250); 
     application.setVisible(true); 
    } 
} 

這裏是繪製到JPanel的類。

import java.awt.*; 
import javax.swing.*; 

public class DrawPanel extends JPanel { 

    public void paintComponent (Graphics g){ 
     super.paintComponent(g); 

     int width = getWidth(); 
     int height = getHeight(); 

     int drawCounter = 0; // counters for all the while statements 

     int x1 = 0; // cords change with the while statemetns 
     int x2 = 0; 
     int y1 = 0; 
     int y2 = 0; 

     while (drawCounter <= 15) //counter 
     { 
      y2 = 250; 
      g.drawLine(x1, y1, x2, y2); 
      x2 = x2 + 15; 
      y1 = y1 + 15; 
      drawCounter++; 
     } 
    } 
} 
+0

你也應該參考[真正的大指數](http://docs.oracle.com/javase/tutorial/reallybigindex.html)。你會發現那裏可以找到你的大部分問題的答案。 –