当前位置: 代码迷 >> Java相关 >> [求助]怎样设置面板大小?
  详细解决方案

[求助]怎样设置面板大小?

热度:522   发布时间:2006-06-16 15:08:14.0
[求助]怎样设置面板大小?
import javax.swing.*;
import java.awt.*;
public class Chatroom extends JApplet
{
JPanel pm,pn,ps,pw,pe,pc;
BorderLayout b;
public void init()
{
pm=new JPanel();
pn=new JPanel();
ps=new JPanel();
pw=new JPanel();
pe=new JPanel();
pc=new JPanel();
b=new BorderLayout();
pm.setLayout(b);
pm.add(pn,BorderLayout.NORTH);
pm.add(ps,BorderLayout.SOUTH);
pm.add(pw,BorderLayout.WEST);
pm.add(pe,BorderLayout.EAST);
pm.add(pc,BorderLayout.CENTER);

JLabel lbiaoti=new JLabel("Software Chatroom");
Color c1=new Color(197,248,184);
pn.setBackground(c1);
Color c2=new Color(246,17,50);
lbiaoti.setForeground(c2);
lbiaoti.setFont(new Font("楷体",Font.PLAIN,36));
pn.add(lbiaoti);

Color c3=new Color(249,170,224);
ps.setBackground(c3);
JLabel lmessage=new JLabel("Message:");
ps.add(lmessage);
JTextField tmessage=new JTextField(50);
ps.add(tmessage);
JButton bsend,bcanel;
Icon i=new ImageIcon("D:\\tupian\\send.jpg");
bsend=new JButton(i);
bcanel=new JButton("Canel");
bsend.setBackground(c3);
ps.add(bsend);
ps.add(bcanel);

JPanel pw1=new JPanel();
JLabel lname,lpassword;
lname=new JLabel("Name:");
lpassword=new JLabel("Password:");
JTextField tname,tpassword;
tname=new JTextField(8);
tpassword=new JTextField(6);
Color c4=new Color(218,247,230);
pw.setBackground(c4);
pw1.setBackground(c3);
// pw1.setLayout(null);
// pw1.setSize(1285,160);

pw1.add(lname);
pw1.add(tname);
pw1.add(lpassword);
pw1.add(tpassword);
pw.add(pw1);

JTextArea tac=new JTextArea(40,82);
Color c5=new Color(156,236,244);
pc.setBackground(c5);
pc.add(tac);

JTextArea tae=new JTextArea(32,13);
Color c6=new Color(248,248,206);
pe.setBackground(c6);
pe.add(tae);

this.getContentPane().add(pm);
}
}
怎样设置面板pw1的大小,我写的那两行 编译能通过 运行时左面的面板就不出现了!
请教 能否有更好的方法使lname,tname一行,lpassword,tpassword另起一行???
搜索更多相关的解决方案: 面板  设置  

----------------解决方案--------------------------------------------------------
可以用setBounds()设置每个控键的位置.不过要取消布局方式.
----------------解决方案--------------------------------------------------------

具体怎么实现啊?可以说详细点吗?


----------------解决方案--------------------------------------------------------
调用组件.setBounds(int x,int y,int width,int height)

----------------解决方案--------------------------------------------------------
去查API文档 上面写得好清楚的。
还是那句话:书是程序员的累赘,而帮助文档才是程序员的‘爹’;
----------------解决方案--------------------------------------------------------
pw1.setLayout(null);
pw1.setBounds(10,10,10,10);
这样设置了 怎么不起作用啊!???
----------------解决方案--------------------------------------------------------
setLayout这个方法只能是容器调用的
setBounds() 这个方法是被装的东西调用的
比如你有一个按钮,你希望它是100*100的大小,放在容易20,20的地方
你就这样写jb.setBounds(20,20,100,100);
c是你的容器,c.setLayout(null);
最后加进来c.add(jb);
就可以了
----------------解决方案--------------------------------------------------------

比如你有一个面板a,希望它是100*100的大小,放在面板b的20,20的地方
可以这样写吗?
a.setBounds(20,20,100,100);
b.setLayout(null);
b.add(a);


----------------解决方案--------------------------------------------------------
你可以调试一下啊,其实一些可以自己解决的问题自己解决了,会明白得更多的.
----------------解决方案--------------------------------------------------------
我是试了的,不行!!!
----------------解决方案--------------------------------------------------------
  相关解决方案