Java 将JButton置于定义的位置
我有一个问题,我在许多主题上搜索了如何在一个定义了位置的JPanel上放置JButton。我找到的最新答案是,我应该显示JFrame的布局,并将其设置为null,所以下面是我的代码。但问题是,当我将布局设置为null时,任何东西都不再起作用Java 将JButton置于定义的位置,java,swing,jframe,jpanel,jbutton,Java,Swing,Jframe,Jpanel,Jbutton,我有一个问题,我在许多主题上搜索了如何在一个定义了位置的JPanel上放置JButton。我找到的最新答案是,我应该显示JFrame的布局,并将其设置为null,所以下面是我的代码。但问题是,当我将布局设置为null时,任何东西都不再起作用 package loto; import javax.swing.JFrame; import javax.swing.JButton; public class Accueil extends JFrame{ public Accueil(){
package loto;
import javax.swing.JFrame;
import javax.swing.JButton;
public class Accueil extends JFrame{
public Accueil(){
this.setTitle("Accueil du loto");
this.setSize(1920,1080);
this.setLocationRelativeTo(null);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fond pan = new fond();
JButton suivant = new JButton("Commencer le Loto");
pan.setLayout(null);
pan.add(suivant);
suivant.setBounds(1800, 400, 40, 300);
this.setContentPane(pan);
while (true) {
this.repaint();
}
}
}
当你刚开始荡秋千的时候,你必须一步一步走
从构造函数中删除while循环 使用空布局,您必须为JButton设置大小和位置,如下所示:
suivant.setSize(120,20);
suivant.setLocation(x,y);
这是因为您将布局设置为空。不要这样做。layoutmanager将为您进行布局。简单的一个是BorderLayouth看看,加上这段代码没有任何用处:
while(true){this.repaint();}
,因为它有可能冻结您的GUI,使其变得无用。“…当我将布局设置为null时,任何东西都不起作用了。”是的。这就是没有经验丰富的开发人员会向新手推荐它们的原因之一。提供最小尺寸的ASCII艺术或GUI预期布局的简单绘图,如果可以调整大小,则具有更大的宽度和高度。顺便说一句-this.setSize(19201080)
在许多桌面计算机设置中,这听起来似乎接近“全屏”。如果这是目标,我建议..我可能不知道怎么做,但如果设置布局为边框,我的按钮将放置在中心或基数。我还没有找到一种方法来设置JButton与BorderLayout之间所需的协调。是的,这是全屏的目标。谢谢,我会尽可能地尝试它。流程布局允许我将JButton放在任何我想要的地方吗?不。FlowLayout通常按从左到右的顺序放置组件。对于测试,我使用了FlowLayout。一旦为FlowLayout显示组件,您必须更改setLayout(null)和setBounds(x、y、宽度、高度)以将组件固定在特定位置。我保留了null布局,但它现在可以工作:)谢谢。我刚刚加了这个;在平底锅前添加(JButton);