zoukankan      html  css  js  c++  java
  • 3.体验GUI及Jframe框架

    体验GUI

    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    
    public class Demo {
        public static void main(String[] args) {
            // 创建JFrame
            JFrame frame = new JFrame("hello,world");
            // 设置尺寸
            frame.setSize(200, 100);
            // JFrame在屏幕居中
            frame.setLocationRelativeTo(null);
            // JFrame关闭时的操作
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            // 显示JFrame
            frame.setVisible(true);
    
        }
    }

    Jframe框架

    JFrame(框架)是一个容器

    创建一个用户界面需要创建一个JFrame来存放用户界面组件.例如存放按钮,文本框。

    javax.swing 
    类 JFrame
    java.lang.Object
      java.awt.Component
          java.awt.Container
              java.awt.Window
                  java.awt.Frame
                      javax.swing.JFrame

    创建一个框架

    public class Demo1 {
        public static void main(String[] args) {
            // 创建JFrame
            JFrame frame = new JFrame("我的frame");
            // 显示JFrame
            frame.setVisible(true);
    
        }
    }

    注意:需要调用setVisible(true)方法后才会显示框架

    运行程序会在窗口的左上角显示一个窗口,但是只能显示标题栏,而且关闭JFrame时,程序程序没有停止.

    所以需要完成如下需求:

    1: 设置Jframe的宽度和高度

    2: 让Jframe显示在屏幕中间

    3: 关闭Jframe时,程序会停止

    设置JFrame的宽度和高度

    java.awt.Window.setSize(int width, int height)

    查找API文档,查看 setSize方法,可以指定框架的宽度和高度.参数类型是int,注意是以像素为单位,普通的笔记本的屏幕分辨率为1280*800或者1366*768.注意:分辨率表示每平方英寸的像素数.屏幕分辨率越高,屏幕的像素越多.所以分辨率越高看到的细节就越多.

    setSize方法被定义在java.awt.Component类中,被Component  的子类java.awt.Window 重写.而Jframe以继承了Windiws类所以也具备该方法.

    JFrame显示在屏幕中间

    setLocationRelativeTo()方法

    java.awt.Window.setLocationRelativeTo(Component c)
    设置窗口相对于指定组件的位置。
    如果 c 为 null,则此窗口将置于屏幕的中央。

    setLocationRelativeTo(null)方法可以在屏幕上居中显示框架.

    如果不想要设置在中间,可以使用

    setLocation(200, 100);

    关闭JFrame程序停止

    setDefaultCloseOperation(int operation)方法

    javax.swing.JFrame.setDefaultCloseOperation(int operation)

    该方法告诉程序,当框架关闭时结束程序.方法的参数是JFrame 的常量EXIT_ON_CLOSE

     添加完毕

    public class Demo1 {
        public static void main(String[] args) {
            // 创建JFrame
            JFrame frame = new JFrame("我的frame");
            // 设置尺寸
            frame.setSize(200, 100);
            // JFrame在屏幕居中
            frame.setLocationRelativeTo(null);
            // JFrame关闭时的操作
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            // 显示JFrame
            frame.setVisible(true);
    
        }
    }

    框架中添加组件

    上述案例中的框架是空的.可以通过add方法在框架中添加组件

    java.awt.Container.add(Component comp)

    代码:

    public static void main(String[] args) {
            // 创建JFrame
            JFrame frame = new JFrame("我的frame");
    
            // 创建按钮
            JButton button = new JButton("OK");
            // 向frame中添加一个按钮
            frame.add(button);
    
            // 设置尺寸
            frame.setSize(200, 100);
            // JFrame在屏幕居中
            frame.setLocationRelativeTo(null);
            // JFrame关闭时的操作
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            // 显示JFrame
            frame.setVisible(true);
    
        }

    运行程序,会显示上图所示窗口.调整窗口的大小,按钮都是显示在窗口的中央,并且占满整个框架.这是因为组件(本例就是按钮)是被布局管理器放到框架中的.默认布局管理器就是将按钮放到中央.

    备注: 可以通过f.setVisible(false);  隐藏窗体f.dispose();关闭窗口

         设置图片:

         setIconImage(Toolkit.getDefaultToolkit().createImage("png-0015.png"));

    author@nohert
  • 相关阅读:
    adb shell am force-stop <package>
    推荐一个代码生成工具:freemarker
    子控件跟着父控件变色
    sqlite支持的数据库类型
    android 资源文件
    一个手机基础信息的获取代码
    二维码的开源项目
    在点击HOME键时, 在点击icon回到原来的应用。
    Wireshark "The NPF driver isn’t running…"
    .atomic vs volatile
  • 原文地址:https://www.cnblogs.com/gzgBlog/p/13670575.html
Copyright © 2011-2022 走看看