java swing总结,Swing小结

Swing总结

Swing登陆界面开发

一、Java的图形界面

Swing为Java图形界面提供各种组件,像菜单栏、输入框、按钮等等。

Swing调用组件基本格式:

javax.swing.XXXX

二、常用的组件

1)容器组件:

(1)窗体类JFrame

例如:  javax.swing.JFrame frame=new javax.swing.JFrame();

还可以这样  JFrame frame=new JFrame();  然后按shift+ctrl+o

(2)面板类JPanel

例如:  JPanel panel=new JPanel();

(3)菜单栏JMenuBar

例如:JMenuBar jm=new JMenubar();

2)元素组件

(1)标签类JLabel

例如:  JLabel jla=new JLabel();

标签中可以显示图片

例如:  ImageIcon image=new ImageIcon(“images/1.jpg”);

JLabel jla=new JLabel(image);

(2)按钮类JButton

例如: JButton jb=JButton(“开始”);

(3)输入框类JTextField

例如: JTextField te=new JTextField();

(4)密码输入框类JPasswordField

例如:JPasswordField jp=new JPasswordField();

(5)下拉框类JComboBox

例如:  JComboBox jc=new JComboBox();

(6)复选框类JCheckBox

例如:  JCheckBox jc=new JCheckBox();

(7)菜单类JMenuItem

例如: JMenuItem jm=new JMenuItem();

三、常用的布局

(1)边框布局BorderLayout   (默认)

将容器分为东西南北中五部分,每部分又可独自添加容器。

例如: BorderLayout bo=new BorderLayout();

frame.setLayut(bo);

frame.add(panel,BorderLayout.WEST);

(2)流式布局FlowLayout

默认从中见对齐往两边扩散,直至一行满了转到下一行

例如: FlowLayout fl=new FlowLayout(FlowLayout RIGHT);

frame.setLayout(fl);

(3)网格布局GridLayout

例如:GridLayout gr=new GridLayout(4,5); 四行五列

所有以Layout结尾的类都是布局类。

(4)绝对布局 Dimension

可精确设置各组件大小

例如: panel.setPerferredSize(new Dimension(500,200));

四、界面实现

实现界面的步骤:

1.定义类,在类中定义主函数和初始化界面的方法.

2.在初始化界面的方法中,实例化一个JFrame窗体类的对象.

3.设置窗体对象的属性值

4.实例化布局对象并且设置窗体容器的布局方式.

5.实例化对象容器或者元素组件的对象,让后将对象添加到窗体上.

6.在主函数中实例化类的对象,然后调用初始化界面的方法

一种布局往往难以实现设计要求,所以要灵活运用整体的布局和各容器的布局。

课后实践 1.QQ2012登陆界面

2.计算器界面

源代码:

QQ登陆界面:

import java.awt.BorderLayout;

import java.awt.Dimension;

import java.awt.FlowLayout;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JCheckBox;

import javax.swing.JComboBox;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class Login {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

//实例化一个对象

Login log=new Login();

//调用显示窗体的方法

log.showFrame();

}

//定义显示窗体的方法

public void showFrame(){

//实例化一个窗体对象

JFrame frame=new JFrame();

//设置窗体的属性

frame.setTitle("QQ2012");//设置窗体标题

frame.setSize(380,280);//设置窗体大小

frame.setLocation(300,300);//设置窗体显示位置

frame.setDefaultCloseOperation(3);//设置默认关闭操作3关闭窗口时退出程序

frame.setResizable(false);//设置不能改变窗体大小

//实例化一个图像对象

ImageIcon background=new ImageIcon("images/2.jpg");

//实例化一个标签对象

JLabel lab=new JLabel(background);

//设置标签显示位置和大小

lab.setBounds(0, 0,background.getIconWidth(), background.getIconHeight());

//将标签添加到JLayeredPane的底层

frame.getLayeredPane().add(lab,new Integer(Integer.MIN_VALUE));

//获取ContentPane对象

JPanel contentPane=(JPanel)frame.getContentPane();

//设置contentPane为透明

contentPane.setOpaque(false);

//默认为边框布局,这两行可省略

//BorderLayout bo=new BorderLayout();

//frame.setLayout(bo);

//实例化一个西部面板对象

JPanel westPane=westPane();

//添加西部面板至边框西部

frame.add(westPane,BorderLayout.WEST);

//实例化一个中部面板对象

JPanel centerPane=centerPane();

//添加中部面板至边框中部

frame.add(centerPane,BorderLayout.CENTER);

//实例化一个南部面板对象

JPanel southPane=southPane();

//添加南部面板至边框南部

frame.add(southPane,BorderLayout.SOUTH);

//实例化一个北部面板对象

JPanel northPane=northPane();

//添加北部面板至边框北部

frame.add(northPane,BorderLayout.NORTH);

//设置窗体可见

frame.setVisible(true);

}

//定义一个创建西部面板的方法,返回值为面板

public JPanel westPane(){

//实例化一个面板对象

JPanel panel=new JPanel();

//设置面板透明

panel.setOpaque(false);

//设置面板大小,西部面板只能设置宽度

panel.setPreferredSize(new Dimension(105,0));//使用绝对布局设置面板大小

//实例化一个流布局对象并使其为右对齐

FlowLayout fl=new FlowLayout(FlowLayout.RIGHT);

panel.setLayout(fl);//设置面板为流布局

//实例化一个图标对象

ImageIcon image=new ImageIcon("images/1.jpg");//将图片添加到图片对象

//实例化一个标签对象

JLabel jla=new JLabel(image);//将图标放入标签

//将标签添加到面板

panel.add(jla);

//返回一个面板值

return(panel);

}

//定义一个创建中部面板的方法,返回值为面板

public JPanel centerPane(){

//实例化一个面板对象

JPanel panel=new JPanel();

//设置面板透明

panel.setOpaque(false);

//实例化一个流布局对象并使其左对齐

FlowLayout fl=new FlowLayout(FlowLayout.LEFT);

panel.setLayout(fl);//设置面板布局为流布局

//实例化一个下拉框对象

JComboBox jcb=new JComboBox();

jcb.addItem("522517457");//添加选择内容

jcb.setEditable(true);//设置可编辑

jcb.setPreferredSize(new Dimension(192,25));//设置大小,用绝对布局精确设置大小

panel.add(jcb);//添加下拉框组件至面板

//实例化一个标签对象

JLabel jla=new JLabel("注册账号");

panel.add(jla);//添加标签至面板

//实例化一个输入框对象

JTextField jte=new JTextField();

jte.setPreferredSize(new Dimension(192,25));//设置大小,用绝对布局精确设置大小

panel.add(jte);//添加输入框至面板

//实例化一个标签

JLabel jla1=new JLabel("找回密码");

panel.add(jla1);//添加标签纸面板

//实例化两个复选框

JCheckBox jche=new JCheckBox("记住密码");

JCheckBox jche1=new JCheckBox("自动登录");

jche.setOpaque(false);//设置复选框为透明

jche1.setOpaque(false);//设置复选框为透明

panel.add(jche);//添加复选框至面板

panel.add(jche1);//添加复选框至面板

//返回面板值

return(panel);

}

//定义一个创建南部面板的方法,返回值为面板

public JPanel southPane(){

//实例化一个面板对象

JPanel panel=new JPanel();

//设置面板为透明

panel.setOpaque(false);

//实例化一个流布局对象

FlowLayout fl=new FlowLayout();

panel.setLayout(fl);//设置面板布局为流布局

//实例化一个按钮对象

JButton jb=new JButton("登          陆");

panel.add(jb);//添加按钮至面板

//返回面板

return(panel);

}

//定义一个创建背部面板的方法,返回值为面板

public JPanel northPane(){

//实例化一个面板对象

JPanel panel=new JPanel();

//设置面透明

panel.setOpaque(false);

//设置面板大小

panel.setPreferredSize(new Dimension(0,100));//使用绝对布局设置面板大小

//返回面板

return(panel);

}

}

计算器界面:

import java.awt.BorderLayout;

import java.awt.Button;

import java.awt.Dimension;

import java.awt.FlowLayout;

import java.awt.GridLayout;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class Calculator {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

//实例化一个计算器对象

Calculator cal=new Calculator();

cal.showFrame();//调用显示界面的方法

}

public void showFrame(){

//实例化一个窗体对象

JFrame frame=new JFrame();

//设置窗体属性

frame.setTitle("计算器");//设置窗体标题

frame.setSize(490, 295);//设置窗体大小

frame.setLocation(300, 300);//设置窗体显示的位置

frame.setResizable(false);//设置不可改变窗体大小

frame.setDefaultCloseOperation(3);//设置关闭窗口时程序退出

//JFrame默认BorderLayout边框布局

//实例化一个北部面板

JPanel northPane=northPane();

//添加到边框布局的北部

frame.add(northPane,BorderLayout.NORTH);

//实例化一个西部面板

JPanel westPane=westPane();

//添加到边框布局的西部

frame.add(westPane,BorderLayout.WEST);

//实例化一个中部面板

JPanel centerPane=centerPane();

//添加到边框布局的中部

frame.add(centerPane,BorderLayout.CENTER);

//实例化一个东部面板

JPanel eastPane=eastPane();

//添加到边框布局的西部

frame.add(eastPane,BorderLayout.EAST);

//设置窗体为可见

frame.setVisible(true);

}

//定义一个创建北部面板的方法,返回值为面板类

public JPanel northPane(){

//实例化一个面板

JPanel panel=new JPanel();

//实例化一个流布局对象

FlowLayout fl=new FlowLayout();

panel.setLayout(fl);//设置面板为流布局

//实例化一个输入框对象

JTextField jte=new JTextField();

jte.setPreferredSize(new Dimension(455,45));//使用绝对布局设置输入框大小

panel.add(jte);//添加输入框至面板

//返回面板

return(panel);

}

//定义一个创建西部面板的方法,返回值为面板类

public JPanel westPane(){

//实例化一个面板对象

JPanel panel=new JPanel();

//设置面板大小

panel.setPreferredSize(new Dimension(140,0));

//实例化一个网格布局对象

GridLayout gr=new GridLayout(5,2);

panel.setLayout(gr);//设置面板为网格布局

//添加各种按钮

panel.add(new Button("sin"));

panel.add(new Button("ln"));

panel.add(new Button("cos"));

panel.add(new Button("log"));

panel.add(new Button("tan"));

panel.add(new Button("e"));

panel.add(new Button("π"));

panel.add(new Button("^"));

panel.add(new Button("!"));

panel.add(new Button("√"));

//返回面板

return(panel);

}

//定义一个创建中部面板的方法,返回值为面板类

public JPanel centerPane(){

//实例化一个面板对象

JPanel panel=new JPanel();

//实例化一个网格布局的对象

GridLayout gr=new GridLayout(4,5);//四行五列

panel.setLayout(gr);//设置为网格布局

//添加各种按钮

panel.add(new Button("7"));

panel.add(new Button("8"));

panel.add(new Button("9"));

panel.add(new Button("÷"));

panel.add(new Button("←"));

panel.add(new Button("4"));

panel.add(new Button("5"));

panel.add(new Button("6"));

panel.add(new Button("×"));

panel.add(new Button("("));

panel.add(new Button("1"));

panel.add(new Button("2"));

panel.add(new Button("3"));

panel.add(new Button("-"));

panel.add(new Button(")"));

panel.add(new Button("0"));

panel.add(new Button("00"));

panel.add(new Button("."));

panel.add(new Button("+"));

panel.add(new Button("="));

//返回面板

return(panel);

}

//定义一个创建栋部面板的方法,返回值为面板类

public JPanel eastPane(){

//实例化一个面板对象

JPanel panel=new JPanel();

//设置面板大小

panel.setPreferredSize(new Dimension(10,0));

//返回面板

return(panel);

}

}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值