JAVA中box在Frame中显示不完_java – 如何解决BoxLayout在为JPanel设置时无...

我正在尝试在另一个JPanel中设置Jlay的Boxlayout.但我无法弄清楚如何解决这个错误

Exception in thread "main" java.awt.AWTError: BoxLayout can't be shared

at javax.swing.BoxLayout.checkContainer(BoxLayout.java:464)

at javax.swing.BoxLayout.invalidateLayout(BoxLayout.java:248)

at javax.swing.BoxLayout.addLayoutComponent(BoxLayout.java:281)

at java.awt.Container.addImpl(Container.java:1120)

at java.awt.Container.add(Container.java:410)

at chatmsg1.ProfilePanel.(ProfilePanel.java:63)

at chatmsg1.ProfilePanel.main(ProfilePanel.java:108)

Java Result: 1

这是守则!任何帮助将不胜感激 !!

import java.awt.BorderLayout;

import java.awt.GridLayout;

import javax.management.ImmutableDescriptor;

import javax.swing.BoxLayout;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JLayeredPane;

import javax.swing.JPanel;

class ProfilePanel extends JPanel{

JLabel jl1,jl2,jl3,jl4,jl5,jl6,jl7,jl8,jl9,jl10;

ImagePanel ip= new ImagePanel();

JPanel jp1= new JPanel(new BorderLayout());

JPanel labelpanel;

static int textwidth=100;

static String uname, uage, usex, udept, uheight="jjhkjhiuhiuhiuhiuhihihuihiuhiuhuhiuhiuhihihiuhhihhuhih",ubatch, ucontact, uemail;

public ProfilePanel() {

this.labelpanel = new JPanel(new BoxLayout(labelpanel, BoxLayout.PAGE_AXIS));

String html1 = "

";

labelpanel.setSize(400, 400);

jl1= new JLabel(""+html1+""+textwidth+html2+"

"+uname+"

");

//jl1.setSize(jl1.getPreferredSize());

jl2= new JLabel(""+html1+""+textwidth+html2+uage);

//jl2.setSize(jl2.getPreferredSize());

jl3= new JLabel(""+html1+""+textwidth+html2+usex);

//jl3.setSize(jl3.getPreferredSize());

jl4= new JLabel(""+html1+""+textwidth+html2+udept);

// jl4.setSize(jl4.getPreferredSize());

jl5= new JLabel(""+html1+""+textwidth+html2+uheight);

//jl5.setSize(jl5.getPreferredSize());

jl6= new JLabel(""+html1+""+textwidth+html2+ubatch);

//jl6.setSize(jl6.getPreferredSize());

jl7= new JLabel(""+html1+""+textwidth+html2+ucontact);

//jl7.setSize(jl7.getPreferredSize());

jl8= new JLabel(""+html1+""+textwidth+html2+uemail);

//jl8.setSize(jl8.getPreferredSize());

/*

labelpanel.add(jl1,BorderLayout.CENTER);

labelpanel.add(jl2,BorderLayout.SOUTH);

labelpanel.add(jl3,BorderLayout.SOUTH);

labelpanel.add(jl4,BorderLayout.SOUTH);

labelpanel.add(jl5,BorderLayout.SOUTH);

labelpanel.add(jl6,BorderLayout.SOUTH);

labelpanel.add(jl7,BorderLayout.SOUTH);

labelpanel.add(jl8,BorderLayout.SOUTH);

*/

labelpanel.add(jl1);

labelpanel.add(jl2);

labelpanel.add(jl3);

labelpanel.add(jl4);

labelpanel.add(jl5);

labelpanel.add(jl6);

labelpanel.add(jl7);

labelpanel.add(jl8);

jl1.setAlignmentX(0);

jl2.setAlignmentX(0);

jl3.setAlignmentX(0);

jl4.setAlignmentX(0);

jl5.setAlignmentX(0);

jl6.setAlignmentX(0);

jl7.setAlignmentX(0);

ip.setImage("icons/1.jpg");

ip.setSize(200, 200);

//jl1.setSize(jl1.getPreferredSize());

jp1.add(ip, BorderLayout.CENTER);

jp1.setPreferredSize(jp1.getPreferredSize());

jp1.setBounds(20, 20, ip.getwidth(), ip.getheight());

//add(jp1,BorderLayout.CENTER );

//add(jl1,BorderLayout.WEST);

add(jp1);

add(labelpanel);

labelpanel.setLocation(jp1.getX()+jp1.getWidth()+20,0 );

labelpanel.setBounds(jp1.getX()+jp1.getWidth()+20,0 ,300, 400);

setLayout(null);

setPreferredSize(getPreferredSize());

setLocation(0, 0);

//setBounds(10, 10, 600, 600);

setVisible(true);

}

public static void main(String args[]){

ProfilePanel p1= new ProfilePanel();

p1.setSize(600, 600);

JFrame jf= new JFrame("propanel");

jf.setBounds(100, 100, 600, 600);

jf.setLayout(null);

jf.setVisible(true);

jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);

jf.getContentPane().add(p1);

// jf.pack();

}

}

ImagePanel是另一个将图像添加到此面板的JPanel.另外,如果有任何方法可以通过调整主Jframe及其所有组件的大小来自动调整此面板,请告诉我.我有点学习Java,作为一个新手,我不太了解它.我将非常感谢任何帮助!谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值