这是片段:
JPanel logoPanel=new JPanel();
GroupLayout logoLayout=new GroupLayout(logoPanel);
logoPanel.setLayout(logoLayout);
logoPanel.setHorizontalGroup((GroupLayout.Alignment.BASELINE).addGap(100,100));
logoPanel.setVerticalGroup((GroupLayout.Alignment.BASELINE).addGap(100,100));
这些是cmd上产生的错误:
MainPageTypo.java:27: cannot find symbol
logoPanel.setHorizontalGroup((GroupLayout.Alignment.BASELINE).addGap(100,100));
^
symbol: method addGap(int,int)
location: class Alignment
MainPageTypo.java:28: cannot find symbol
logoPanel.setVerticalGroup((GroupLayout.Alignment.BASELINE).addGap(100,100));
^
symbol: method addGap(int,int)
location: class Alignment
2 errors
为什么会出现这些错误,我该如何解决?
答案 0 :(得分:3)
根据JavaDoc GroupLayout.Group只有方法addGap(int)
和addGap(int, int, int)
,因此您要么缺少一个参数,要么过多。
addGap(100)
因此就足够了。
编辑2:
您在addGap(...)
上调用GroupLayout.Alignment
这是一个枚举,根本不提供该方法:第28行包含(GroupLayout.Alignment.BASELINE).addGap(100,100)
我想您要致电logoLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
或logoLayout.createSequentialGroup()
来创建群组。
您还在JPanel上调用setHorizontalGroup(...)
(和setVerticalGroup(...)
),而不是在也应该生成错误的GroupLayout上调用。将其更改为logoLayout.setHorizontalGroup( ... );
。
编辑:对消息含义的简短提示
symbol: method addGap(int,int) //the symbol that is searched for
location: class Alignment //the symbol (method) is searched in class Alignment or its class hierarchy
MainPageTypo.java:28: cannot find symbol //the compiler cant find the symbol stated above which is used at line 28 in file MainPageTypo.java
logoPanel.setVerticalGroup((GroupLayout.Alignment.BASELINE).addGap(100,100)); // this is the content of line 28
答案 1 :(得分:3)
我建议您也将代码段更正为正确的表单,该表单位于您提供的代码中。
从我看到你得到的结果:
IllegalStateException: Baseline must be used along vertical axis
这意味着无法在基线上创建第一个并行组,例如更改它领先。 它编译。</ p>