JAVA图形用户界面

2024-12-26 00:28:01
推荐回答(5个)
回答1:

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中添加的。

回答2:

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);

}
}

回答3:

似乎是没有设定窗体是否可以显示

QQ.setVisible(true);似乎是这个

回答4:

我都没看到你让它显示出来的代码

回答5:

你的代码太乱,自己好好练习。要有自己的风格。