JAVA布局基础正确源代码

本文介绍了使用Java Swing库创建简单界面的方法,并详细说明了如何使用流式布局、边界布局和网格布局来组织界面组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一个:
import java.awt.*;
import javax.swing.*;

public class frame1 extends JFrame{  
    JButton jb = null;  
    public frame1(){  
        jb = new JButton("按钮"); // 新建按钮  
        this.add(jb); // 把按钮放入框体  
        this.setTitle("我的第一个界面!"); // 设置主题  
        this.setSize(300, 300); // 设置框体大小  
        this.setLocation(400,150); //设置框体显示的位置  
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置框体退出  
        this.setVisible(true); // 显示框体  
    }  
    public static void main(String[] args) {  
        frame1 f = new frame1();  
    }  
}  


 第二个:

import java.awt.*;  
import javax.swing.*;  
/* 
 * 边界布局 
 */  
public class frame2 extends JFrame{  
    JButton jb1,jb2,jb3,jb4,jb5;  
    public frame2() {  
        // 创建组件  
        jb1 = new JButton("中部");  
        jb2 = new JButton("东部");  
        jb3 = new JButton("南部");  
        jb4 = new JButton("西部");  
        jb5 = new JButton("北部");  
        // 添加组件  
        this.add(jb1,BorderLayout.CENTER);  
        this.add(jb2,BorderLayout.EAST);  
        this.add(jb3,BorderLayout.SOUTH);  
        this.add(jb4,BorderLayout.WEST);  
        this.add(jb5,BorderLayout.NORTH);  
        // 框体  
        this.setTitle("边界布局!"); // 设置主题  
        this.setSize(300, 300); // 设置框体大小  
        this.setLocation(400,150); //设置框体显示的位置  
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置框体退出  
        this.setVisible(true); // 显示框体  

    }  
    public static void main(String[] args) {  
        frame2 f = new frame2();  
    }  
}  

第三个:

//流式布局  
package 图形;  
import java.awt.*;  

import javax.swing.*;  
public class frame3 extends JFrame{  
    JButton jb1,jb2,jb3,jb4,jb5;  

    public frame3() {  
        jb1 = new JButton("关羽");  
        jb2 = new JButton("张飞");  
        jb3 = new JButton("赵云");  
        jb4 = new JButton("马超");  
        jb5 = new JButton("魏延");  
        //添加组件   
        this.add(jb1);  
        this.add(jb2);  
        this.add(jb3);  
        this.add(jb4);  
        this.add(jb5);  
        //设置布局管理器  
        this.setLayout(new FlowLayout(FlowLayout.LEFT));  
        //this.setLayout(null);  
        //框体  
        this.setTitle("流式布局"); // 设置主题  
        this.setSize(300, 300); // 设置框体大小  
        this.setLocation(400,150); //设置框体显示的位置  
        // 禁止用户改变窗体大小  
        this.setResizable(false);  
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置框体退出  
        this.setVisible(true); // 显示框体  
    }  

    public static void main(String[] args) {  
        frame3 f = new frame3();  
    }  
}  

第四个:

package 图形;  

import javax.swing.*;  

import java.awt.*;  

public class frame4 extends JFrame{  
    int size = 9;  
    JButton jb[] = new JButton[size]; // 组件采用数组表示  
    public frame4() {  
        for(int i=0;i<size;i++){   
            jb[i] = new JButton(String.valueOf(i)); // 创建组件  
        }  
        this.setLayout(new GridLayout(3,3,10,10)); // 创建网络布局 3 X 3 , 组件之间的缝隙相隔10, 10  
        for(int i=0;i<size;i++){  
            this.add(jb[i]); // 往布局中添加组件  
        }  
        // 框架  
        this.setTitle("网络布局"); // 设置主题  
        this.setSize(300, 300); // 设置框体大小  
        this.setLocation(400,150); //设置框体显示的位置  
        // 禁止用户改变窗体大小  
        this.setResizable(false);  
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置框体退出  
        this.setVisible(true); // 显示框体  
    }  
    public static void main(String[] args) {  
        frame4 f = new frame4();  
    }  
}  

第五个:

package 图形;  
import java.awt.*;  
import java.util.concurrent.BrokenBarrierException;  

import javax.swing.*;  
public class frame5 extends JFrame{  
    JPanel jp1,jp2;  
    JButton jb1,jb2,jb3,jb4,jb5,jb6;  
    public frame5() {  
        // TODO Auto-generated constructor stub  
        // JPanel默认的布局是流式布局  
        jp1 = new JPanel();  
        jp2 = new JPanel();  
        // 构造组件  
        jb1 = new JButton("西瓜");  
        jb2 = new JButton("苹果");  
        jb3 = new JButton("橘子");  
        jb4 = new JButton("白菜");  
        jb5 = new JButton("萝卜");  
        jb6 = new JButton("葡萄");  
        //设置布局   使用JPanel  
        jp1.add(jb1);  
        jp1.add(jb2);  
        jp2.add(jb3);  
        jp2.add(jb4);  
        jp2.add(jb5);  
        //添加组件  
        this.add(jp1,BorderLayout.NORTH);  
        this.add(jb6,BorderLayout.CENTER);  
        this.add(jp2,BorderLayout.SOUTH);  
        // 框架  
        this.setTitle("多个流式布局"); // 设置主题  
        this.setSize(300, 300); // 设置框体大小  
        this.setLocation(400,150); //设置框体显示的位置  
        // 禁止用户改变窗体大小  
        this.setResizable(false);  
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置框体退出  
        this.setVisible(true); // 显示框体  

    }  
    public static void main(String[] args) {  
        frame5 r = new frame5();  
    }  
}  

第六个:

package 图形;  
import java.awt.*;  

import javax.swing.*;  

public class frame6 extends JFrame{  
    JPanel jp1,jp2,jp3; // 流式布局  
    JLabel jlb1,jlb2; // 标题  
    JTextField jtf1; // 文本框  
    JPasswordField jpf1; // 密码框  
    JButton jb1,jb2; // 按钮  
    public frame6() {  
        // TODO Auto-generated constructor stub  
        jp1 = new JPanel();  
        jp2 = new JPanel();  
        jp3 = new JPanel();  

        jlb1 = new JLabel("用户名");  
        jlb2 = new JLabel("密     码");  

        jb1 = new JButton("确定");  
        jb2 = new JButton("取消");  

        jtf1 = new JTextField(15);  
        jpf1 = new JPasswordField(15);  
        // 设置布局  
        this.setLayout(new GridLayout(3,1));  

        jp1.add(jlb1);  
        jp1.add(jtf1);  

        jp2.add(jlb2);  
        jp2.add(jpf1);  

        jp3.add(jb1);  
        jp3.add(jb2);  

        this.add(jp1);  
        this.add(jp2);  
        this.add(jp3);  

        // 框架  
        this.setTitle("多个流式布局"); // 设置主题  
        this.setSize(300, 150); // 设置框体大小  
        this.setLocation(400,150); //设置框体显示的位置  
        // 禁止用户改变窗体大小  
        this.setResizable(false);  
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置框体退出  
        this.setVisible(true); // 显示框体  

    }  
    public static void main(String[] args) {  
        frame6 f = new frame6();  
    }  
}  

第六个:

package 图形;  
import java.awt.*;  

import javax.swing.*;  
public class frame7 extends JFrame{  
    JButton jb1,jb2; // 按钮  
    JLabel jlb1,jlb2; // 标题  
    JCheckBox jcb1,jcb2,jcb3; // 复选建********  
    JRadioButton jrb1,jrb2; // 单选键********  
    JPanel jp1,jp2,jp3; // 流式布局  

    public frame7() {  
        // TODO Auto-generated constructor stub  
        jb1 = new JButton("注册用户");  
        jb2 = new JButton("取消注册");  

        jlb1 = new JLabel("你喜欢的运动");  
        jlb2 = new JLabel("你的性别");  

        jcb1 = new JCheckBox("足球");  
        jcb2 = new JCheckBox("篮球");  
        jcb3 = new JCheckBox("网球");  

        jrb1 = new JRadioButton("男");  
        jrb2 = new JRadioButton("女");  

        jp1 = new JPanel();  
        jp2 = new JPanel();  
        jp3 = new JPanel();  

        ButtonGroup bg = new ButtonGroup();  
        bg.add(jrb1);  
        bg.add(jrb2);  

        this.setLayout(new GridLayout(3,1));  
        jp1.add(jlb1);  
        jp1.add(jcb1);  
        jp1.add(jcb2);  
        jp1.add(jcb3);  

        jp2.add(jlb2);  
        jp2.add(jrb1);  
        jp2.add(jrb2);  

        jp3.add(jb1);  
        jp3.add(jb2);  

        this.add(jp1);  
        this.add(jp2);  
        this.add(jp3);  

        // 框架  
        this.setTitle("多个流式布局"); // 设置主题  
        this.setSize(300, 150); // 设置框体大小  
        this.setLocation(400,150); //设置框体显示的位置  
        // 禁止用户改变窗体大小  
        this.setResizable(false);  
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置框体退出  
        this.setVisible(true); // 显示框体  
    }  
    public static void main(String[] args) {  
        frame7 f = new frame7();  
    }  
}  

第七个:

package 图形;  
import java.awt.*;  

import javax.swing.*;  
public class frame8 extends JFrame{  
    // 定义  
    JPanel jp1,jp2;   
    JLabel jlb1,jlb2;  
    JComboBox jcb1; // 下拉框组件  
    JList jlist; // 列表框组件  
    JScrollPane jsp; // 滚动窗格组件  
    public frame8() {  
        // TODO Auto-generated constructor stub  
        jp1 = new JPanel();  
        jp2 = new JPanel();  

        jlb1 = new JLabel("你的籍贯");  
        jlb2 = new JLabel("旅游地点");  

        String []jg = {"北京","上海","杭州","深圳"};  
        jcb1 = new JComboBox(jg);  

        String []jd = {"故宫","长城","长白山","庐山","龙虎山","武功山"};  
        jlist = new JList(jd);  
        //设置显示的个数  
        jlist.setVisibleRowCount(3);  
        jsp = new JScrollPane(jlist);  

        this.setLayout(new GridLayout(2,1));  
        jp1.add(jlb1);  
        jp1.add(jcb1);  

        jp2.add(jlb2);  
        jp2.add(jsp);  

        this.add(jp1);  
        this.add(jp2);  

        // 框架  
        this.setTitle("多个流式布局"); // 设置主题  
        this.setSize(300, 150); // 设置框体大小  
        this.setLocation(400,150); //设置框体显示的位置  
        // 禁止用户改变窗体大小  
        this.setResizable(false);  
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置框体退出  
        this.setVisible(true); // 显示框体  


    }  
    public static void main(String[] args) {  
        frame8 f = new frame8();  
    }  
}  

第八个:

package 图形;  

import java.awt.*;  
import javax.swing.*;  

public class frame9 extends JFrame{  
    JLabel jlb1; // 标题  
    JList jlist;  // 列表框架  
    JSplitPane jsp; //拆分方格  
    public frame9() {  
        String []words = {"boy","gild","man","wonman"}; // 单词表  
        jlist = new JList(words);  
        jlb1 = new JLabel(new ImageIcon("image/2013-10-25-19.jpg")); // 插入图片  

        jsp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jlist,jlb1); // 拆分布局  
        //收缩  
        jsp.setOneTouchExpandable(true);  

        // 添加组件  
        this.add(jsp);  
        this.setTitle("多个流式布局"); // 设置主题  
        this.setSize(500, 300); // 设置框体大小  
        this.setLocation(400,150); //设置框体显示的位置  
        // 禁止用户改变窗体大小  
        //this.setResizable(false);  
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置框体退出  
        this.setVisible(true); // 显示框体  

    }  
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
        frame9 f = new frame9();  
    }  

}  

第九个:

package 图形;  
import java.awt.*;  
import javax.swing.*;  

public class frame10 extends JFrame{  
    JTextArea jta; // 文本  
    JPanel jp1;  
    JScrollPane jsp; //滚动布局  
    JComboBox jcb1;   
    JTextField jtf;   
    JButton jb1;  
    public frame10() {  
        // TODO Auto-generated constructor stub  
        jta = new JTextArea();  
        jp1 = new JPanel();  
        jsp = new JScrollPane(jta);  
        String []jg = {"北京","上海","杭州","深圳"};  
        jcb1 = new JComboBox(jg);  
        jtf = new JTextField(10);  
        jb1 = new JButton("发送");  
        ////设置布局  
        ////添加组件  
        jp1.add(jcb1);  
        jp1.add(jtf);  
        jp1.add(jb1);  

        this.add(jsp);  
        this.add(jp1,BorderLayout.SOUTH);  


        this.setTitle("多个流式布局"); // 设置主题  
        this.setSize(500, 300); // 设置框体大小  
        this.setLocation(400,150); //设置框体显示的位置  
        this.setIconImage(new ImageIcon("image/图片.jpg").getImage());  
        // 禁止用户改变窗体大小  
        //this.setResizable(false);  
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置框体退出  
        this.setVisible(true); // 显示框体  

    }  
    public static void main(String[] args) {  
        frame10 f = new frame10();  
    }  
}  

第十个:

package 图形;  
import java.awt.*;  
import java.awt.image.ImageObserver;  
import java.awt.image.ImageProducer;  
import java.util.concurrent.BrokenBarrierException;  

import javax.swing.*;  
public class frame11 extends JFrame{  
    //北部区域  
    JLabel jl1;  

    //南部区域  
    JButton jb1,jb2,jb3;  
    JPanel jp1;  

    //中间区域  
    JTabbedPane jtp; //选项卡格  
    JPanel jp2,jp3,jp4;  
    JLabel jl2,jl3,jl4,jl5;  
    JTextField jtf; // 文本框  
    JPasswordField jpf; // 密码框  
    JButton jb4; // 清除内容按钮  
    JCheckBox jcb1,jcb2; // 选项  

    public frame11() {  
        jl2 = new JLabel("QQ号码",JLabel.CENTER);  
        jl3 = new JLabel("QQ密码",JLabel.CENTER);  
        jl4 = new JLabel("忘记密码",JLabel.CENTER);  
        jl4.setFont(new Font("宋体", Font.PLAIN, 16));  
        jl4.setForeground(Color.BLUE);  
        jl5 = new JLabel("<html><a href='www.qq.com'>申请密码保护</a></html>");  
        jl5.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));  

        jtf = new JTextField();  
        jpf = new JPasswordField();  
        jb4 = new JButton("清除");  
        jcb1 = new JCheckBox("隐身登入");  
        jcb2 = new JCheckBox("记住密码");  

        // 北部区域  
        jl1 = new JLabel(new ImageIcon("image/2013-10-25-19.jpg"));  

        // 南部区域  
        jp1 = new JPanel();  
        jb1 = new JButton("登陆");  
        jb2 = new JButton("取消");  
        jb3 = new JButton("向导");  

        // 中间区域  
        jtp = new JTabbedPane();  
        jp2 = new JPanel();  
        jp3 = new JPanel();  
        jp3.setBackground(Color.RED);  
        jp4 = new JPanel();  
        jp4.setBackground(new Color(0,0,255));  
        // 将面板添加到卡格上  
        jtp.add("QQ号码",jp2);  
        jtp.add("手机号码",jp3);  
        jtp.add("电子邮箱",jp4);      

        // 布局  
        jp2.setLayout(new GridLayout(3,3));  
        // 添加组件  
        jp1.add(jb1);  
        jp1.add(jb2);  
        jp1.add(jb3);  

        jp2.add(jl2);  
        jp2.add(jtf);  
        jp2.add(jb4);  
        jp2.add(jl3);  
        jp2.add(jpf);  
        jp2.add(jl4);  
        jp2.add(jcb1);  
        jp2.add(jcb2);  
        jp2.add(jl5);  

        this.add(jp1,BorderLayout.SOUTH);  
        this.add(jl1,BorderLayout.NORTH);  
        this.add(jtp,BorderLayout.CENTER);  

        this.setTitle("多个流式布局"); // 设置主题  
        this.setSize(450, 550); // 设置框体大小  
        this.setLocation(400,150); //设置框体显示的位置  
        this.setIconImage(new ImageIcon("image/图片.jpg").getImage());  
        // 禁止用户改变窗体大小  
        //this.setResizable(false);  
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置框体退出  
        this.setVisible(true); // 显示框体  

    }  
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
        frame11 f = new frame11();  
    }  

}  

第十一个:

package 图形;  
import java.awt.*;  

import javax.swing.*;  

public class frame12 extends JFrame{  
    JMenuBar jmb;  
    JMenu menu1,menu2,menu3,menu4,menu5;  
    JMenuItem itme1,itme2,itme3,itme4,itme5;  
    JMenu xinjian; // 二级菜单  
    JMenuItem file,project;  
    JTextArea jta; // 文本  
    JToolBar jtb; // 工具条  
    JButton jb1,jb2,jb3,jb4,jb5;  

    public frame12() {  
        jtb = new JToolBar(); // 工具条  
        jb1 = new JButton("保存");  
        jb1.setToolTipText("保存");  

        jb2 = new JButton("打开");  
        jb2.setToolTipText("打开");  

        jb3 = new JButton("另存为");  
        jb3.setToolTipText("另存为");  

        jb4 = new JButton("属性");  
        jb4.setToolTipText("属性");  

        jb5 = new JButton("关闭");  
        jb5.setToolTipText("关闭");  

        jmb = new JMenuBar(); //菜单栏  
        menu1 = new JMenu("文件(F)");  
        menu1.setMnemonic('F');  

        menu2 = new JMenu("编辑");  
        menu2.setMnemonic('F');  

        menu3 = new JMenu("格式(O)");  
        menu3.setMnemonic('O');  

        menu4 = new JMenu("查看(V)");  
        menu4.setMnemonic('V');  

        menu5 = new JMenu("帮助(H)");  
        menu5.setMnemonic('H');  

        //itme1 = new JMenuItem("新建");  
        xinjian = new JMenu("新建");  
        file = new JMenuItem("文件");  
        project = new JMenuItem("工程");  

        itme2 = new JMenuItem("保存(S)");  
        itme2.setMnemonic('S');  

        itme3 = new JMenuItem("另存为");  
        itme4 = new JMenuItem("打开");  
        itme5 = new JMenuItem("关闭");  

        // 设置布局  
        // 将按钮添加到组件上  

        jtb.add(jb1);  
        jtb.add(jb2);  
        jtb.add(jb3);  
        jtb.add(jb4);  
        jtb.add(jb5);  

        xinjian.add(file);  
        xinjian.add(project);  

        menu1.add(xinjian);  
        menu1.add(itme2);  
        menu1.add(itme3);  
        menu1.add(itme4);  
        menu1.add(itme5);  

        jmb.add(menu1);  
        jmb.add(menu2);  
        jmb.add(menu3);  
        jmb.add(menu4);  
        jmb.add(menu5);  
        jta = new JTextArea();  

        JScrollPane jsp = new JScrollPane(jta);  
        jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);  


        this.setJMenuBar(jmb);  
        this.add(jtb,BorderLayout.NORTH);  

        this.add(jsp);  

        this.setTitle("记事本"); // 设置主题  
        this.setSize(300, 150); // 设置框体大小  
        this.setLocation(400,150); //设置框体显示的位置  
        // 禁止用户改变窗体大小  
        //this.setResizable(false);  
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置框体退出  
        this.setVisible(true); // 显示框体  



    }  
    public static void main(String[] args) {  
        frame12 f = new frame12();   
    }  
}  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值