用JAVA,Swing做的一个简单窗口,为什么两个按钮显示在Panel1里啊。。我设置的是显示在Panel2里面啊在线等

2024-11-29 18:51:52
推荐回答(4个)
回答1:

是显示在panel2里的,因为你的JFrame窗口使用的是默认的布局方式,也就是BorderLayot布局,而且你没有指定JPanel添加的位置,所以,panel2吧panel1覆盖了而已。

回答2:

调用各种add方法之前不设置布局是不好滴……切记

回答3:

这两个Button的确是在Panel2中,看着似乎是在Panel1中,是因为Panel1这个背景色覆盖了Panel2。你可以先把Panel1给去掉,看看效果,再测试测试。

回答4:

package test;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Test extends JFrame {
private JPanel panel1, panel2;
private JButton zx, lx;
public Test() {
panel1 = new JPanel();
panel2 = new JPanel();
zx = new JButton();
lx = new JButton();
zx.setText("照相");
lx.setText("录像");
FlowLayout f = new FlowLayout();
f.setHgap(0);
f.setVgap(0);
this.setLayout(f);

panel1.setBackground(Color.blue);
panel1.setPreferredSize(new Dimension(640,400));

panel2.setBackground(Color.green);
panel2.setPreferredSize(new Dimension(640,80));
panel2.add(lx);
panel2.add(zx);

this.add(panel1);
this.add(panel2);
this.setSize(640, 480);
this.setLocation(300, 260);
this.setLocationRelativeTo(null);
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}