Swing入门和布局管理

Swing入门和布局管理

1. Swing入门

UI:用户操作界面

B/S(Browser/Server): 浏览器服务器模式

C/S(Client/Server):客户端服务器模式

 

2. 常用组件

分为顶层容器、中间层容器和基本组件。

顶层容器设置大小:setSize

中间层容器和基本组件设置大小:setPrefferedSize

 

1)   顶层容器:JFrame(带标题栏)、JWindow(不带标题栏)、JApplet(一般嵌入到html中)、JDialog(用于窗体弹出)。

 

2)   中间层容器:JPanel(面板)、JScrollPane(带滚动条的面板)、JTabbedPane(带选项卡的面板)。

JscrollPane:

关键代码:

//创建文本框 JTextArea

       JTextAreajta = new JTextArea();

       //创建滚动面板

//注意添加文本框的方法,只能通过构造方法传参方式加载

       JScrollPanejsp = new JScrollPane(jta);

       //设置滚动面板大小

       Dimensiondimen = new Dimension(300,300);

       jsp.setPreferredSize(dimen);

           jf.add(jsp);

3)   基本组件:功能性组件,不属于容器,在组件上不能继续添加组件。

JRadioButton(单选框)代码:

import java.awt.FlowLayout;

import javax.swing.JFrame;

import javax.swing.JRadioButton;

 

public class MyFrame extends JFrame {

    publicstatic void main(String[] args) {

       JFramejf = new JFrame();

       jf.setSize(400,400);

       jf.setLocationRelativeTo(null);

       jf.setDefaultCloseOperation(3);

       jf.setLayout(newFlowLayout());

      

       JRadioButtonjrd1 = new JRadioButton("1");

       JRadioButtonjrd2 = new JRadioButton("2");

       JRadioButtonjrd3 = new JRadioButton("3");

       jf.add(jrd1);

       jf.add(jrd2);

       jf.add(jrd3);

      

       jf.setVisible(true);

    }

}

运行结果:

没有形成互斥关系

需要将互斥关系的单选框放入同一个按钮组(ButtonGroup)

添加代码如下:

 import javax.swing.ButtonGroup;

//创建按钮组

       ButtonGroup bg = new ButtonGroup();

       bg.add(jrd1);

       bg.add(jrd2);

       bg.add(jrd3);

l  bg.add();与jf.add();不冲突,理解为bg.add();为逻辑上的添加。

 

JMenuBar(菜单条)、JMenu(菜单)、JMenuItem(菜单项)

 

关键代码:

   //1、菜单条的添加

    JMenuBar bar = new JMenuBar();

    //设置菜单条到窗体上

    jf.setJMenuBar(bar);

    //2、菜单的添加

    JMenu menu = new JMenu("File");

    bar.add(menu);

    //3.菜单上添加菜单项

    JMenuItem item = newJMenuItem("new");

    menu.add(item);

    JMenuItem item1 = new JMenuItem("save");

    menu.add(item1);

    JMenuItem item2 = newJMenuItem("close");

    menu.add(item2);

    JMenuItem item3 = newJMenuItem("refresh");

    menu.add(item3);

   

    JMenu menu1 = new JMenu("Edit");

    bar.add(menu1);

    JMenuItem item4 = new JMenuItem("undotyping");

    menu1.add(item4);

    JMenuItem item5 = newJMenuItem("redo");

    menu1.add(item5);

    JMenuItem item6 = newJMenuItem("cut");

    menu1.add(item6);

    JMenuItem item7 = newJMenuItem("copy");

    menu1.add(item7);

    JMenuItem item8 = new JMenuItem("paste");

    menu1.add(item8);

3. 常用布局

1)   布局:组件在容器上的排列方式

2)   常用布局分类:FlowLayout(流式布局)、BorderLayout(边框布局)、GridLayout(网格布局)、null(空布局)

l  流式布局:依次排列,可通过传参改变对齐方式和间隙大小

JPanel默认为流式布局

l  边框布局:分为五个部分:东(East)、南(South)、西(West)、北(North)、中(Center)

     组件默认添加在中。

     顶层容器默认为边框布局

l  空布局:不使用任何一个布局

添加组件则通过绝对定位方式添加(setBounds,通过坐标定位)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值