English 中文(简体)
JFrame内部的JPanels物体的移动和转播
原标题:Moving and resizing JPanels object inside JFrame

继续努力学习 Java一帆风顺,一小 issue。 我的游戏板包括“JPanel”和“每个板”。 现在,这带来了一些问题:

  1. 因此,每一件散装船的大小都掩盖了整个JFrame,隐藏了其他碎片和背景(加板)。

  2. 斜体确定碎片的位置。

我有拖欠的流动管理人。 沥青 set和 no。

Perhaps i should make the piece to extend other JComponent? Added image: That s the piece, now the greyed area is also the piece! Checked that by making a mousePressed listener and assigning some stuff to it. Below the grey area, is the gameboard (or at least, should be!), another JPanel.

alt text http://img42.imageshack.us/img42/2227/crshotvdy.png

一些法典:

package TheProject;

import java.awt.Color;
import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class GameWindow extends JFrame {
public GameWindow() {
    setSize(800, 600);
    setLocationRelativeTo(null);
    Map map = new Map(800, 600, 2);
    add(map);

    MilitaryUnit imperialRussia = new MilitaryUnit(30, Color.BLACK, Color.YELLOW, Color.WHITE);
    imperialRussia.setPreferredSize(new Dimension(30, 30));
    add(imperialRussia);

}
 }

This happens when i apply the pack() method: alt text http://img442.imageshack.us/img442/5813/screenshot2ml.png

该股周围的包装,而不是较大的地图,填充了联合阵线。

最佳回答

我用<代码>JPanel写了几门游戏。 基本上,我使用<条码>。 我直接引用了<代码>paint()方法。 我之所以使用<代码>JPanel是因为我可以确定我的游戏世界的规模,然后使用setP referredSize(来确定小组的规模。 然后,我把小组添加到上。 因此,这将考虑到扩大问题等。

Say I m 写2D游戏。 这就是我如何使用JPanel。 我有一个符合逻辑的地图(2D阵列),有我的游戏图。 每一地点为32x32 pixel。 因此,你开始在这一地点打下地面和地面。 比如,X=1, y=2, 即X=32, y=64, 您首先抽取地面,然后抽取地面。 因此, render的粗略概述就是这样。

for (int y = 0; y < map.length; y++)
   for (int x = 0; x < map[y].length; x++) {
      drawGround(map[y][x])
      for very element on on map[y][x] - render them
}      

各位打下了<代码>MouseListener,聆听了JPanel的听众,因此,每 mo点点击你将回复到地图格中。 如果你有非对称观点,计算就是一个比喻。

在此,你必须小心的是,每当你通过滚动小组向小组投稿时,将打电话<代码>paint()。 因此,最好在<代码>BufferedImage上登上游戏板,然后在<代码>paint(<>>/code>上登上<代码>BufferedImage。

问题回答

对于随机移动的游戏,你可能使用“核心”。

http://java.sun.com/docs/books/tutorial/uiswing/TOC.html

你们是否审判了Net Beans视觉编辑? 你们可以利用它来拖拉、下台和转播设计观点中的方便目标,然后可以转而采用《守则》,看看生成的法典。 你们可以学习这种方式。

您是否尝试了<条码>。

Edit:在您添加以下内容之后,您需要打上 Pack(>>。

JFrame frame = new JFrame();
frame.setPreferredSize(new Dimension(800,600));
JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension(200,200));
frame.add(panel);
frame.pack();
frame.setvisible(true);

此外,您在日本外加一张地图,其尺寸与贵方格朗一样。 但此后,你又增加了另一个部分,用于拖欠的流.。 由于地图已经占用了100%的空间,因此无法符合你的要求。





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签