学习笔记二十三:GUI(四)

业精于勤而荒于嬉,行成于思而毁于随。——韩愈


本讲内容:常用组件


一、拆分窗格(JSplitPane)属于容器类组件

注意JLabel可以放图片

public class Text extends JFrame{
	//定义组件
	JSplitPane cf;//拆分窗口
	JList lb;
	JLabel bq;
	
	public static void main(String[] args) {
		Text t=new Text();
	}
	
	public Text() {
		//创建组件
		String[] aa={"软件开发","游戏开发","平面设计","动漫制作","室内设计"};
		lb=new JList(aa);
		
		bq=new JLabel(new ImageIcon("images\\k.jpg"));//     /=\\一正斜杠等于二反斜杠
		
		cf=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,lb,bq);
		//HORIZONTAL_SPLIT左右拆分VERTICAL_SPLIT上下拆分
		cf.setOneTouchExpandable(true);//左右可全显示
		
		//增加组件  
		this.add(cf);
		
		//设置窗体属性
		this.setTitle("计算机学科分类—小劲");
		this.setLocation(300, 300);
		this.setSize(400,300);
		this.setResizable(false);
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}



二、多行文本框组件(JTextArea)

一般与JScrollPane滚动条一起使用

public class Text extends JFrame{
	//定义组件
	JTextArea wby;
	JPanel mb;
	JComboBox xlk;
	JButton an;
	JTextField wbk;
	JScrollPane gd;
	
	public static void main(String[] args) {
		Text t=new Text();
	}
	
	public Text() {
		//创建组件
		wby=new JTextArea();
		mb=new JPanel();
		String[] aa={"悟空","八戒","沙僧","小白龙"};
		xlk=new JComboBox(aa);
		an=new JButton("发送");
		wbk=new JTextField(10);
		gd=new JScrollPane(wby);
		
		//增加组件  
		mb.add(xlk);  mb.add(wbk);  mb.add(an);
		this.add(gd);  this.add(mb,BorderLayout.SOUTH);
		
		//设置窗体属性
		this.setTitle("qq—小劲");
		this.setIconImage((new ImageIcon("images\\qq.jpg")).getImage());
		this.setLocation(300, 300);
		this.setSize(400,300);
		this.setResizable(false);
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}



三、选项卡窗格(JTabbedPane)页签组件

public class Text extends JFrame{
	//定义组件
	JLabel bq1;//北部
	JButton an1,an2,an3;//南部
	JPanel mb1;
	JTabbedPane xxk;//中部
	JPanel mb2,mb3,mb4;
	JLabel bq2,bq3,bq4,bq5;
	JTextField wbk;
	JPasswordField mmk;
	JButton an4;
	JCheckBox fxk1,fxk2;
	
	public static void main(String[] args) {
		Text t=new Text();
	}
	
	public Text() {
		//北部
		bq1=new JLabel(new ImageIcon("images/k.jpg"));
		
		//南部
		mb1=new JPanel();
		an1=new JButton("登录");
    	<span style="white-space:pre">	</span>an2=new JButton("取消");
    	<span style="white-space:pre">	</span>an3=new JButton("向导");
    	<span style="white-space:pre">	</span>mb1.add(an1); mb1.add(an2); mb1.add(an3);
    	
    	<span style="white-space:pre">	</span>//中部
    	<span style="white-space:pre">	</span>mb2=new JPanel();
    	<span style="white-space:pre">	</span>mb3=new JPanel();
		mb3.setBackground(Color.BLUE);
		mb4=new JPanel();
		mb4.setBackground(Color.green);
		xxk=new JTabbedPane();
    	<span style="white-space:pre">	</span>bq2=new JLabel("qq号码",JLabel.CENTER);//文字放在中间
		bq3=new JLabel("qq密码",JLabel.CENTER);
		bq4=new JLabel("忘记密码",JLabel.CENTER);
		bq4.setFont(new Font("宋体",Font.PLAIN,17));
		bq4.setForeground(Color.blue);//设置字体颜色丰富的
		bq5=new JLabel("<html><a href='www.qq.com'>申请密码保护</a>");
		bq5.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//移动到这会出现手形
		
		wbk=new JTextField();
		mmk=new JPasswordField();//网格大了
		an4=new JButton("取消号码");
		
		fxk1=new JCheckBox("隐身登陆");
		fxk2=new JCheckBox("记住密码");
		
		mb2.setLayout(new GridLayout(3,3));
		mb2.add(bq2); mb2.add(wbk); mb2.add(an4); mb2.add(bq3); mb2.add(mmk);
		mb2.add(bq4); mb2.add(fxk1); mb2.add(fxk2); mb2.add(bq5);
		
		xxk.add("普通用户",mb2);  xxk.add("QQ会员",mb3); xxk.add("管理员",mb4);
		
		//增加组件  
		this.add(mb1,BorderLayout.SOUTH);
		this.add(bq1,BorderLayout.NORTH);
		this.add(xxk);
		
		//设置窗体属性
		this.setTitle("qq—小劲");
		this.setIconImage((new ImageIcon("images\\qq.jpg")).getImage());
		this.setLocation(300, 300);
		this.setSize(400,400);
		this.setResizable(false);
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}



四、记事本界面

1、菜单组件(不参与布局,只需this.setJMenuBar(cd); 将菜单添加到窗体上)

JMenuBar    菜单条组件     树干

JMenu          菜单组件         树枝

JMenuItem    菜单项组件     树叶

2、二级菜单制作

JMenu里面可以嵌套JMenu

3、工具条组件(参与布局)

JToolBar    容器类组件

public class Text extends JFrame{
	//定义组件
	JMenuBar cd;//菜单条组件
	JMenu cd1,cd2,cd3,cd4,cd5;
	JMenuItem ycd1,ycd2,ycd3,ycd4,ycd5,ycd6,ycd7;
	JMenuItem ycd1_1,ycd1_2;//二级菜单
	JToolBar gjt;//工具条
	JButton an1,an2,an3,an4,an5;
	JTextArea wby;
	JScrollPane gdt;
	
	public static void main(String[] args) {
		Text t=new Text();
	}
	
	public Text() {
		//菜单
		cd=new JMenuBar();
		cd1=new JMenu("文件(F)");
		cd1.setMnemonic('F');//设置快捷键
		cd2=new JMenu("编辑(E)");
		cd2.setMnemonic('E');
		cd3=new JMenu("格式(O)");
		cd3.setMnemonic('O');
		cd4=new JMenu("查看(V)");
		cd4.setMnemonic('V');
		cd5=new JMenu("帮助(H)");
		cd5.setMnemonic('H');
		
		ycd1=new JMenu("新建");
		ycd1_1=new JMenuItem("文件",new ImageIcon("image/a.jpg"));
		ycd1_2=new JMenuItem("模板");
		
		ycd2=new JMenuItem("打开",new ImageIcon("image/a.jpg"));
		ycd3=new JMenuItem("保存(S)",new ImageIcon("image/a.jpg"));
		ycd3.setMnemonic('S');
		ycd4=new JMenuItem("另存为");
		ycd5=new JMenuItem("页面设置");
		ycd6=new JMenuItem("打印");
		ycd7=new JMenuItem("退出");
		
		ycd1.add(ycd1_1); ycd1.add(ycd1_2);
		cd1.add(ycd1); cd1.add(ycd2); cd1.add(ycd3); cd1.add(ycd4);
		cd1.addSeparator();//设置一条线
		cd1.add(ycd5); cd1.add(ycd6);
		cd1.addSeparator();
		cd1.add(ycd7);
		
		cd.add(cd1); cd.add(cd2); cd.add(cd3); cd.add(cd4); cd.add(cd5);
		this.setJMenuBar(cd); //将菜单添加到窗体上
		
		//工具条
		gjt=new JToolBar();
		an1=new JButton(new ImageIcon("images/4.gif"));
		an1.setToolTipText("新建");//设置提示文字
		an2=new JButton(new ImageIcon("images/1.gif"));
		an2.setToolTipText("打开");
		an3=new JButton(new ImageIcon("images/4.gif"));
		an3.setToolTipText("保存");
		an4=new JButton(new ImageIcon("images/2.gif"));
		an4.setToolTipText("剪切");
		an5=new JButton(new ImageIcon("images/1.gif"));
		an5.setToolTipText("复制");
		
		gjt.add(an1); gjt.add(an2); gjt.add(an3); gjt.add(an4); gjt.add(an5);
		
		wby=new JTextArea();
		gdt=new JScrollPane(wby);
		
		//增加组件  
		this.add(gjt,BorderLayout.NORTH);
		this.add(gdt);
		
		//设置窗体属性
		this.setTitle("迷你版记事本—小劲");
		this.setIconImage((new ImageIcon("images\\qq.jpg")).getImage());
		this.setLocation(300, 300);
		this.setSize(400,400);
		this.setResizable(false);
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}




本讲就到这里,Take your time and enjoy it

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值