首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何设置JPanel的宽度和高度?

如何设置JPanel的宽度和高度?
EN

Stack Overflow用户
提问于 2011-05-07 12:53:04
回答 2查看 235.6K关注 0票数 18

我正在用Java开发蛇游戏。板的宽度和高度应该是固定的(640像素* 480像素)。

结构:

  • 从JFrame类扩展的主类,
  • 板类,从JPanel类扩展而来;

在主修课上我有个类似的..。

代码语言:javascript
运行
复制
setSize( 1024, 768 );

...and在董事会我有.

代码语言:javascript
运行
复制
setSize( BOARDS_WIDTH, BOARDS_HEIGHT );

问题是主窗口和唯一的窗口似乎是1024 * 768,但里面的面板不像640 * 480。我也有setBackground(),背景超过640 * 480。

有没有办法使板的宽度和高度像640 * 480,但主要窗口的宽度和高度-与板的宽度和高度是正确的?

现在看起来是这样..。

编辑:

一切正常..。差不多了。

主修班:

代码语言:javascript
运行
复制
add( new Board(), BorderLayout.CENTER );
pack();
setResizable( false );
setLocationRelativeTo( null );
setVisible( true );
setDefaultCloseOperation( EXIT_ON_CLOSE );
setTitle( "Snake (by daGrevis)" );

董事会课程:

代码语言:javascript
运行
复制
setPreferredSize( new Dimension( 640, 480 ) );

灰色背景是642 * 482!就像有边框一样,用一个像素来包装!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-07 15:05:15

拜托,x_x_x*x出了点事,这根本不是真的,你看

代码语言:javascript
运行
复制
JButton Size - java.awt.Dimension[width=400,height=40]
JPanel Size - java.awt.Dimension[width=640,height=480]
JFrame Size - java.awt.Dimension[width=646,height=505]

代码(来自Trail:使用JFC/Swing创建GUI的基本内容,但我仍然认为这是过时的)

编辑:忘记setDefaultCloseOperation()

代码语言:javascript
运行
复制
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class FrameSize {

    private JFrame frm = new JFrame();
    private JPanel pnl = new JPanel();
    private JButton btn = new JButton("Get ScreenSize for JComponents");

    public FrameSize() {
        btn.setPreferredSize(new Dimension(400, 40));
        btn.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("JButton Size - " + btn.getSize());
                System.out.println("JPanel Size - " + pnl.getSize());
                System.out.println("JFrame Size - " + frm.getSize());
            }
        });
        pnl.setPreferredSize(new Dimension(640, 480));
        pnl.add(btn, BorderLayout.SOUTH);
        frm.add(pnl, BorderLayout.CENTER);
        frm.setLocation(150, 100);
        frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // EDIT
        frm.setResizable(false);
        frm.pack();
        frm.setVisible(true);
    }

    public static void main(String[] args) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                FrameSize fS = new FrameSize();
            }
        });
    }
}
票数 14
EN

Stack Overflow用户

发布于 2011-05-07 12:57:54

代码语言:javascript
运行
复制
Board.setPreferredSize(new Dimension(x, y));
.
.
//Main.add(Board, BorderLayout.CENTER);
Main.add(Board, BorderLayout.CENTER);
Main.setLocations(x, y);
Main.pack();
Main.setVisible(true);
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5921175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档