哪一个更适合游戏开发? Jpanel还是jframe?

时间:2013-10-29 15:12:42

标签: java swing graphics jframe jpanel

我正在尝试使用java jframe开发游戏。事件/图形的每件事都做得非常好。但是,当我试图在jFrame中添加按钮,菜单等时,我遇到了麻烦。我看到很多其他java图形与Jpane一起使用。我不是java的专业人士,只是偷偷摸摸。那么任何人都可以帮助我使用哪一个?

2 个答案:

答案 0 :(得分:4)

JFrame是顶级窗口,其中包含一个标题栏,其中包含一些控件以关闭/最小化窗口。它还包含菜单栏。

enter image description here .. enter image description here

JFrame内,有一个名为JPanel的大content paneJPanel是一个容器,可以包含JButtonJLabelJTextField,等等{@ 1}}等嵌套组件。JPanel可以包含嵌套JPanel也是。

请注意,内容窗格层后面和前面有多个图层:

enter image description here

答案 1 :(得分: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++;
        }
     }
}