课本作业

Swing

package com.vetor.Demo;

import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;

import javax.swing.*;

public class WindowMenu extends JFrame { //JFrame的子类
	JMenuBar menubar;
	JMenu menu,subMenu;
	JMenuItem item1,item2;
	
	//框架
	public WindowMenu(String s,int x,int y,int w,int h)
	{
		init(s);
		setBounds(x, y, w, h); //大小
		setVisible(true);    //可见   
		setDefaultCloseOperation(DISPOSE_ON_CLOSE); //关闭
	}
	
	//具体
	void init(String s) {
		setTitle(s);  //设置标题
		//创建了一些组件
		menubar = new JMenuBar(); //菜单条
		menu = new JMenu("菜单");
		subMenu = new JMenu("软件项目");
		item1 = new JMenuItem("java话题");
		item2 = new JMenuItem("动画话题");
		//设置键
		item1.setAccelerator(KeyStroke.getKeyStroke('A'));
		item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
		//添加组件了!!!
		menu.add(item1);
		menu.addSeparator(); //下划线
		menu.add(item2);
		menu.add(subMenu);
		subMenu.add(new JMenuItem("汽车销售系统"));
		subMenu.add(new JMenuItem("农场信息系统"));
		menubar.add(menu);
		//添加菜单选项
		setJMenuBar(menubar);
		
	}

}

package com.vetor.Demo;

import java.awt.BorderLayout;

import javax.swing.*;


public class ShowLayout extends JFrame{
	//这样写的话就可以进行多次利用
	PanelGridLayout pannelGrid; //网格布局的面板
	PanelNullLayout panelNull;  //空布局的面板
	JTabbedPane p ;            //选项卡窗格
	
	
	ShowLayout() {
		pannelGrid = new PanelGridLayout();
		panelNull = new PanelNullLayout();
		p = new JTabbedPane();
		
		
		p.add("网格布局的面板",pannelGrid);
		p.add("空布局的面板",panelNull);
		
		add(p,BorderLayout.CENTER);
		add(new JButton("窗体是BorderLayout布局"),BorderLayout.NORTH);
		add(new JButton("南"),BorderLayout.SOUTH);
		add(new JButton("西"),BorderLayout.WEST);
		add(new JButton("东"),BorderLayout.EAST);
		
		setBounds(10, 10, 570, 390);
		setVisible(true);
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		validate();       //
	}

}


package com.vetor.Demo;

import javax.swing.*;

public class PanelNullLayout extends JPanel{

	JButton button;
	JTextField text;
	
	public PanelNullLayout() {
		setLayout(null);   //空布局
		button = new JButton("确定");
		text = new JTextField();
		
		add(text);
		add(button);
		//窗口中又有窗口,相对于窗口的位置及大小
		text.setBounds(100, 30, 90, 30);
		button.setBounds(190, 30, 66, 30);
	}
}


import java.awt.*;

import javax.swing.*;

public class PanelGridLayout extends JPanel {

	PanelGridLayout() {
		GridLayout grid = new GridLayout(12,12);  //网格布局
		setLayout(grid);
		Label label[][] = new Label[12][12]; //创建一个二维数组的标签
		//添加标签并设置颜色
		for(int i = 0; i < 12;i++)
		{
			for(int j = 0; j<12;j++)
			{
				label[i][j] = new Label();
				if((i+j)%2==0)
				{
					label[i][j].setBackground(Color.black);
				}
				else {
					label[i][j].setBackground(Color.white);
				}
				add(label[i][j]);
			}
		}
	}
}

public class Example9_4 {

	public static void main(String[] args) {
		new ShowLayout();
		
	}
}
public class Example9_3 {
	public static void main(String[] args) {
		//继承JFrame的类就变成了一个窗体
		ComponentInWindow win = new ComponentInWindow(); 
		win.setBounds(100, 100, 450, 260);
		win.setTitle("常用组件");
	}
}
public class Example9_2 {
	public static void main(String[] args) {
	
		WindowMenu win = new WindowMenu("带菜单的窗口", 20, 30, 200, 190);
		

	}
}
package com.vetor.Demo;

import java.awt.*;

import javax.swing.*;

public class ComponentInWindow extends JFrame{

	JCheckBox checkBox1,checkBox2;  //复选框
	JRadioButton radioM,radioF;   //单选框
	ButtonGroup group;    
	JComboBox<String> comBox;   //下拉列表
	
	public ComponentInWindow() {
		init();
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	public void init() {
		setLayout(new FlowLayout());
		comBox = new JComboBox<>();
		checkBox1 = new JCheckBox("喜欢音乐");
		checkBox2 = new JCheckBox("喜欢旅游");
		group = new ButtonGroup();
		radioM = new JRadioButton("男");
		radioF = new JRadioButton("女");
		//归组才能实现单选
		group.add(radioF);
		group.add(radioM); //同一组
		
		add(checkBox1);
		add(checkBox2);
		add(radioF);
		add(radioM);
		comBox.addItem("音乐天地");
		comBox.addItem("武术天地");
		add(comBox);
		
	}
}


例子五:
public class Example9_5 {
	public static void main(String[] args) {
		
		WindowBoxLayout win = new WindowBoxLayout();
		win.setBounds(100, 100, 310, 260);
		win.setTitle("嵌套盒式布局容器");
		
	}
}

import java.awt.*;
import javax.swing.*;

public class WindowBoxLayout extends JFrame{
	
	Box boxH;      //行式盒
	Box boxVOne,boxVtwo;   //列式盒
	
	public WindowBoxLayout() {

		setLayout(new java.awt.FlowLayout());

	}
	
	void init() {
		boxH = Box.createHorizontalBox();
		boxVOne = Box.createVerticalBox();
		boxVtwo = Box.createVerticalBox();
		boxVOne.add(new JLabel("姓名:"));
		boxVOne.add(new JLabel("职业:"));
		boxVtwo.add(new TextField(10));
		boxVtwo.add(new JTextField(10));
		boxH.add(boxVOne);
		boxH.add(Box.createHorizontalStrut(10));
		boxH.add(boxVtwo);
	    add(boxH);  //最后将最大的东西添加进去
	
	}
	
}

2.部分结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值