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
  • 相关阅读:
    欧拉公式
    isap的一些想法
    错误合集
    Hello World
    PAT (Advanced Level) Practice 1068 Find More Coins
    PAT (Advanced Level) 1087 All Roads Lead to Rome
    PAT (Advanced Level) 1075 PAT Judge
    PAT (Advanced Level) 1067 Sort with Swap(0, i)
    PAT (Advanced Level) 1017 Queueing at Bank
    PAT (Advanced Level) 1025 PAT Ranking
  • 原文地址:https://www.cnblogs.com/gzgBlog/p/13670575.html
Copyright © 2011-2022 走看看