JAVA Swing 在布局为BoxLayout的容器里面同时放置多个JPanel怎么就不好使了呢?

JAVA Swing 在布局为BoxLayout的容器里面同时放置多个JPanel怎么就不好使了呢?,第1张

用了BoxLayout就这种效果,要实现自定义位置和大小就不能使用任何布局。如下:

container.setLayout(null)//将内容面版的布局设为空

jpanel.setBounds(int x,int y,int width,int height)//设置jpanle的x,y坐标以及width和height

每个jpanel都这样设置,而且得计算好坐标。

你好!

  //定义一个变形工厂变量

  ShapeFactory shapeFactory=new ShapeFactory()

  //定义一个背景变量

  Ground ground=new Ground()

  //定义一个游戏面板容器

  GamePanel gamePanel=new GamePanel()

  //根据 变形工厂变量、背景、游戏面板初始化一个控制器变量

  Controller controller=new Controller(shapeFactory,ground,gamePanel)

  

  //定义一个窗体变量

  JFrame frame=new JFrame()

  //设置该窗体关闭后结束进程

  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

  //设置该窗体的宽度为 游戏面板宽度+10, 高度为游戏面板宽度+35

  frame.setSize(gamePanel.getSize().width+10,

    gamePanel.getSize().height+35)

  //将游戏面板添加到窗体中

  frame.add(gamePanel)

  //设置游戏面板的键盘监听事件,参数为控制器变量

  gamePanel.addKeyListener(controller)

  //设置窗体可见

  frame.setVisible(true)

  //执行控制器的“新游戏”方法

  controller.newGame()

ImageIcon m1=new ImageIcon("背景.jpg")

JPanel f2=new JPanel(){ //下面将图片插入到f2的容器中

protected void paintComponent(Graphics g){//绘画图片的构造方法

g.drawImage(m1.getImage(), 0, 0, null)

super.paintComponent(g)

}

}

f2.setOpaque(false)//设置容器f2是否透明,否就显示,是就不显示图片

f2.setPreferredSize( new Dimension(500, 300) )


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/11267269.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存