新手,刚学到swing有一个小问题,请各位大哥帮帮忙,谢谢

apple21 2004-08-11 05:28:39
我在JFrame中加一个JPanel 我要设定JPanel的大小 不想让JPanel扑满整个JFanel怎么办呀
我用的是JDK+记事本 所以不能用JBUILDER里的东西!
有问题的地方在下边的注释里

public class Snake
{public static void main(String[] args)
{SnakeFrame frame=new SnakeFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
class SnakeFrame extends JFrame
{
public SnakeFrame()
{
Toolkit kit=Toolkit.getDefaultToolkit();
Dimension sc=kit.getScreenSize();
Image img=kit.getImage("w.gif");
setIconImage(img);
int h=sc.height;
int w=sc.width;
setTitle("贪吃蛇");
setSize(200,350);
setLocation(w/2-260/2,h/2-400/2);
setResizable(false);
Container contentPnae=getContentPane();

JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayout(1, 2));
JLabel lblScore = new JLabel("Score: 0");
JLabel lblEat = new JLabel("Eat Food: 0");
panel1.add(lblScore);
panel1.add(lblEat);
contentPnae.add(panel1, BorderLayout.NORTH);

Pane panel2 = new Pane();
contentPnae.add(panel2);
}
}
class Pane extends JPanel
{ public Pane()
{//Canvas paintCanvas = new Canvas();
// paintCanvas.setSize(200,350);
// add(paintCanvas);

setSize(20,50); //为什么这里设置了大小不起作用
setBackground(Color.WHITE);

}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2=(Graphics2D)g; //这里画方快不显示
Rectangle2D c=new Rectangle2D.Double(50,100,10,10);
g2.setPaint(Color.RED);
g2.fill(c);
}
}


...全文
106 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gyf168 2004-08-12
  • 打赏
  • 举报
回复
JPanel()
里不可以设置大小
JPanel()
JPanel(boolean isDoubleBuffered)
JPanel(LayoutManager layout)
JPanel(LayoutManager layout, boolean isDoubleBuffered)

具体在这
Constructor Summary
JPanel()
Creates a new JPanel with a double buffer and a flow layout.
JPanel(boolean isDoubleBuffered)
Creates a new JPanel with FlowLayout and the specified buffering strategy.
JPanel(LayoutManager layout)
Create a new buffered JPanel with the specified layout manager
JPanel(LayoutManager layout, boolean isDoubleBuffered)
Creates a new JPanel with the specified layout manager and buffering strategy.
lclarck 2004-08-12
  • 打赏
  • 举报
回复
设置JPanel的最小大小;然后用FlowLayout应该就可以
bineon 2004-08-11
  • 打赏
  • 举报
回复
回复人: rainight(雨夜聆风) ( ) 信誉:100 2004-08-11 17:34:00 得分: 0


你当然要用布局了。
另外,如果不用jb之类的集成开发环境,你根本做不出好的界面。你想想没有vc能写windows程序吗?不要自己难为自己,既然做界面,就要用所见即所得的开发工具支持。


------------------------
反对!
初学还是使用jdk或者j creator好
jb不适合初学!
另:记事本也能作出很精彩的布局!
kongkongye 2004-08-11
  • 打赏
  • 举报
回复
Container c=this.getContentPane();
c.setLayout(new GridLayout(1,2));
c.add(panel1);
clnara921 2004-08-11
  • 打赏
  • 举报
回复
JPanel()
里不可以设置大小
JPanel()
JPanel(boolean isDoubleBuffered)
JPanel(LayoutManager layout)
JPanel(LayoutManager layout, boolean isDoubleBuffered)
只有这四种
这是java的chm介绍的

具体在这
Constructor Summary
JPanel()
Creates a new JPanel with a double buffer and a flow layout.
JPanel(boolean isDoubleBuffered)
Creates a new JPanel with FlowLayout and the specified buffering strategy.
JPanel(LayoutManager layout)
Create a new buffered JPanel with the specified layout manager
JPanel(LayoutManager layout, boolean isDoubleBuffered)
Creates a new JPanel with the specified layout manager and buffering strategy.
你看看哪
apple21 2004-08-11
  • 打赏
  • 举报
回复
那我用什么布局呢?能写个代码出来吗
rainight 2004-08-11
  • 打赏
  • 举报
回复
你当然要用布局了。
另外,如果不用jb之类的集成开发环境,你根本做不出好的界面。你想想没有vc能写windows程序吗?不要自己难为自己,既然做界面,就要用所见即所得的开发工具支持。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧