Swing组件_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Swing组件

Swing组件

 2013/7/11 0:15:00  王浩洋  程序员俱乐部  我要评论(0)
  • 摘要:Swing组件是java中的图形组件,用来开发图形界面的。1.常用的两类组件1)容器组件(可以存放其他组件)如:JFrame窗体类JPanel面板类JMenuBar菜单栏类JMenu菜单类2)元素组件如:JLable标签类JButton按钮类JTextField输入框类JPasswordField密码输入框类JCheckBox复选框类JComboBox下拉框类JMenuItem菜单选项类2
  • 标签:Swing
Swing组件是java中的图形组件,用来开发图形界面的。
1.常用的两类组件
  1)容器组件(可以存放其他组件)
    如:   JFrame     窗体类
JPanel     面板类
JMenuBar   菜单栏类
JMenu      菜单类
  2)元素组件
    如:   JLable            标签类
JButton    按钮类
JTextField  输入框类
JPasswordField     密码输入框类
JCheckBox           复选框类
JComboBox          下拉框类
JMenuItem          菜单选项类
2.常用的布局
  BorderLayout 边框布局
  FlowLayout 流式布局
  GridLayout 网格布局
 
其实每个容器都有默认的布局方式
  JFrame   默认边框布局
  JPanel   默认流式布局
3.界面实现基本步骤
     1)生成一个类,在类中定义主函数和初始化界面的方法
     2)在初始化界面的方法中实例化一个窗体对象
     3)设置窗体的各项基本属性
     4)设置窗体的布局方式
     5)实例化需要的容器和元素组件对象并添加到相应容器上
     6)在主函数中实例化类的对象,调用初始化界面的方法
下面以一个实例来运用这些知识帮助学习:
class="java" name="code">import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;

public class QQ extends JFrame{

	/**程序入口
	 * @param args
	 */
	public static void main(String[] args) {
		QQ q=new QQ();
		q.initUI();

	}
	/**
	 * 初始化界面方法
	 */
	private void initUI() {
		//设置窗体的属性值
		this.setLocation(400, 200);//设置显示位置
		this.setSize(378, 291);//设置大小
		this.setTitle("QQ登陆界面");//设置标题
		this.setDefaultCloseOperation(3);//设置关闭方式
		this.setResizable(false);//设置窗体是否可以最大化
		
		// 将背景图片添加到layeredPane
		ImageIcon img = new ImageIcon("images/beijing.png");
		JLabel imgLabel = new JLabel(img);
		this.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));
		imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight());
		Container p4=this.getContentPane();  
		
		//实例化一个在北边的JLabel		
		JLabel jlb = new JLabel();
		jlb .setPreferredSize(new Dimension(378,109));//设置标签的大小
		//添加标签到窗体的北边
		this.add(jlb,BorderLayout.NORTH);
		
		//实例化一个在西边的JPanel
		JPanel panelWest = new JPanel();
		panelWest.setLayout(new FlowLayout(FlowLayout.RIGHT));
		panelWest.setPreferredSize(new Dimension(105,0));
		JLabel jlaImage2 = new JLabel(new ImageIcon("images/touxiang.png"));
		panelWest.add(jlaImage2);
		//添加panelWest到窗体的西边
		this.add(panelWest,BorderLayout.WEST);
		
		//实例化一个中央JPanel
		JPanel panelCenter = new JPanel();
		panelCenter.setLayout(new FlowLayout( FlowLayout.LEFT,10,5));
		JComboBox jcb = new JComboBox();
		jcb.setEditable(true);
		jcb.setPreferredSize(new Dimension(170,25));//设置组件的大小
		JLabel jbuReg = new JLabel("注册账号");
		jbuReg.setFont(new Font("宋体",0,14));//设置显示的字体样式
		JPasswordField jpf = new JPasswordField();
		jpf.setPreferredSize(new Dimension(170,25));//设置组件的大小
		JLabel jbu = new JLabel("找回密码");
		jbu.setFont(new Font("宋体",0,14));
		JCheckBox jcb1 = new JCheckBox("记住密码");		
		jcb1.setFont(new Font("宋体",0,13));
		JCheckBox jcb2 = new JCheckBox("自动登录");
		jcb2.setFont(new Font("宋体",0,13));
		panelCenter.add(jcb);
		panelCenter.add(jbuReg);
		panelCenter.add(jpf);
		panelCenter.add(jbu);
		panelCenter.add(jcb1);
		panelCenter.add(jcb2);
		this.add(panelCenter,BorderLayout.CENTER);
		
		//实例化一个放置在窗体南边的面板
		JPanel panelSouth=new JPanel();
		JButton btn = new JButton(new ImageIcon("images/denglu.png"));
		btn.setPreferredSize(new Dimension(145,30));
		panelSouth.add(btn);
		this.add(panelSouth,BorderLayout.SOUTH);
		
		//将个个组件设置透明
		jcb1.setOpaque(false);
		jcb2.setOpaque(false);
		((JPanel) p4).setOpaque(false);
		panelWest.setOpaque(false);
		panelCenter.setOpaque(false);
		panelSouth.setOpaque(false);
		//设置窗体显示
		this.setVisible(true);
		
	}

}
上一篇: 使用Intent方式跨进程访问 下一篇: 没有下一篇了!
发表评论
用户名: 匿名