当前位置: 代码迷 >> J2SE >> 在Jframe增添Jpanel组件是始终没有显示效果
  详细解决方案

在Jframe增添Jpanel组件是始终没有显示效果

热度:32   发布时间:2016-04-23 19:55:01.0
在Jframe添加Jpanel组件是始终没有显示效果
代码如下。弄了两个按钮的。一个直接用container直接添加到Jframe上可以显示出来。但是另外一个先添加到Jpanel上,再添加到Jframe上就没有显示出来,设置的颜色属性也没有显示出来。。希望大家看看问题是出在哪里了
import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.HeadlessException;
import java.awt.LayoutManager;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.WindowConstants;


public class PrintGraph extends JFrame{
public PrintGraph(){
setTitle("hhhh");
setLayout(null);
setBounds(0, 0, 200, 150);
Container c=getContentPane();
JPanel jp=new JPanel();
//jp.setLayout(null);
jp.setBackground(Color.yellow);
JButton b1=new JButton("button 1");
JButton b2=new JButton("button 2");
b1.setBounds(10, 30, 80, 30);
b2.setBounds(60, 70, 80, 30);
jp.add(b1) ;
c.add(jp);
c.add(b2);
setVisible(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String []args){
new PrintGraph();
}
}

------解决思路----------------------
和你布局有关
setLayout(new BorderLayout());



import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;


public class PrintGraph extends JFrame{
/**
 * 
 */
private static final long serialVersionUID = 1L;
public PrintGraph(){
this.setLayout(new BorderLayout());
setTitle("hhhh");
//setLayout(null);
setBounds(0, 0, 200, 150);
Container c=getContentPane();
JPanel jp=new JPanel();

//jp.setLayout(null);
jp.setBackground(Color.yellow);
JButton b1=new JButton("button 1");
JButton b2=new JButton("button 2");
b1.setBounds(10, 30, 80, 30);
b2.setBounds(60, 70, 80, 30);
jp.add(b1) ;
c.add(jp,BorderLayout.CENTER);
c.add(b2,BorderLayout.SOUTH);

setVisible(true);

setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String []args){
new PrintGraph();
}
}