<目录>

1 创建一个简单的窗体

如何进行事件监听

  (1) 按钮监听

  (2) 键盘监听

  (3) 鼠标监听

3 容器

  (1) 创建一个简单的对话框

  (2) 创建一个简单的模态对话框

  (3) 使窗体大小不可变化

4 布局器

  (1) 绝对定位

  (2) FlowLayout(顺序布局器:容器上的组件水平摆放)

  (3) BorderLayout(边框布局器:容器上的组件按上北、下南、左西、右东、中的顺序摆放)

  (4) GridLayout(网格布局器:容器上的组件按网格区域摆放)

  (5) setPreferredSize(使用布局器的时候,改变组件显示大小,仅部分有效)

  (6) CardLayout

5 组件

  (1) 标签

  (2) 使用JLabel显示图片

  (3) 按钮

  (4) 复选框

  (5) 单选框

  (6) 按钮组

  (7) 下拉框

  (8) 对话框

  (9) 文本框

  (10) 密码框

  (11) 文本域

  (12) 进度条

  (13) 文件选择器

6 面板

  (1) 基本面板

  (2) ContentPane

  (3) SplitPanel

  (4) JScrollPanel

  (5) TabbedPanel

  (6) CardLayerout

7 菜单

  (1) 菜单栏和菜单

  (2) 菜单项

8 工具栏

  (1) 工具栏

  (2) 给按钮设置提示信息

  (3) 禁止工具栏拖动

9 表格

  (1) 基本表格

  (2) JScrollPane

  (3) 列宽

  (4) TableModel

  (5) 进一步理解TableModel

  (6) TableModel与DAO结合

  (7) TableSelectionModel

  (8) 更新Table

  (9) 输入项验证

  (10) 选中指定行

10 日期控件

  (1) DatePicker

  (2) JXDatePicker

11 Swing中的线程

  (1) 三种线程

  (2) 事件调度线程是单线程的

  (3) 初始化线程

  (4) 事件调度线程

  (5) 长耗时任务线程

12 皮肤


<正文内容>

<创建一个简单的窗体>

package practice;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Test {
    public static void main(String[] args) {
        JFrame f=new JFrame("Kannyi的窗体");  //主窗体,括号里面是标题
        f.setSize(400,300);                  //主窗体设置大小,宽400高300
        f.setLocation(200, 200);             //主窗体设置位置,距离(屏幕左侧200,屏幕上方200)
        f.setLayout(null);                   //主窗体中的组件设置为绝对定位

        JButton b=new JButton("Kannyi的按钮");//按钮组件,还没设置功能
        b.setBounds(50,50,280,30);           //同时设置组件的位置和大小
        f.add(b);                            //把按钮加入到主窗体中

        //关闭窗体时,退出程序,不关会越来越卡
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //让窗体可见
        f.setVisible(true);
    }
}

界面如下:

<如何进行事件监听>

(1)按钮监听

package practice;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Test {
    public static void main(String[] args) {
        JFrame f=new JFrame("Kannyi的窗体"); //主窗体,括号里面是标题
        f.setSize(400,300);                 //主窗体设置大小,宽400高300
        f.setLocation(580,200);             //主窗体设置位置,距离(屏幕左侧200,屏幕上方200)
        f.setLayout(null);                  //主窗体中的组件设置为绝对定位

        //标签,用于显示信息,比如文本或图像
        JLabel l1=new JLabel();
        //获取图像
        ImageIcon i=new ImageIcon("C:/Users/ASUS/Pictures/其他/img.png");
        //设置指定的图像到标签中
        l1.setIcon(i);
        //设置标签的位置和大小
        l1.setBounds(50,50,i.getIconWidth(),i.getIconHeight());

        JLabel l2=new JLabel();
        l2.setText("Kannyi的文本");          //设置指定的文本到标签中
        l2.setBounds(30, 30, 80, 12);       //设置标签的位置和大小,高度太高排版会出问题,12正好

        JButton b=new JButton("隐藏图片");    //按钮组件
        b.setBounds(250,200,100,30);

        //给按钮增加监听
        //写法1
        /*----------------------------------------------
        b.addActionListener(new ActionListener(){
            //当按钮被点击时,actionPerformed方法就会被执行
            //就会触发ActionEvent事件
            public void actionPerformed(ActionEvent e) {
                l.setVisible(false);
            }
        });
        -----------------------------------------------*/
        //写法2
        b.addActionListener(e->l1.setVisible(false));

        f.add(b);
        f.add(l1);
        f.add(l2);

        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
    }
}

界面如下:

(2)键盘监听

package practice;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Test {
    public static void main(String[] args) {

        JFrame f = new JFrame("Kannyi的窗体");
        f.setSize(400, 300);
        f.setLocation(580, 200);
        f.setLayout(null);

        JLabel l = new JLabel();
        ImageIcon i = new ImageIcon("C:/Users/ASUS/Pictures/其他/img.png");
        l.setIcon(i);
        l.setBounds(50, 50, i.getIconWidth(), i.getIconHeight());

        //增加键盘监听
        f.addKeyListener(new KeyListener() {
            //键被弹起
            public void keyReleased(KeyEvent e) {
                //左键37 上键38 右键39 下键40
                /*
                可用下面这个函数知道键位的Code
                System.out.println(e.getKeyCode());
                */

                if (e.getKeyCode() == 37) {
                    //图片向左移动 (x坐标减少,y坐标不变)
                    l.setLocation(l.getX() -10, l.getY());
                }
                if (e.getKeyCode() == 38) {
                    //图片向上移动 (x坐标不变,y坐标减少)
                    l.setLocation(l.getX(), l.getY() - 10);
                }
                if (e.getKeyCode() == 39) {
                    //图片向右移动 (x坐标增加,y坐标不变)
                    l.setLocation(l.getX() + 10, l.getY());
                }
                if (e.getKeyCode() == 40) {
                    //图片向下移动 (x坐标不变,y坐标增加)
                    l.setLocation(l.getX(), l.getY() + 10);
                }
            }

            //键被按下,可以实现连续运动
            //之前被定义过的键位就不能用了
            public void keyPressed(KeyEvent e) {

            }

            // 一个按下弹起的组合动作
            //不会用!!!
            public void keyTyped(KeyEvent e) {

            }
        });

        f.add(l);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
    }
}

界面如下(看不出什么特别,因为要用键盘实现上下左右操作):

(3)鼠标监听

package practice;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Random;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Test {
    public static void main(String[] args) {

        JFrame f = new JFrame("Kannyi的窗体");
        f.setLayout(null);
        f.setSize(500, 400);
        f.setLocationRelativeTo(null);               //设置窗体在屏幕正中央

        JLabel l = new JLabel();
        ImageIcon i = new ImageIcon("C:/Users/ASUS/Pictures/其他/img.png");
        l.setIcon(i);
        l.setBounds(150, 100, i.getIconWidth(), i.getIconHeight());

        /*
        //鼠标监听-方法1
        //这种方法的缺点在于每个方法都要写出来,很麻烦
        l.addMouseListener(new MouseListener() {
            //释放鼠标
            public void mouseReleased(MouseEvent e) {

            }

            //按下鼠标
            public void mousePressed(MouseEvent e) {

            }

            //鼠标退出
            public void mouseExited(MouseEvent e) {

            }

            //鼠标进入
            public void mouseEntered(MouseEvent e) {
                //Random r.nextInt(int n)可以随机生成一个[0,n)的区间
                Random r = new Random();
                //下面的相减操作是防止图片随机到窗体外
                int x = r.nextInt(f.getWidth() - l.getWidth());
                int y = r.nextInt(f.getHeight() - l.getHeight());
                l.setLocation(x, y);
            }

            //按下释放组合动作为点击鼠标
            public void mouseClicked(MouseEvent e) {

            }
        });
         */

        //鼠标监听-方法2
        //用适配器,只需要重写用到的方法即可,较为方便
        l.addMouseListener(new MouseAdapter() {
            //只有mouseEnter用到了
            public void mouseEntered(MouseEvent e) {
                Random r=new Random();
                int x=r.nextInt(f.getWidth()-l.getWidth());
                int y=r.nextInt(f.getHeight()-l.getHeight());
                l.setLocation(x, y);
            }
        });

        f.add(l);

        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
    }
}

界面如下(看不出什么特别,因为要用鼠标实现操作):

<容器>

(1)创建一个简单的对话框

package practice;

import javax.swing.JButton;
import javax.swing.JDialog;

public class Test {
    public static void main(String[] args) {
        JDialog d=new JDialog();             //对话框
        d.setTitle("Kannyi的对话框");         //设置对话框的标题
        d.setSize(400,300);
        d.setLocation(200,200);
        d.setLayout(null);

        JButton b=new JButton("kannyi的按钮");
        b.setBounds(50,50,280,30);

        d.add(b);

        d.setVisible(true);
    }
}

界面如下:

(2)创建一个简单的模态对话框(父窗体不能被激活,除非对话框关闭)

package practice;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;

public class Test {
    public static void main(String[] args) {
        JFrame f=new JFrame("Kannyi的外部窗体");
        f.setSize(600, 500);
        f.setLocation(100, 100);

        JDialog d=new JDialog(f);   //根据外部窗体实例化JDialog
        d.setModal(true);           //设置为模态,其后的父窗体不能被激活,除非对话框关闭

        d.setTitle("Kannyi的模态对话框");
        d.setSize(400,300);
        d.setLocation(200,200);
        d.setLayout(null);

        JButton b=new JButton("Kannyi的按钮");
        b.setBounds(50,50,280,30);

        d.add(b);

        f.setVisible(true);
        d.setVisible(true);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

界面如下:

(3)使窗体大小不可变化

package practice;

import javax.swing.JButton;
import javax.swing.JFrame;

public class Test {
    public static void main(String[] args) {
        JFrame f=new JFrame("Kannyi的窗口");
        f.setSize(400,300);
        f.setLocation(200, 200);
        f.setLayout(null);

        JButton b=new JButton("Kannyi的按钮");
        b.setBounds(50, 50, 280, 30);

        f.add(b);
        //窗体大小不可变化
        f.setResizable(false);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        f.setVisible(true);
    }
}

界面如下:

<布局器>

(1)绝对定位

package practice;

import javax.swing.JButton;
import javax.swing.JFrame;

public class Test {

    public static void main(String[] args) {
        JFrame f=new JFrame("Kannyi的窗体");
        f.setSize(400,300);
        f.setLocation(200,200);
        //绝对定位:设置布局器为null,容器上的组件都需要指定位置和大小
        f.setLayout(null);

        JButton b1=new JButton("按钮1");
        b1.setBounds(50,50,70,30);
        JButton b2=new JButton("按钮2");
        b2.setBounds(150,50,80,30);
        //没有指定位置和大小,不会出现在容器上
        JButton b3=new JButton("按钮3");

        f.add(b1);
        f.add(b2);
        f.add(b3);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        f.setVisible(true);
    }
}

界面如下:

(2)FlowLayout

package practice;

import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;

public class Test {

    public static void main(String[] args) {
        JFrame f=new JFrame("Kannyi的窗体");
        f.setSize(400,300);
        f.setLocation(200, 200);
        //设置布局器为FlowLayrout
        //容器上的组件水平摆放
        f.setLayout(new FlowLayout());

        JButton b1=new JButton("按钮1");
        JButton b2=new JButton("按钮2");
        JButton b3=new JButton("按钮3");

        //加入到容器,无需单独指定大小和位置
        f.add(b1);
        f.add(b2);
        f.add(b3);

        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
    }
}

界面如下:

(3)BorderLayout

package practice;

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JFrame;

public class Test {

    public static void main(String[] args) {
        JFrame f=new JFrame("Kannyi的窗体");
        f.setSize(400,300);
        f.setLocation(200,200);
        //设置布局为BorderLayout
        //容器上的组件按照 上北 下南 左西 右东 的顺序摆放(可以自己设置)
        f.setLayout(new BorderLayout());

        JButton b1 = new JButton("按钮1");
        JButton b2 = new JButton("按钮2");
        JButton b3 = new JButton("按钮3");
        JButton b4 = new JButton("按钮4");
        JButton b5 = new JButton("按钮5");

        //加入到容器的时候,需要指定位置
        f.add(b1, BorderLayout.NORTH);
        f.add(b2, BorderLayout.SOUTH);
        f.add(b3, BorderLayout.WEST);
        f.add(b4, BorderLayout.EAST);
        f.add(b5, BorderLayout.CENTER);

        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
    }
}

界面如下:

(4)GridLayout

import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;

public class Test {
    public static void main(String[] args) {

        JFrame f = new JFrame("Kannyi的窗体");
        f.setSize(400, 300);
        f.setLocation(200, 200);
        // 设置布局器为GridLayerout,即网格布局器
        // 该GridLayerout的构造方法表示该网格是2行3列
        f.setLayout(new GridLayout(2, 3));

        JButton b1 = new JButton("甲");
        JButton b2 = new JButton("乙");
        JButton b3 = new JButton("丙");
        JButton b4 = new JButton("丁");
        JButton b5 = new JButton("戊");

        f.add(b1);
        f.add(b2);
        f.add(b3);
        f.add(b4);
        f.add(b5);

        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
    }
}

界面如下:

(5)setPreferredSize

import java.awt.Dimension;
import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;

public class Test {
    public static void main(String[] args) {

        JFrame f = new JFrame("Kannyi的窗体");
        f.setSize(400, 300);
        f.setLocation(200, 200);
        f.setLayout(new FlowLayout());

        JButton b1 = new JButton("甲");
        JButton b2 = new JButton("乙");
        JButton b3 = new JButton("丙");

        // 即便使用布局器,也可以通过setPreferredSize,向布局器建议该组件显示的大小
        b3.setPreferredSize(new Dimension(180, 40));

        f.add(b1);
        f.add(b2);
        f.add(b3);

        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
    }
}

界面如下:

(6)CardLayout

界面如下:

<组件>

(1)标签

界面如下:

(2)使用JLabel显示图片

界面如下:

(3)按钮

界面如下:

(4)复选框

界面如下:

(5)单选框

界面如下:

(6)按钮组

界面如下:

(7)下拉框

界面如下:

(8)对话框

界面如下:

(9)文本框

界面如下:

(10)密码框

界面如下:

(11)文本域

界面如下:

(12)进度条

界面如下:

(13)文件选择器

界面如下:

<面板>

(1)基本面板

界面如下:

(2)ContentPane

界面如下:

(3)SplitPanel

界面如下:

(4)JScrollPanel

界面如下:

(5)TabbedPanel

界面如下:

(6)CardLayerout

界面如下:

<菜单>

(1)菜单栏和菜单

package practice;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;

public class Test33 {

    public static void main(String[] args) {
        JFrame f = new JFrame("Kannyi");
        f.setSize(400, 300);
        f.setLocation(200, 200);

        //菜单栏
        JMenuBar mb = new JMenuBar();

        //菜单
        JMenu mHero = new JMenu("英雄");
        JMenu mItem = new JMenu("道具");
        JMenu mWord = new JMenu("符文");
        JMenu mSummon = new JMenu("召唤师");
        JMenu mTalent = new JMenu("天赋树");

        //把菜单加入到菜单栏
        mb.add(mHero);
        mb.add(mItem);
        mb.add(mWord);
        mb.add(mSummon);
        mb.add(mTalent);

        //把菜单栏加入到frame,这里用的是set而非add
        f.setJMenuBar(mb);

        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
    }
}

界面如下:

(2)菜单项

package practice;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class Test34 {

    public static void main(String[] args) {
        JFrame f = new JFrame("Kannyi的窗体");
        f.setSize(500, 400);
        f.setLocation(200, 200);

        JMenuBar mb = new JMenuBar();

        JMenu mHero = new JMenu("英雄");
        JMenu mItem = new JMenu("道具");
        JMenu mWord = new JMenu("符文");
        JMenu mSummon = new JMenu("召唤师");
        JMenu mTalent = new JMenu("天赋树");

        //菜单项
        mHero.add(new JMenuItem("近战"));
        mHero.add(new JMenuItem("远程"));
        mHero.add(new JMenuItem("物理"));
        mHero.add(new JMenuItem("坦克"));
        mHero.add(new JMenuItem("法系"));
        mHero.add(new JMenuItem("辅助"));
        mHero.add(new JMenuItem("打野"));
        mHero.add(new JMenuItem("突进"));
        mHero.add(new JMenuItem("男性"));
        mHero.add(new JMenuItem("女性"));
        //分隔符
        mHero.addSeparator();
        mHero.add(new JMenuItem("所有"));

        mb.add(mHero);
        mb.add(mItem);
        mb.add(mWord);
        mb.add(mSummon);
        mb.add(mTalent);

        f.setJMenuBar(mb);

        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
    }
}

界面如下:

<工具栏>

(1)工具栏

界面如下:

(2)给按钮设置提示信息

界面如下:

(3)禁止工具栏拖动

界面如下:

<表格>

(1)基本表格

界面如下:

(2)JScrollPane

界面如下:

(3)列宽

界面如下:

(4)TableModel

界面如下:

(5)进一步理解TableModel

界面如下:

(6)TableModel与DAO结合

界面如下:

(7)TableSelectionModel

界面如下:

(8)更新Table

界面如下:

(9)输入项验证

界面如下:

(10)选中指定行

界面如下:

<日期控件>

(1)DatePicker

界面如下:

(2)JXDatePicker

界面如下:

<Swing中的线程>

(1)三种线程

界面如下:

(2)事件调度线程是单线程的

界面如下:

(3)初始化线程

界面如下:

(4)事件调度线程

界面如下:

(5)长耗时任务线程

界面如下:

<皮肤>

界面如下:

【Java项目】GUI图形用户界面(不断更新中!)的更多相关文章

  1. java第八节 GUI/图形用户界面

    /* *第8讲 GUI/图形用户界面 * AWT的基础知识 * GUI全称是Graphical User Interface,即图形用户界面 * JDK中提供了AWT和Swing两个包,用于GUI程序 ...

  2. AWT是Java基础类 (JFC)的一部分,为Java程序提供图形用户界面(GUI)的标准API

    抽象窗口工具包 (Abstract Windowing Toolkit) (AWT)是Java的平台独立的窗口系统,图形和用户界面器件工具包. AWT是Java基础类 (JFC)的一部分,为Java程 ...

  3. 黑马程序员_<<GUI(图形用户界面)--------1>>

    --------------------ASP.Net+Android+IOS开发..Net培训.期待与您交流! -------------------- 1.  GUI图形用户界面 1.简述 Gra ...

  4. JAVA记事本的图形用户界面应用程序含过滤

    JAVA记事本的图形用户界面应用程序 过滤 题目简介: 整体分析: 实验代码: package note; import java.awt.EventQueue; import java.awt.ev ...

  5. JAVA记事本的图形用户界面应用程序含加密

    JAVA记事本的图形用户界面应用程序 加密 题目简介: 整体分析: 实验代码: import java.awt.EventQueue; import java.awt.event.ActionEven ...

  6. JAVA记事本的图形用户界面应用程序

    JAVA记事本的图形用户界面应用程序 整体分析: 代码实现: import java.awt.EventQueue; import java.awt.event.ActionEvent; import ...

  7. java GUI(图形用户界面)

    GUI Graphical User Interface(图形用户接口). 用图形的方式,来显示计算机操作的界面,这样更方便更直观. CLI Command line User Interface ( ...

  8. linux系统中firewalld防火墙管理工具firewall-config(GUI图形用户界面)

    firewall-config是firewalld防火墙管理工具的GUI(图形用户界面)版本,几乎可以实现所有以命令行来执行的操作. firewall-config的界面如下图(在终端直接运行fire ...

  9. 十一:Java之GUI图形Awt和Swing

    一. AWT和 Swing AWT 和 Swing 是 Java 设计 GUI用户界面的基础.与 AWT 的重量级组件不同,Swing 中大部分是轻量级组件.正是这个原因,Swing 差点儿无所不能, ...

  10. GUI(图形用户界面)

    一.GUI(图形用户界面) GUI Graphical User Interface(图形用户接口) 用图形的方式,来显示计算机操作的界面,这样更方便更直观 CLI Command line User ...

随机推荐

  1. Week1——JavaEE

    本科目标 首先,对我来说自己想走的方向是JavaWeb后台开发,因此JavaEE对我来说也是比较重要的,想学好这门课.进一步巩固自己现有的基础知识,完善自己的项目经验,更加熟悉开发流程.在框架方面我还 ...

  2. PRINCE2认证与其他项目管理认证标准有何不同?

    国际项目管理协会 (IPMA)根据国际能力基线建立了一种国际公认的标准,并由其各国协会译成各国语言.这是IPMA四级证书的基础,现在已在全世界推广.可喜的是,PRINCE2与这个标准高度一致. 美国项 ...

  3. maven(17)-自动发布到远程linux服务器

     发布方式 手工方式:需要做一系列的工作,包括打WAR包,上传到服务器,重启服务器,删除旧文件等 自动方式:一条命令完成以上所有过程 服务器环境 centos7.3和tomcat8,关于cento ...

  4. error:将字符串转换为 uniqueidentifier 时失败

    sql server查询中出现 将字符串转换为 uniqueidentifier 时失败异常 原因为id设置为uniqueidentifier 字段,在where查询时需要做转换cast(id as ...

  5. CentOS 7 yum 安装 Nginx

    1.添加Nginx到YUM源 添加CentOS 7 Nginx yum资源库,打开终端,使用以下命令: sudo rpm -Uvh http://nginx.org/packages/centos/7 ...

  6. Linux案例01:eth0网卡异常

    一.现象描述 今天在调试两台物理机,做完配置重启主机后,发现一台服务器网络无法ssh连接,通过ILO进去ifconfig发现eth0配置的IP地址等信息丢失,手动重启后,可以ssh连接,但过一段时间, ...

  7. Windows Server 2003 动态网站IIS设置(图)

    一.安装IIS     Windows Server 2003 虽说是服务器版本,但在默认情况下并没有安装IIS,要在本地浏览asp,PHP等动态网页,就必须安装IIS.在买系统盘的时候,请注意看一下 ...

  8. Excel操作之级联菜单

    设置级联菜单主要用的是excel的数据验证功能.下面以简单的设置城市选择框为例: 1.准备好数据 2.给所有省份起个名称(例如:省份),然后同样方法给每个省份所对应的城市以其省份命名,(例如:南京.苏 ...

  9. Java实例---简单的超市管理系统

    代码分析 Customer.java package test; public class Customer { private String name; private int customerTy ...

  10. Nginx学习---Nginx的详解_【all】

    1.1. Nginx简介 1.什么是nginx nginx:静态的,开源的www软件,可以解析静态的小文件(低于1M ),支持高并发占用较发少的资源(3W并发,10个进程,内存150M),跨平台 te ...