Container cp=this.getContentPane();
这条语句只是使得new一个Container cp对象,该对象指向this.getContentPane()的引用,你后面用到的cp只是在该对象引用上的操作而已,并没有为实际的对象添加组件.
在用到cp的地方直接用
this.getContentPane().add()试试
你的代码太乱,既然QQ继承了JFrame类,没有必要什么地方都去调用父类的方法,再说你main方法中new的是一个JFrame对象,根本就没有QQ类啥事,唯一有关系的就是你新new的对象名叫QQ而已,根本都没有调用QQ类的代码.
建议你多多看看Java基础第三章类和对象的概念
稍微改了下给你对照你的代码测试下,比对下看自己什么地方写错了:
import java.awt.*;
import javax.swing.*;
public class QQ extends JFrame {
private JLabel jlabel;
private JTextField jtextfield = new JTextField();
private JButton jbutton1,jbutton2;
private JTextArea jtextarea;
public QQ(){
setLocation(200,100);
setTitle("及时聊听工具");
setSize(600,500);
// Container cp=this.getContentPane();
JPanel p=new JPanel();
FlowLayout flow=new FlowLayout();
p.setLayout(flow);
jlabel=new JLabel("输入 :");
p.add(jlabel);
p.add(jtextfield);
this.getContentPane().add(p,BorderLayout.CENTER);
/* jbutton1=new JButton("发送");
jbutton2=new JButton("取消");
JPanel p1=new JPanel();
p1.add(jbutton1);
p1.add(jbutton2);
cp.add(p1,BorderLayout.CENTER);
JPanel P2=new JPanel();
jtextarea=new JTextArea(50,50);
cp.add(jtextarea,BorderLayout.SOUTH);*/
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.setResizable(true);
}
public static void main(String[] args) {
QQ q =new QQ();
}
}
另外,你的源代码里JTextField根本都没有实例化对象,不能向JPanel中添加的。
import java.awt.*;
import javax.swing.*;
public class QQ extends JFrame {
private JLabel jlabel;
private JTextField jtextfield;
private JButton jbutton1,jbutton2;
private JTextArea jtextarea;
public QQ(){
super.setLocation(200,100);
super.setTitle("及时聊听工具");
super.setSize(600,500);
Container cp=this.getContentPane();
JPanel p=new JPanel();
jlabel=new JLabel("输入 :");
p.add(jlabel);
p.add(jtextfield);
FlowLayout flow=new FlowLayout();
p.setLayout(flow);
cp.add(p,BorderLayout.CENTER);
jbutton1=new JButton("发送");
jbutton2=new JButton("取消");
JPanel p1=new JPanel();
p1.add(jbutton1);
p1.add(jbutton2);
cp.add(p1,BorderLayout.CENTER);
JPanel P2=new JPanel();
jtextarea=new JTextArea(50,50);
cp.add(jtextarea,BorderLayout.SOUTH);
super.setResizable(true);
}
public static void main(String[] args) {
JFrame QQ=new JFrame();
QQ.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
QQ.setVisible(true);
}
}
似乎是没有设定窗体是否可以显示
QQ.setVisible(true);似乎是这个
我都没看到你让它显示出来的代码
你的代码太乱,自己好好练习。要有自己的风格。