- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
不确定为什么会出现此错误。我正在使用 GroupLayout,因为我希望它为我设置间距,并且将来会在框架中添加更多面板。下面是堆栈跟踪。
Exception in thread "main" java.lang.IllegalArgumentException: GroupLayout can only be used with one Container at a time
at javax.swing.GroupLayout.checkParent(Unknown Source)
at javax.swing.GroupLayout.invalidateLayout(Unknown Source)
at java.awt.Container.invalidate(Unknown Source)
at java.awt.Component.addNotify(Unknown Source)
at java.awt.Container.addNotify(Unknown Source)
at javax.swing.JComponent.addNotify(Unknown Source)
at java.awt.Container.addNotify(Unknown Source)
at javax.swing.JComponent.addNotify(Unknown Source)
at java.awt.Container.addNotify(Unknown Source)
at javax.swing.JComponent.addNotify(Unknown Source)
at javax.swing.JRootPane.addNotify(Unknown Source)
at java.awt.Container.addNotify(Unknown Source)
at java.awt.Window.addNotify(Unknown Source)
at java.awt.Frame.addNotify(Unknown Source)
at java.awt.Window.pack(Unknown Source)
at client.AlternateGUI.drawGui(AlternateGUI.java:54)
at client.AlternateGUI.main(AlternateGUI.java:24)
代码如下:
package client;
import java.awt.Component;*
public class AlternateGUI {
private JList people;
private DefaultListModel dlm;
private JLabel l1, l2, l3;
private JFrame alternateGUIFrame;
private final static ImageIcon unavailableIcon = new ImageIcon("offline.png");
public static void main(String[] args)
{
AlternateGUI ls = new AlternateGUI();
ls.drawGui();
}
public AlternateGUI(){
dlm = new DefaultListModel();
people = new JList(dlm);
alternateGUIFrame = new JFrame();
JScrollPane peopleScroller = new JScrollPane(people, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
people.setCellRenderer(new CellRenderer());
GroupLayout alternateGUILayout = new GroupLayout(alternateGUIFrame);
alternateGUIFrame.setLayout(alternateGUILayout);
alternateGUILayout.setAutoCreateGaps(true);
alternateGUILayout.setAutoCreateContainerGaps(true);
alternateGUILayout.setHorizontalGroup(alternateGUILayout.createSequentialGroup()
.addComponent(peopleScroller));
alternateGUILayout.setVerticalGroup(alternateGUILayout.createSequentialGroup()
.addComponent(peopleScroller));
}
public void drawGui() {
l1 = new JLabel("Hi", unavailableIcon , JLabel.LEFT);
l2 = new JLabel("Hello", unavailableIcon , JLabel.LEFT);
l3 = new JLabel("Bye", unavailableIcon , JLabel.LEFT);
dlm.addElement(l1);
dlm.addElement(l2);
dlm.addElement(l3);
alternateGUIFrame.pack();
alternateGUIFrame.setVisible(true);
}
class CellRenderer implements ListCellRenderer
{
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus)
{
Component com = (Component)value;
return com;
}
}
}
最佳答案
您的问题是您在不知不觉中将布局添加到 JFrame 及其 contentPane。解决方案是确保仅将它添加到 JFrame 的 contentPane 中:
GroupLayout alternateGUILayout = new GroupLayout(alternateGUIFrame.getContentPane());
alternateGUIFrame.getContentPane().setLayout(alternateGUILayout);
最重要的是上面的第一行。
另一种选择是使用 JPanel,然后将 JPanel 添加到 JFrame 的 contentPane 的默认 BorderLayout.CENTER 位置。
关于java - GroupLayout 一次只能与一个容器一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13533982/
我正在学习 Swings,我对这一行感到困惑 GroupLayout layout=new GroupLayout(getContentPane()); 现在我有两个问题 getContentPane
我正在尝试使用 NetBeans 7.0 中的 GroupLayout,但我根本无法选择它。我确实去了 Properties/Libraries/Wrapped JARs/swing-layout-1
我正在使用 SWING 创建一个 Java 应用程序作为 UI。我对 LayoutManager 的选择是 GroupLayout,但现在我遇到了组件问题。 基本布局由三列和两行组成(有嵌套行,如下面
public class Grouplayout implements Runnable { public static void main(String[] args) { SwingUti
public static class MyDictionaryFrame extends JFrame { public MyDictionaryFrame() { JLab
就像您在图片中看到的那样,复选框不在行中。如何将它们放在标签和组合框所在的行中?复选框激活在数据库中搜索值的能力。在代码中,复选框被命名为“MesswerBox[number]”。 G
这里我添加了按钮,但没有一个按钮显示在我的框架上另外,当我单独添加按钮时,它们会相互重叠我应该怎么办有人可以在我的代码中发现问题吗我被推荐到这个网站:https://weblogs.java.net/
最左边的列是我在这里引用的内容: 大约一周前,我说服我爸爸放弃 Windows 10,转而使用 Linux Mint。考虑到他多么喜欢简单的界面,到目前为止,转变相当坎坷。他不愿意使用命令行,所以我花
我一直在尝试制作一个程序,允许用户创建可以使用 JSliders 设置的颜色的正方形和圆形。我正在尝试使用 GroupLayout 来设置它,但它没有按照它看起来应该的方式工作。 我希望圆形、方形和颜
我正在尝试创建一个扫雷类型的游戏,并围绕顶部的 GridLayout 和底部的 JPanel 设计了界面。我在底部的信息面板上安排 JComponents 时遇到问题。我正在使用 GroupLayou
我有一个包含按钮的 JScrollPane。我需要两组这样的按钮。 *-----------------------------------------------* | Button 1 |
组件应该这样布局: (A) +--------------------+ |标签1 文本字段1 | |标签2文本字段2 | |标签3 文本字段3 | +--------------------+ 但是
我一直在使用 GridBagLayout,但最近转向了 GroupLayout。下面是我拥有的和我需要的屏幕截图。然后是代码。 我需要改变什么? 我有什么 我需要什么 我认为我应该使用 TRAILIN
我在根据需要在 Java 中设置 GroupLayout 时遇到问题。 我的代码如下。组件的理想位置是: +++++++++++++++++++++++++++++++++++++++++++++++
我正在尝试创建一个前面带有 GroupLayout 的小型 Jpanel。关注了documentation尽可能多地查看了一些 StackOverflow 问题,我仍然被困住了。 错误如下: Exce
不确定为什么会出现此错误。我正在使用 GroupLayout,因为我希望它为我设置间距,并且将来会在框架中添加更多面板。下面是堆栈跟踪。 Exception in thread "main" java
对于我正在制作的计算器应用程序的 GUI,我有一个 JButton 对象网格,其中所有对象的大小相同,除了一个的宽度是其他对象的两倍。它应该看起来像这样(除了线条是直的): 我的第一个想法是定义 JB
我正在尝试创建一个类,它扩展 JFrame 并使用 GroupLayout,但我找不到如何做到这一点。对于 JPanel 来说非常简单: GroupLayout layout=new GroupLay
在许多情况下,GroupLayout 可能包含具有简单结构的片段。例如,编写类似 AlignedStack 对象的东西似乎是明智的,该对象允许用户将一堆组件/组/间隙组合在一起,构成左/中/右对齐的垂
我的 GroupLayout 有问题。我的代码是: public chat () { JTextField chatbox; JTextField msgbox;
我是一名优秀的程序员,十分优秀!