Java 以JFrame形式创建对象

Java 以JFrame形式创建对象,java,swing,jframe,awt,layout-manager,Java,Swing,Jframe,Awt,Layout Manager,我在netbeans的包中创建了一个jFrame表单。该项目没有主类。我在调色板上放置了一个按钮。以下是按钮的代码: int x = jButton1.getHorizontalAlignment(); int y = jButton1.getVerticalAlignment(); JButton button2=new JButton(); button2.setBounds(200, 200, 100, 100); bu

我在netbeans的包中创建了一个jFrame表单。该项目没有主类。我在调色板上放置了一个按钮。以下是按钮的代码:

 int x = jButton1.getHorizontalAlignment();
 int y = jButton1.getVerticalAlignment();
     JButton button2=new JButton();              
     button2.setBounds(200, 200, 100, 100);    
     button2.setVisible(true);
第二个按钮将不显示。为什么? 稍后将使用x和y进行相对定位。 除了在.setBounds()的坐标参数中的x+和y+之外,我还想知道如何做到这一点

第二个按钮将不显示。为什么?

因为您尚未将该按钮添加到
JPanel

我还想知道除了x+什么和 y+在.setBounds()的坐标参数中的某个值

要使setBounds起作用,您需要将容器的布局设置为null,这是非常糟糕的做法。因为,它降低了应用程序跨平台的可移植性,而且必须使用setBounds维护代码。您应该让swing内置布局来完成它的工作。请看这里:

第二个按钮将不显示。为什么?

因为您尚未将该按钮添加到
JPanel

我还想知道除了x+什么和 y+在.setBounds()的坐标参数中的某个值


要使setBounds起作用,您需要将容器的布局设置为null,这是非常糟糕的做法。因为,它降低了应用程序跨平台的可移植性,而且必须使用setBounds维护代码。您应该让swing内置布局来完成它的工作。看看这里:

1)您需要将按钮添加到JFrame的内容窗格还是JPanel?2) 不要使用setBounds(),除非你只是在胡闹。相反,用布局管理器定位小部件,让它们设置确切的大小和位置。@7stud我正试图将按钮添加到对象窗格中。如何使用布局管理器在相对位置创建对象?我同意@7stud的观点,即您应该学习和使用布局管理器,但您可能会发现,从一些更易于使用的布局(如BorderLayout、BoxLayout、GridLayout)开始比从GridBagLayout开始更容易,因为后者可能有点复杂。请记住,您可以嵌套JPanel,每个都使用自己的布局,从而使用简单的布局管理器来创建复杂的组件布局。Java GUI可能必须在多种平台上工作,使用不同的屏幕分辨率&使用不同的PLAF。因此,它们不利于部件的精确放置。要组织组件以获得健壮的GUI,请使用布局管理器或它们的组合,以及空白区域的布局填充和边框。要获得布局组件的最佳帮助,请展示GUI应如何显示最小大小和(如果可调整大小)的ASCII艺术添加额外宽度和高度后的外观。1)是否需要将按钮添加到JFrame的内容窗格或JPanel?2) 不要使用setBounds(),除非你只是在胡闹。相反,用布局管理器定位小部件,让它们设置确切的大小和位置。@7stud我正试图将按钮添加到对象窗格中。如何使用布局管理器在相对位置创建对象?我同意@7stud的观点,即您应该学习和使用布局管理器,但您可能会发现,从一些更易于使用的布局(如BorderLayout、BoxLayout、GridLayout)开始比从GridBagLayout开始更容易,因为后者可能有点复杂。请记住,您可以嵌套JPanel,每个都使用自己的布局,从而使用简单的布局管理器来创建复杂的组件布局。Java GUI可能必须在多种平台上工作,使用不同的屏幕分辨率&使用不同的PLAF。因此,它们不利于部件的精确放置。为了组织一个健壮的GUI组件,请使用布局管理器或它们的组合,以及空白区域的布局填充和边框。要获得布局组件的最佳帮助,请展示ASCII艺术,说明GUI在最小尺寸时的外观,以及(如果可以调整大小)添加额外宽度和高度后的外观。我还没有添加JPanel。我仍然尝试使用JPanel.add()函数。它要求我给返回变量赋值。单击该按钮,我将看到组件add=JPanel.add(按钮2);这仍然会给出错误的答案。@DeeparthGupta:你的问题表明你正在尝试编程Swing,而没有先阅读一两篇教程。请停止猜测,阅读教程,否则你会有一个非常令人沮丧的经历。@Hovercraft Of Eels:我想我应该这样做,因为他们在学校教的东西没有涵盖这一点。有什么好的教程可以推荐吗?请看&特别是。我还没有添加JPanel。我仍然尝试使用JPanel.add()函数。它要求我给返回变量赋值。单击该按钮,我将看到组件add=JPanel.add(按钮2);这仍然会给出错误的答案。@DeeparthGupta:你的问题表明你正在尝试编程Swing,而没有先阅读一两篇教程。请停止猜测,阅读教程,否则你会有一个非常令人沮丧的经历。@Hovercraft Of Eels:我想我应该这样做,因为他们在学校教的东西没有涵盖这一点。有什么好的教程可以推荐吗?请参阅&特别是。