我正在尝试在另一个Jpanel中设置Jpanel的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.<init>(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 = "<html><body style='width: ";
String html2 = "px'>";
labelpanel.setSize(400, 400);
jl1= new JLabel(""+html1+""+textwidth+html2+"<h1>"+uname+"</h1>");
//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,作为一个新手,我对它不是很了解。我将非常感谢任何帮助!!!谢谢
需要将boxlayout
传递给容器,但创建布局管理器时,labelpanel为null
。因此您需要先创建面板,然后才能创建布局管理器:
this.labelpanel = new JPanel();
labelpanel.setLayout(new BoxLayout(labelpanel, BoxLayout.PAGE_AXIS));
顺便说一下,去掉在代码的另一部分中使用的null
布局--这是个坏主意,所以最好从一开始就养成使用布局管理器的习惯。
问题内容: Debian不再为gTest提供任何预编译的软件包。他们建议您将框架集成到项目的makefile中。但是我想保持我的makefile干净。如何像以前的版本(<1.6.0)一样设置gTest,以便可以链接到库? 问题答案: 开始之前,请确保您已阅读并理解 Google的注释! 1.获取googletest框架 或手工获取。我不会保留这小小的“操作方法”,因此,如果您偶然发现了它,并且链接
或者在flutter中,我可以以某种方式覆盖所有RaisedButton类具有相同高度的样式--不要说字体/颜色?
我有一个重新出现的问题,每当我有一台新的笔记本电脑在工作时,我需要手动从pycharm中删除所有旧的设置。 作为一个鼓舞人心的例子,我必须放置自定义的拆分和侧窗格(远程部署配置)。对于窗格拆分,主要是因为我没有看到pycharm有默认设置。 有没有一种方法可以毫不费力地导入所有这些?e、 g.导入一些pycharm特殊配置文件或其他文件? 对于特定的拆分窗格,我确信可以按照这些说明进行操作,但我希
本文向大家介绍ubuntu 下VirtualBox 如何实现共享设置,包括了ubuntu 下VirtualBox 如何实现共享设置的使用技巧和注意事项,需要的朋友参考一下 ubuntu 下VirtualBox 实现共享设置: 使用系统VirtualBox,另外又装个Ubuntu ,想让两个系统实现共享设置,经过上网查资料,得以实现,这里就说下具体步骤: 一、Virt
问题内容: 我想通过在Plone站点中使用Python脚本设置许多文件夹的共享权限。 问题答案: 您需要查看模块以获取详细信息。Plone中的共享选项卡是该API的友好包装。 要为给定的用户标识添加角色,请致电: 其他两个重要方法是(完全替换当前角色集)和(删除所有角色)。查看已经定义了哪些本地角色也可能很方便。 您希望在进行此类更改后重新索引安全性信息: