JPanel的基本应用(五子棋)

JFrame窗体:自带标题栏最小化/最大化和关闭选项(JFrame Frame Window)

JPanel(面板):(区域 容器) 面板也一样可以加载其他组件,绘制

布局的区别

JFrame默认是边框布局:BorderLayoutJPanel默认是流式布局FlowLyaout

FlowLyout:从上到下,从左到右,依次摆放,整体居中(代码1)

                                        ​​​​​​​        

BorderLyout:五个方位每个方位只能加载一个组件对象(代码2)

1.在默认的情况下直接加载在中央方位

2.东西南北中:(1)南北不能设置宽度(2)东西不能设置高度(其中高度是窗体的高度 减去南北高度的高度)(3)剩下的就是中间的了(4):south,north,east,west,center

Dimension dim1=new Dimension(0,100);
        Dimension dim2=new Dimension(100,0);
        njp.setPreferredSize(dim1);//南北只能设置高度,不能设置宽度
        sjp.setPreferredSize(dim1);
        ejp.setPreferredSize(dim2);//东西只能设置宽度,不能设置高度
        wjp.setPreferredSize(dim2);

                                                                       BorderLayout特点2

代码(1)

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

public class LayoutUI extends Applet{
    public static void main(String[] args) {//主函数是一个程序的入口,没有是不行的!
        LayoutUI ly=new LayoutUI();
        ly.showUI();
    }
    public void showUI(){
        JFrame jf=new JFrame();
        jf.setTitle("JPanel默认流式布局FlowLyout演示");
        jf.setDefaultCloseOperation(3);
        jf.setSize(600,600);
        jf.setLocationRelativeTo(null);//居中

        JPanel njp=new JPanel();//南
        JPanel sjp=new JPanel();//北
        JPanel ejp=new JPanel();//东
        JPanel wjp=new JPanel();//西
        JPanel cjp=new JPanel();//中
        //窗体添加JPanel

        jf.add(njp,BorderLayout.NORTH);
        jf.add(sjp,BorderLayout.SOUTH);
        jf.add(ejp,BorderLayout.EAST);
        jf.add(wjp,BorderLayout.WEST);
        jf.add(cjp,BorderLayout.CENTER);
        //添加按钮
        njp.add(new Button("NORTH"));
        sjp.add(new Button("SOUTH"));
        ejp.add(new Button("EAST"));
        wjp.add(new Button("WEST"));
        cjp.add(new Button("CENTER"));

        //添加尺寸以及背景颜色
        Dimension dim1=new Dimension(0,100);
        Dimension dim2=new Dimension(100,0);
        njp.setPreferredSize(dim1);//南北只能设置高度,不能设置宽度
        sjp.setPreferredSize(dim1);
        ejp.setPreferredSize(dim2);//东西只能设置宽度,不能设置高度
        wjp.setPreferredSize(dim2);

        njp.setBackground(Color.ORANGE);
        sjp.setBackground(Color.green);
        ejp.setBackground(Color.pink);
        wjp.setBackground(Color.CYAN);
        cjp.setBackground(Color.lightGray);

        jf.setVisible(true);
        }
    }

出现的问题原因:

JPanel new 新的对象的时候,不能像上面的数组一样使用,以为创建新的对象的时候:需要的是对象名,二不是字符串,所以不行:如下更好理解(错误的代码);

String str="MXS";
int i=str;

代码(2)

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

public class Text {
    public static void main(String[] args) {
        Text tt=new Text();
        tt.showUI();
    }
    public void showUI() {
        JFrame jf=new JFrame();
        jf.setTitle("JFrame默认边框布局BorderLayout特点演示");
        jf.setDefaultCloseOperation(3);
        jf.setSize(400,400);

        init(jf);//按钮的封装
        jf.setVisible(true);

    }
    public void init (JFrame jf) {
        setLayout(new BorderLayout());
        jf.add(new Button("NORTH"), BorderLayout.NORTH);
        jf.add(new Button("SOUTH"), BorderLayout.SOUTH);
        jf.add(new Button("EAST"), BorderLayout.EAST);
        jf.add(new Button("WEST"), BorderLayout.WEST);
        jf.add(new Button("CENTER"), BorderLayout.CENTER);
    }
//public是公开资源,Private是私有的在声明属性和方法尽可能私有
    public void setLayout(BorderLayout borderLayout) {
    }//这个方法在上面调用了所以一定要创建
}

利用类JPanel(画板)实现五子棋面板的基本布局效果图如下图所示:

1.在窗体中有new两个新的JPanel对象(1)drawPanel(2)btnPanel

2.在btnPannel上添加sjp,njp两个新的JPanel,背景颜色,尺寸等属性

3.在sjp(北面板)上添加背景颜色,按钮等属性(addButoon)尝试封装起来运用;

4.在drawPanel上实现网格重绘(画笔的获取,for循环的运用等)

 代码在下一篇;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值