当前位置: 代码迷 >> Eclipse >> JFrame添加完背景,无法使用布局,求帮助,谢谢
  详细解决方案

JFrame添加完背景,无法使用布局,求帮助,谢谢

热度:47   发布时间:2016-04-23 00:11:50.0
JFrame添加完背景,无法使用布局,求帮助,多谢
private void init(Calendar cal){

frame_panel = new JPanel();

north = new JPanel();
center = new JPanel();
east = new JPanel();

setBackground();

jf.setLayout(new BorderLayout());
jf.add(north,new BorderLayout().NORTH);
jf.add(east,new BorderLayout().EAST);
jf.add(center,new BorderLayout().WEST);

north = (JPanel)jf.getContentPane();
north.setOpaque(false);
north.setLayout(new FlowLayout());
north.add(jcb_year);
north.add(jl_year);
north.add(jcb_month);
north.add(jl_month);
north.add(jcb_date);
north.add(jl_date);
north.add(jcb_hour);
north.add(jl_hour);
north.add(jcb_min);
north.add(jl_min);
north.add(jbt);

east = (JPanel)jf.getContentPane();
east.setOpaque(false);
east.setBackground(new Color(999999).yellow);
east.setPreferredSize(new Dimension(350, 80));

center = (JPanel)jf.getContentPane();
center.setOpaque(false);
center.add(jtarea_table,new BorderLayout().CENTER);
jtarea_table.setOpaque(false);

initTable();
}

public void setBackground(){
bg = new ImageIcon("./config/xiaodongzhizuo5.png");
JLabel bg_frame = new JLabel(bg);
bg_frame.setBounds(0,0,bg.getIconWidth(),bg.getIconHeight());

jf.getLayeredPane().setLayout(null);
jf.getLayeredPane().add(bg_frame,new Integer(Integer.MIN_VALUE));
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setSize(bg.getIconWidth(),bg.getIconHeight());
jf.setVisible(true);
}
------解决思路----------------------
你用的是层叠的布局,那个 BorderLayout 就被取代了,你的东南西北应该是添加到另一个panel 并且这个 panel 成为 LayeredPane 的一个孩子,它的 z-index 比你的 bg 要大。