后背长了一根白毛好吗:JAVA(swing)--界面交叠混乱

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 12:37:45
我用JAVA的swing编写一个网络聊天室(用awt编写没有出现问题),在applet中界面,面板,标签等就会出现交叠混乱的情形,是布局方式的问题吗?
swing和awt的布局方式有何不同?
请各位大虾帮帮小弟我吧!!!

以下是部分源代码:
class A_panel extends JPanel
{
JTextField name_txt;
JRadioButton box1,box2,box3;
ButtonGroup sex;
JButton button1,button2;
A_panel()
{
add(new JLabel("您的昵称: "));
name_txt=new JTextField(10);
add(name_txt);
box1=new JRadioButton("男");
box2=new JRadioButton("女");
box3=new JRadioButton("不告诉你");
sex=new ButtonGroup();
sex.add(box1);sex.add(box2);sex.add(box3);
add(box1);add(box2);add(box3);
button1=new JButton("进入聊天室");
button2=new JButton("退出聊天室");
add(button1);add(button2);
add(new JLabel("制作:XX (XXXXX@yahoo.com.cn)"));
}
}

class B_panel extends JPanel
{
JTextArea chat_txt;JScrollPane jsp;
B2_panel b2;
B_panel()
{
setLayout(new BorderLayout());
chat_txt=new JTextArea(5,10);
chat_txt.setEditable(false);
chat_txt.setForeground(Color.black);
jsp=new JScrollPane(chat_txt);
b2=new B2_panel();
add(jsp,BorderLayout.WEST); add(b2,BorderLayout.EAST);
}
}

class B2_panel extends JPanel
{
java.awt.List list;
B2_panel()
{
try
{
list=new java.awt.List(5,false);
}
catch(NullPointerException e){}
setLayout(new BorderLayout());
add("Center",list);add("North",new Label("聊天室列表 :"));
add("East",new Label()); add("West",new Label());
add("South",new Label("双击某昵称可谈悄悄话"));
}
}

class C_panel extends JPanel
{
JButton button,button2,button3;
JTextField msg_txt;
C_panel()
{
msg_txt=new JTextField(50);
add(new JLabel("聊聊天吧 ")); add(msg_txt);
button=new JButton("送出消息");
button2=new JButton("刷新对话");
button3=new JButton("刷新聊天者列表区");
add(button);add(button2);add(button3);
}
}

public class JChatRoom extends JApplet
{
static A_panel a;static B_panel b;static C_panel c;
public void init()
{
Container con=getContentPane();
con.setSize(1000,1000);
con.setLayout(new BorderLayout());
a=new A_panel();
b=new B_panel();
c=new C_panel();
con.add(a,BorderLayout.NORTH);
con.add(b,BorderLayout.CENTER);
con.add(c,BorderLayout.SOUTH);
setVisible(true);
}
}

不要用Applet了,试一试用Web Start