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 要大。