您好,感谢您提前回复。我是使用Java编程的初学者,并决定使用几个按钮创建一个基本的J Frame。我正在努力解决这个问题,以及何时在继续下一步之前弄清楚它。下面我写了一些J框架的代码,我将两个按钮放在我想要的位置,但是当我添加第二个按钮时,它重叠在第一个按钮上。我想知道我是否正在以正确的方式接近这个以及我如何改进它。
Frame guiWindow = new Frame();
JPanel pnlButton = new JPanel();
JButton btnAdd = new JButton("A");
JPanel pnlButton2 = new JPanel();
JButton btnAdd2 = new JButton("B");
public Frame1() {
//Button 1
pnlButton.setLayout(null);
btnAdd.setBounds(40, 300, 100, 50);
pnlButton.setBounds(40, 300, 50, 50);
pnlButton.add(btnAdd);
add(pnlButton);
//Button2
pnlButton2.setLayout(null);
btnAdd2.setBounds(260, 300, 100, 50);
pnlButton2.setBounds(260, 300, 100, 50);
pnlButton2.add(btnAdd2);
add(pnlButton2);
setSize(400, 400);
setTitle("Pratice");
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
}
答案 0 :(得分:0)
好的,你是新手,这对于为什么会这样发生是完全可以理解的。首先要知道的是,当你将JPanel添加到JFrame中时;除非您正在进行某种定位或需要某些东西,否则您只需添加一个JPanel。这可能是它重叠的原因。您试图添加一个东西,然后在同一个区域添加另一个东西。您需要做的就是取出pnlButton2,并使用pnlButton作为添加按钮的主要方式:)您还可以使用名为GridLayout的布局管理器。这可能是非常令人困惑的事情,但我可以解释一下:
GridLayout是一种在JFrame或包含项目的任何类型的帧上创建网格效果的方法。它会将您的按钮与您选择的大小的网格对齐。
这是一个帮助解释更多信息的链接:GridLayout - Oracle Java Helper
但是这里有一些代码来解释我在谈论JPanels和东西时所说的内容:)
希望我帮助你,并没有让你迷惑
Frame guiWindow = new Frame();
JPanel pnlButton = new JPanel();
JButton btnAdd = new JButton("A");
//JPanel pnlButton2 = new JPanel(); not needed :)
JButton btnAdd2 = new JButton("B");
public Frame1() {
//Button 1
pnlButton.setLayout(null);
btnAdd.setBounds(40, 300, 100, 50);
pnlButton.setBounds(40, 300, 50, 50);
pnlButton.add(btnAdd);
pnlButton.add(btnAdd2); // see how we add the second button?
add(pnlButton);
/* remove this section
//Button2
pnlButton2.setLayout(null);
btnAdd2.setBounds(260, 300, 100, 50);
pnlButton2.setBounds(260, 300, 100, 50);
pnlButton2.add(btnAdd2);
add(pnlButton2);
*/
setSize(400, 400);
setTitle("Pratice");
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}