我正在用Java编写游戏,我不想为我的JFrame使用布局管理器。我的类扩展了JFrame,看起来像这样:
//class field
static JPanel contentPane;
//in the class constructor
this.contentPane = new JPanel();
this.contentPane.setLayout(null);
this.setContentPane(contentPane);
我希望我的JPanel
正好是600x600 px,但是当我通过调用this.setSize(600,600)
方法设置JFrame的大小时,JPanel
大小小于600x600 px,因为也包括JFrame
窗口的边框。
如何将JPanel的大小设置为600x600像素?
P.S。我已经看过所有上一篇文章,但没有一篇能为我工作。 例如: Get the real size of a JFrame content对我不起作用。 我还能做什么?
答案 0 :(得分:1)
如果您不需要框架装饰(图标,标题,最小/最大/关闭按钮和边框),您可以使框架未修饰,然后它具有您给它的尺寸
module.js:338
throw err;
^
Error: Cannot find module 'Q'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/home/.cordova/lib/npm_cache/cordova-wp8/3.8.1/package/bin/lib/create.js:20:13)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
Error: /home/.cordova/lib/npm_cache/cordova-wp8/3.8.1/package/bin/create: Command failed with exit code 1
at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:139:23)
at ChildProcess.emit (events.js:110:17)
at maybeClose (child_process.js:1015:16)
at Process.ChildProcess._handle.onexit (child_process.js:1087:5)
答案 1 :(得分:1)
如何将JPanel的大小设置为600x600像素?
覆盖自定义游戏面板的getPreferredSize()
方法,以返回您希望面板的尺寸。
@Override Dimension getPreferredSize()
{
return new Dimension(600, 600);
}
然后,创建框架的基本代码将是:
GamePanel panel = new GamePanel();
frame.add(panel, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
现在所有游戏逻辑都将包含在GamePanel类中。