当前位置: 首页 > 面试题库 >

如何将多个组件添加到JFrame?

罗翰
2023-03-14
问题内容

我有一个 JFrame

我也有一个 Box 类,它扩展了 Component 。该box类具有一个 paint 方法,该方法可以创建一个填充的矩形。

当我将这些Box组件的多个添加到我的JFrame时,当我在JFrame上调用 重绘 时,仅显示最近添加的一个。

我看了一下布局管理器,但是我不确定那不是我想要的。我所希望的是能够在屏幕上的任何位置制作整个矩形的动画。

(我还尝试创建一个面板,将该面板添加到JFrame中,然后将所有Box组件添加到该面板中。这也不起作用)。

提前致谢!


问题答案:

您有2个选择。

您可以更改框架的布局:

JFrame frame;
frame.setLayout(new FlowLayout());

现在,如果添加多个框,它将显示在框架上。

另一个选择是按照您说的尝试去做。(向面板添加面板)

JPanel pane = new JPanel();
frame.add(pane);
(add the boxes to 'pane')

另外,您应谨慎选择的大小Box。您可能需要setPreferredSize()在创建时呼叫到某个地方Box。这将告诉Java将框添加到布局时要使框变大的大小。

您还应该看看Java Layout
Manager教程
。那里有很多很棒的信息。

还有一件事情。一次只在框上显示一个框的原因是因为JFrame的布局管理器是BorderLayout。并且,当您调用add具有BorderLayout的组件时,该组件会自动添加到组件的中心。随后的调用add将覆盖中心组件,中间仅保留一个组件。



 类似资料:
  • 我是ReactJS和JSX的新手,我对下面的代码有一点问题。 我正在尝试向每个上的属性添加多个类: 我的React组件是:

  • 我有两件事情要做:在鼠标悬停时突出显示JPanel,在鼠标拖动时移动一个蓝色方块。问题是,这需要我将MouseListeners添加到不同的组件中。当我这样做时,我只能使用一个功能——另一个被阻止了。我该怎么做才能让两个功能都工作? 注意:有时候JFrame不会显示任何东西——你只需要一直运行它,直到它显示为止(通常需要2-3次尝试)。如果它做了任何其他奇怪的事情,就继续运行它,直到它工作。如果之

  • 问题内容: 我是ReactJS和JSX的新手,下面的代码有一些问题。 我试图将多个类添加到每个属性: 我的React组件是: 问题答案: 当确定(不)使用的类需要大量逻辑时,我使用类名。一个 过于简单的例子 : 就是说,如果您不想包含依赖项,那么下面会有更好的答案。

  • 问题内容: 我是ReactJS和JSX的新手,下面的代码有一些问题。 我试图将多个类添加到每个属性: 我的React组件是: 问题答案: 当确定(不)使用的类需要大量逻辑时,我使用类名。一个 过于简单的例子 : 就是说,如果您不想包含依赖项,那么下面会有更好的答案。

  • 我在边框的中心有一个标题栏。对于链接哈希图中的每个条目,我想在标题栏中添加一个按钮。这个标题栏已经存在于fxml文件中,并且具有fx: id field dContainer。 如果一次添加一个键值对,按钮将一个接一个出现。但是,当我试图通过从文本文件导入链接的hashmap一次添加它们时,按钮不会出现。它将加载一个条目,然后抛出nullpointerexception。 导入文本文件和将条目添加

  • 我正在学习JSwing,我发现了GridBagLayout。 我试图创建一个简单的计算器,我添加了多个JPanel设置每个首选大小,但当我调整窗框大小时,面板也不会调整大小。然后我发现了Gridbag的布局。 但我得到的是:GridBagLayout的计算器错误 } 应该是这样的:正确的计算器 我试过: 要锚定。。。但它不起作用, 创建多个JPanel(一个带有GridLayout),但不起作用