UI基础编程

本文介绍了UI设计师的工作内容,探讨了软件开发中的前端与后端开发,比较了B/S和C/S两种界面设计的优势与劣势。在Java学习中,详细阐述了组件分类,包括容器组件和非容器组件,并讲解了如何设置大小。此外,还提到了布局管理,如Flow布局和Border布局的重要性,以及在实际应用中的操作步骤。

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

UI:UI设计师(界面设计师)
UI就是界面
软件开发:
1、前端开发(UI开发)
2、后端开发

B/S和C/S界面设计
B/S browse/Server web开发(网页前端+后端服务器)
优势:方便、快捷
劣势:加载速度慢
C/S Client/Server 桌面应用网络程序(桌面程序+后端服务器)
优势:加载速度块
劣势:麻烦

Java前期学习:我们主要的开发方向是桌面应用程序

组件分类:
1、容器组件
i.顶层容器组件:可以独立存在,不需要放置到其他组件上JFrame
ii.中间层容器组件:一般是放置到顶层容器组件或者中间层容器组件上JPanel
2、非容器组件:功能性组件,上面继续放置组件
了JButton、JTextField、JLabel

注意:
1、中间层容器和功能组件设置大小的方式:setPrefferedSize
2、顶层容器设置大小:setSize

个别案例:
添加滚动面板案例:

//创建滚动面板:只能通过构造方法传参方式加载
JScrollPane jsp = new JScrollPane(jta);
//3.设置滚动面板大小
Dimension dimen = new Dimension(200,200);
jsp.setPreferredSize(dimen);

普通按钮案例:

JButton button = new JButton("测试按钮");

单选按钮案例:

JRadioButton jrb = new JRadioButton("单选按钮");

特殊的,单选按钮需要联系起来形成一组,这一组中只能选择一个

//窗体建立
JFrame jf=new JFrame();
//单选按钮建立
JRadioButton jrb1 = new JRadioButton("单选按钮1");
JRadioButton jrb2 = new JRadioButton("单选按钮2");
JRadioButton jrb3 = new JRadioButton("单选按钮3");
jf.add(jrb1);
jf.add(jrb2);
jf.add(jrb3);
//如果单选按钮要形成单选效果,则必须要把排斥的按钮放置到一个组合中
//按钮组对象的创建
ButtonGroup bg = new ButtonGroup();
bg.add(jrb1);
bg.add(jrb2);
bg.add(jrb3);

复选按钮案例:

JCheckBox jcb = new JCheckBox("复选按钮");

菜单的添加:(菜单条,菜单,菜单项)
菜单条就是菜单栏,菜单是菜单栏上每一个菜单选项,菜单项是菜单选项里面的二级菜单

//窗体建立
JFrame jf=new JFrame();
//1、菜单条的添加
JMenuBar bar = new JMenuBar();
//设置菜单条到窗体上
jf.setJMenuBar(bar);
//2、菜单添加到菜单条
JMenu menu = new JMenu("File");
bar.add(menu);
//3.菜单上添加菜单项
JMenuItem item = new JMenuItem("save");
menu.add(item);

布局讲解

1、布局概念
布局是指组件摆放到容器中的排列方式
布局一般都是设置到容器对象上
每个容器需要往上添加组件的时候,都需要先设置好布局
2、容器组件设置布局的方法:setLayout
3、流式布局:java.awt.FlowLayout
i.该布局以行为单位依次排列各组件,一行排不下,另起一行
ii.可以通过传参方式来设置布局的对其方式和水平垂直间隙
iii.JPanel容器默认使用的就是FlowLayout

//建立窗体
JFrame jf = new JFrame();
//建立流式布局并设置在窗体上
FlowLayout fl = new FlowLayout(0,0,0);
jf.setLayout(fl);
//建立按钮并添加到窗体上
JButton jb1 = new JButton("按钮");
jf.add(jb1);
JButton jb2 = new JButton("按钮");
jf.add(jb2);
JButton jb3 = new JButton("按钮");
jf.add(jb3);
JButton jb4 = new JButton("按钮");
jf.add(jb4);
JButton jb5 = new JButton("按钮");
jf.add(jb5);

4、边框布局:java.awt.BorderLayout
i.把被设置此布局的容器分为五个部分:东(East)、南(South)、西(West)、北(North)、中(Center)
ii.每个方位仅仅只能摆放一个组件,所以一般会摆放容器组件JPanel
iii.顶层容器(JFrame、JWindow、JDialog等)默认的都是边框布局BorderLayout
iii.组件添加时默认放在中部,且具有延伸性

//建立窗体
JFrame jf = new JFrame();       
//设置为边框布局
BorderLayout bl = new BorderLayout();
jf.setLayout(bl);
//建立按钮并添加到窗体上
JButton button = new JButton("测试按钮");
jf.add(button,BorderLayout.WEST);       
JButton button1 = new JButton("测试按钮");
jf.add(button1,BorderLayout.NORTH);     
JButton button2 = new JButton("测试按钮");
jf.add(button2);

5、空布局使用步骤
1)创建容器对象
2)设置容器对象的布局为null
3)组件对象设置位置和大小:setBounds方法
4)组件添加到容器中UI:UI设计师(界面设计师)

//建立窗体
JFrame jf = new JFrame();
//将窗体布局设为空
jf.setLayout(null);     
JButton button = new JButton("测试按钮");
//设置按钮绝对定位位置
button.setBounds(200, 200, 100, 50);
jf.add(button);

仿画图工具界面
这里写图片描述

package com.huaxin.huatu;
public class Text {
    public static void main(String[] args) {
        DrowFrame df=new DrowFrame();
        df.initFrame();
    }
}
package com.huaxin.huatu;

import java.awt.*;

import javax.swing.*;


public class DrowFrame extends JFrame{

    public void initFrame() {       
        this.setSize(1200,800);
        this.setDefaultCloseOperation(3);
        this.setLocationRelativeTo(null);
        this.setTitle("画图");

        //给窗体的左边、下边、中间分别添加中间容器层容器组件JPanel
        JPanel panelLeft=new JPanel();
        JPanel panelDown=new JPanel();
        JPanel panelCenter=new JPanel();
        //颜色
        Color color=new Color(171,171,171);
        panelLeft.setBackground(color);
        //大小
        Dimension dimen=new Dimension(100, 100);
        panelLeft.setPreferredSize(dimen);
        panelDown.setPreferredSize(dimen);
        this.add(panelLeft,BorderLayout.WEST);
        this.add(panelDown,BorderLayout.SOUTH);
        this.add(panelCenter);
        //添加底部颜色区       
        panelDown.setLayout(new FlowLayout(0,5,20));
        panelDown.setBackground(color.GRAY);
        JPanel panelLeft_1=new JPanel();
        panelLeft_1.setPreferredSize(new Dimension(38, 46));
        panelDown.add(panelLeft_1,BorderLayout.WEST);
        JPanel panelColor=new JPanel();
        panelColor.setPreferredSize(new Dimension(281,46));
        panelDown.add(panelColor);
        //添加小格颜色
        JButton jButton=new JButton();
        jButton.setBackground(color.black);
        jButton.setPreferredSize(new Dimension(34,39));
        panelLeft_1.add(jButton);

        panelColor.setLayout(new GridLayout(2,14));
        JButton jb[]=new JButton[28];
        for(int i=0;i<28;i++)
            jb[i]=new JButton();
        for(int i=0;i<28;i++)
            jb[0].setPreferredSize(new Dimension(17,17));
        for(int i=0;i<28;i++)
            panelColor.add(jb[i]);
        jb[0].setBackground(new Color(0, 0, 0));jb[1].setBackground(new Color(128,138,135));
        jb[2].setBackground(new Color(176, 23, 31));jb[3].setBackground(new Color(107,142,35));
        jb[4].setBackground(new Color(34,139,34));jb[5].setBackground(new Color(64,224,205));
        jb[6].setBackground(new Color(8,46, 84));jb[7].setBackground(new Color(160, 32, 240));
        jb[8].setBackground(new Color(210, 180, 140));jb[9].setBackground(new Color(25,25,112));
        jb[10].setBackground(new Color(0,191,255));jb[11].setBackground(new Color(153, 51,250));
        jb[12].setBackground(new Color(160, 82,45));jb[13].setBackground(new Color(120,82,45));
        jb[14].setBackground(new Color(255,255,255));jb[15].setBackground(new Color(192,192,192));
        jb[16].setBackground(new Color(255, 0, 0));jb[17].setBackground(new Color(255, 255, 0));
        jb[18].setBackground(new Color(0, 255, 0));jb[19].setBackground(new Color(0,255,255));
        jb[20].setBackground(new Color( 0, 0,255));jb[21].setBackground(new Color(255,0,255));
        jb[22].setBackground(new Color(255,227,132));jb[23].setBackground(new Color(0,206,209));
        jb[24].setBackground(new Color(175,238,238));jb[25].setBackground(new Color(202,135,216));
        jb[26].setBackground(new Color(116, 0, 0));jb[27].setBackground(new Color(255,125,64));

        //1、菜单条的添加
        JMenuBar bar = new JMenuBar();
        //设置菜单条到窗体上
        this.setJMenuBar(bar);
        //2、菜单添加到菜单条
        JMenu menu_1 = new JMenu("文件(F)");
        JMenu menu_2 = new JMenu("编辑(E)");
        JMenu menu_3 = new JMenu("查看(V)");
        JMenu menu_4 = new JMenu("图像(I)");
        JMenu menu_5 = new JMenu("颜色(C)");
        JMenu menu_6 = new JMenu("帮助(H)");
        bar.add(menu_1);
        bar.add(menu_2);
        bar.add(menu_3);
        bar.add(menu_4);
        bar.add(menu_5);
        bar.add(menu_6);
        //3.菜单上添加菜单项
        JMenuItem item []= {new JMenuItem("新建"),new JMenuItem("打开"),
                new JMenuItem("保存"),new JMenuItem("另存为"),new JMenuItem("打印预览"),new JMenuItem("页面设置"),
                new JMenuItem("打印"),new JMenuItem("发送"),new JMenuItem("退出")};
        for(int i=0;i<9;i++) menu_1.add(item[i]);
        JMenuItem item_1 []= {new JMenuItem("撤销"),new JMenuItem("全选"),
                new JMenuItem("粘贴来源")};
        for(int i=0;i<3;i++) menu_2.add(item_1[i]);
        JMenuItem item_2 []= {new JMenuItem("工具箱"),new JMenuItem("颜料盒"),
                new JMenuItem("状态栏"),new JMenuItem("缩放"),new JMenuItem("查看位图")};
        for(int i=0;i<5;i++) menu_3.add(item_2[i]);
        JMenuItem item_3 []= {new JMenuItem("翻转/旋转"),new JMenuItem("拉伸/扭曲"),
                new JMenuItem("反色"),new JMenuItem("属性"),new JMenuItem("清除图像"),new JMenuItem("不透明处理")};
        for(int i=0;i<6;i++) menu_4.add(item_3[i]);     
        menu_5.add(new JMenuItem("编辑颜色"));
        JMenuItem item_4[] = {new JMenuItem("帮助主题"),new JMenuItem("关于画图")};
        for(int i=0;i<2;i++) menu_6.add(item_4[i]); 

        this.setVisible(true);
    }
}

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值