Java中设置JPanel自定义布局,可通过设置空布局即绝对布局来实现,代码如下:
package menu;
import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class JPanelTest extends JFrame {
private static final long serialVersionUID = -6740703588976621222L;
public JPanelTest() {
super("布局测试");
Container c = this.getContentPane();
c.add(getJButton());
this.setSize(600, 300);
this.setUndecorated(false);
this.setLocationRelativeTo(null);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public JPanel getJButton() {
JPanel jP = new JPanel();
jP.setOpaque(false);
jP.setLayout(null);// 设置空布局,即绝对布局
JButton jButton1 = new JButton("测试1");
jButton1.setBounds(100, 60, 85, 35);// 设置位置及大小
jP.add(jButton1);
JButton jButton2 = new JButton("测试2");
jButton2.setBounds(400, 60, 85, 35);// 设置位置及大小
jP.add(jButton2);
JButton jButton3 = new JButton("测试3");
jButton3.setBounds(250, 150, 85, 35);// 设置位置及大小
jP.add(jButton3);
return jP;
}
public static void main(String[] args) {
new JPanelTest();
}
}
其中,关键语句为以下两条:
jP.setLayout(null);// 设置空布局,即绝对布局
jButton1.setBounds(100, 60, 85, 35);// 设置位置及大小
记住,设置了空布局后,一定要在小组件上设置位置,否则在JPanel上显示不了。
希望对你有所帮助,欢迎订阅我的博客!