关于swing界面创建以及窗口放在屏幕中央的方法

来源:互联网 发布:现代四大名著网络 编辑:程序博客网 时间:2024/05/16 10:26
/*********************************************************************************************** * 关于创建swing界面,swing用户界面一般包含两种,一种是组件,一种是容器 * 常见的组件主要有:按钮、文本框、文本区域、标签、复选框、单选按钮、滚动条、列表、菜单项和滑块 * 常见的容器主要有:框架、面板、窗口、菜单、菜单栏和选项卡窗格 * 这一节主要学习工具提示,标准对话框等 ***********************************************************************************************///导入swing开发的相关库import javax.swing.*; import java.awt.*;public class Picture extends JFrame{ /****************************************************************************************** * 定义一些标签和文本框 * 这些标签和文本框的属性是类对象  ******************************************************************************************/public JLabel nameLabel=new JLabel("name:",SwingConstants.CENTER);public JTextField name;public JLabel urlLabel=new JLabel("URL:",SwingConstants.CENTER);public JTextField url;public JLabel typeLabel=new JLabel("Type:",SwingConstants.CENTER);public JTextField type;public JLabel numLabel=new JLabel("Number:",SwingConstants.CENTER);/****************************************************************************************** * 定义一个构造函数 * 构造函数中主要放置框架名称、尺寸、对关闭框架的响应等 ******************************************************************************************/public  Picture(){super("测试单元");//setSize(200,170);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/*************************************************************************************** 标准对话框 * 创建标准对话框需要使用JOptionPane,是一个小窗口,用于询问问题,向用户发出警告或者提供重要的消息 * 标准对话框不需要创建新的类、不用添加组件、也不用编写事件处理方法,所有这些都是用JOptionPane完成 * 有四个标准对话框类: * ConfirmDialog:询问问题,包含Yes、No、Cancel * InputDialog:提示用户输入文本 * MessageDialog:显示消息 * OptionDialog:包含上面三种对话框 * 具体的调用方法是:showConfirmDialog()、showInputDialog()、showMessageOption()以及 *    showOptionDialog() **************************************************************************************/String response1=JOptionPane.showInputDialog(null,"Enter the site name:");name=new JTextField(response1,20);String response2=JOptionPane.showInputDialog(null,"Enter the site address:");url=new JTextField(response2,20);String[] choices={"Personal","Commercial","Unknown"};//这里是最复杂的OptionPane()选项框,//第八个参数作为默认输出/************************************************************************************** *这里是最复杂的OptionPane()选项框 *第一个参数表示对话框的父组件 *第二个参数表示要显示的图标、文本或组件 *第三个参数表示对话框标题 *第四个参数表示对话框类型,有YES_NO_OPTION和YES_NO_CANCEL_OPTION,若要使用其他按钮,则字面量为0 *第五个参数表示要显示的图标,有ERROR_MESSAGE,INFORMATION_MESSAGE,PLAIN_MESSAGE,QUESTION_MESSAGE *或者是WARNING_MESSAGE,若要用其他图标,则字面量为0 *第六个参数表示Icon对象,用来替代第六个参数指定的图标 *choices被用作第七个参数,提示窗口中输出choices中的三个选项 *第八个参数表示默认输出 **************************************************************************************/int response3=JOptionPane.showOptionDialog(null, "what type of site is it?","Site type", 0, JOptionPane.QUESTION_MESSAGE, null, choices, choices[0]);//注意到上面的response3返回值是一个int类型,是用户挑选的,可以用于下面的choices[response3]type =new JTextField(choices[response3],20);/************************************************************************************** *滑块 *滑块使用类JSlider来完成,让用户能够通过滑动控制来设置一个位于最大值和最小值之间的值 *一般用滑块来获得数字输入,从而限制可输入的值 *JSlider的构造方法主要有下面几种: *JSlider(int):设置指定方向的滑块儿,0表示横向,1表示纵向。最大值100,最小值0,默认值50 *JSlider(int,int):指定最大值和最小值的滑块 *JSlider(int,int,int):指定最大值、最小值和默认值的滑块 *JSlider(int,int,int,int):指定方向、最小值、最大值、默认值的滑块 *在滑块加入容器之前,要进行一些标签的设置: *setMajorTickSpacing(int):按指定间隔设置主刻度线 *setMinorTickSpacing(int):按指定间隔设置次刻度线 *setPaintTicks(boolean):指定是否显示刻度线 *setPaintLabels(boolean):指定是否显示数字标签 **************************************************************************************/JSlider num=new JSlider(0);num.setMajorTickSpacing(20);num.setMinorTickSpacing(2);num.setPaintTicks(true);num.setPaintLabels(true);/***************************************************************************************滚动窗格 *内置在文本区域或者其他组件内,当组件无法将其中的文本一次性显示出来时,使用滚动条 *在swing中,要让组件能够滚动,必须将它加入到容器JScrollPane中,再将该容器加入其他容器中 *使用函数ScrollPane来创建滚动窗格 *默认情况下,滚动窗格仅在需要是才会显示滚动条,窗格组件比窗格本身小的时候,滚动条将不会出现 *************************************************************************************/JTextArea textBox=new JTextArea(200,1000);JScrollPane scroller=new JScrollPane(textBox);JLabel scrollLabel=new JLabel("Scroll:",SwingConstants.CENTER);/***************************************************************************************工具栏 *用JTooBar类来创建,这是一个容器,将多个组件组织为一行或者一列,被阻止的组件称之为按钮 *默认时,工具栏是水平的 *构造函数为: *JToolBar():新建一个工具栏 *JToolBar(int):创建了工具栏,并指定其方向 *创建以后,使用方法add()来加入其他组件,形成工具栏 *************************************************************************************/JToolBar bar=new JToolBar(0);JButton load=new JButton("load");JButton save=new JButton("save");bar.add(load);bar.add(save);JLabel barLabel=new JLabel("barlabel:",SwingConstants.CENTER);/**************************************************************************************顺序布局 *FlowLayout界面布局管理器 *FlowLayout是最简单的布局管理器,位于java.awt包中,按组件添加顺序从左向右排列。 *FlowLayout(int,int,int)接受三个参数: *第一个参数表示对其方式 *第二个参数表示组件间的水平距离 *第三个参数表示组件间的垂直距离 *************************************************************************************///FlowLayout manager=new FlowLayout(FlowLayout.CENTER,30,10);//setLayout(manager);/**************************************************************************************方框布局 *BoxLayout类表示方框布局,将组件从左到右或者从上到下排列 *位于javax.swing包中 *对顺序布局作了改进,不管容器的大小如何变化,组件总是排列成一行或者一列 *************************************************************************************///JPanel pla=new JPanel();//BoxLayout boxlay=new BoxLayout(pla,BoxLayout.X_AXIS);//pla.setLayout(boxlay);/**************************************************************************************网格布局 *将组件放置到由行和列组成的网格中,从网格的第一行开始,从左向右开始排列 *由类GridLayout来定义,位于java.awt包中 *提供了两个参数,分别是网格的行数和列数 *可以指定组件之间的垂直间距和水平间距,通过调用setHgap()和setVap()方法来实现 *也可以调用GridLayout中四个参数来实现,前两个表示行数和列数,后两个表示水平间距和垂直间距 *************************************************************************************/GridLayout grid=new GridLayout(6,1,5,8);setLayout(grid);//setLayout(new GridLayout(6,1,5,8));/**************************************************************************************边框布局 *BorderLayout类,位于java.awt包中,将容器分为5部分,分别是东西南北中 *构造方法BorderLayout()和BorderLayout(int,int),前一个组件间的间距为零,后一个指定水平和垂直间距 *这也是一个容器类,建立完成以后,也要将各个组件添加到容器中 *指定组件加入到边框布局的哪个区域,包括SOUTH,NORTH,EAST,WEST,CENTER *举个例子: * *JButton bt=new JButton("quit"); *add(bt,BorderLayout.WEST); *************************************************************************************///直接在框架中添加各种组件,而没有选择添加容器的方式add(nameLabel);add(name);add(urlLabel);add(url);add(typeLabel);add(type);add(numLabel);add(num);add(scrollLabel);add(scroller);add(barLabel);add(bar);//add(pla);//setSize(200,600);pack();}}



把窗口放置在屏幕的中央:

     int windowWidth = frame.getWidth();                     //获得窗口宽     int windowHeight = frame.getHeight();                   //获得窗口高            Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();             //获取屏幕的尺寸     int screenWidth = screenSize.width;                     //获取屏幕的宽     int screenHeight = screenSize.height;                   //获取屏幕的高     frame.setLocation(screenWidth/2-windowWidth/2, screenHeight/2-windowHeight/2);//设置窗口居中显示  



0 0
原创粉丝点击