1级
public class mainclass extends JFrame{
public static void main(String[] args){
JFrame jf = new mainclass();
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
jf.setSize(new Dimension(720, 480));
jf.getContentPane().setLayout(null);
}
public mainclass(){
components c = new components();
Box b = new Box(BoxLayout.Y_AXIS);
for(int i = 0; i < c.size(); i++){
System.out.println(c.get(i).getWidth());
b.add(c.get(i));
}
getContentPane().add(b);
}
}
2级
public class components extends ArrayList<Component>{
public components(){
JButton b = new JButton("Quit");
b.setBounds(10, 10, 200, 200);
b.setVisible(true);
this.add(b);
}
}
应将 JButton 添加到框中,该框添加到 JFrame 中但没有布局。为什么按钮没有出现?
最佳答案
使用空布局和绝对定位是在搬起石头砸自己的脚。
- 您为 JFrame 提供了空布局
- 然后向其中添加一个组件,但不指定其大小或位置(盒子),因此它将具有大小 (0, 0)。
- 避免使用空布局
- 学习并使用布局管理器,因为它们将帮助您轻松创建平衡良好的 GUI。
我认为您最好描述一下您想要实现的结构。另外,我会避免创建扩展集合的类,例如 ArrayList。相反,在这种情况下,通过组合而不是继承来增强会更好。
关于Java JFrame/JButton/Box - 没有按钮出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19339175/