这让我非常生气,我已经工作了2天,打开了2本书并仔细阅读了这些书,但STILL无法使该程序按照我想要的方式运行。我要指出的是,如果这无济于事,我会退出。

我想要一个SIMPLE Frame应用程序。 它在顶部居中有一个JComboBox。 它旁边是一个足以显示数字的文本字段,例如“ $ 49.99” 在其下方是用于显示服务条款的文本区域的位置 下方是同意服务条款的复选框 在其下方是2个按钮“接受”和“拒绝”

我已经处理了2天,这是代码: 通用标签

编辑: 忘记添加第二个程序 通用标签

如何获取所有内容并显示?因此,我感到非常困惑,现在几乎什至无法了解Frames的工作原理。

有帮助吗?

解决方案

Swing中的组件必须以一定顺序布置。

从JFrame开始。放置在JFrame中的唯一组件是JMenuBar和JPanel。您没有在JFrame中添加任何其他组件。您可以在JPanel中添加组件。

这里是Nick的代码,经过重新组织以按正确的顺序定义组件。我使用GridLayout是因为它更快。正如Nivas所说,您应该使用GridBagLayout。 通用标签

我将JMenuBar代码移到了自己的方法中,因此,希望其余代码更易于理解。

我有一个主JPanel,所有其他组件都已添加到其中。

我使用了另一个JPanel来容纳两个JLabel和JButton。

我使用了第三个JPanel来容纳JComboBox。

基本模式如下:

  • 定义JPanel。
  • 定义组件。
  • 将组件添加到JPanel。
  • 将JPanel添加到主JPanel
  • 将主JPanel添加到JFrame。

其他提示

尼克。我认为您必须清除的第一件事是确切地知道您想要什么。

我在这个问题上为您提供了帮助 https://stackoverflow.com/questions/3055777/how-to -...

根据您的描述,您已经拥有了所需的东西。这是怎么回事:

”

因此,我真的认为您应该清楚地描述想要的东西,以便得到它。

我们会为您提供帮助,但是您必须明确定义问题所在。

1。您的第二个程序将无法编译。您正在尝试将JFrame分配给JPanel。

应该是 通用标签

2。有用。您想要的在那里。但不是您想要的那样,因为您没有告诉java您希望它如何显示。尝试像 LayoutManager http://java.sun.com/docs/books/tutorial/uiswing/layout/gridbag.html“ rel=” nofollow noreferrer“> GridBagLayout 。

如果您急于创建GUI,请尝试使用NetBeans这样的IDE,通过拖放操作使您的工作更轻松。

编辑:

一个例子: 通用标签

免责声明:这是一个基本示例,仅举一个例子。并不是生产代码;-)

您有: 通用标签

每个Bar对象都继承自JFrame对象(即Bar对象是一种JFrame类型),但是您在构造函数中传入了一个不同的JFrame对象(frame参数)。然后,您可以在Bar对象上调用某些方法(例如,添加两个JLabel对象),并在传入的JFrame上调用某些方法,例如setVisiblesetSize方法。

因此,您有两个不同的JFrame对象,并对它们进行了一些工作,并且只有其中一个设置为可见。

您将JFrame传递给构造函数的唯一原因似乎是设置窗口的标题。如果您将带有标题的String传递给Bar构造函数,然后将super(title);称为Bar构造函数的第一行,那么您根本不需要传入的JFrame

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top