`

使用JFrame创建窗口

阅读更多

Java.swing包中的JFrame类对于创建窗口很有效,它继承Container类,能够包含其它的组件.

右边显示了创建窗口的代码和JFrame的几个常用函数.

public class MyFrame extends JFrame {
  private static final long serialVersionUID = 1379963724699883220L;

  /**
   * 构造函数
   * 
   */
  public MyFrame() {
    // 设置窗口标题
    this.setTitle("程序标题");

    // 定位窗口
    this.setLocation(20, 20);
    
    // 设置窗口大小
    this.setSize(480, 320);
    
    // 显示窗口
    setVisible(true);
  }
  
  public static void main(String[] args){
    new MyFrame();
  }
}

将窗口定位在屏幕正中

使用Toolkit.getDefaultToolkit().getScreenSize()方法可以取得屏幕的大小,再调用setLocation函数可以将程序定位在屏幕正中.

public class MyFrame extends JFrame {
  private static final long serialVersionUID = 1379963724699883220L;

  /**
   * 构造函数
   * 
   */
  public MyFrame() {
    // 设置窗口标题
    this.setTitle("程序标题");

    // 设置程序大小并定位程序在屏幕正中
    setSizeAndCentralizeMe(480, 320);
    
    // 显示窗口
    setVisible(true);
  }
  
  // 设置程序大小并定位程序在屏幕正中
  private void setSizeAndCentralizeMe(int width, int height) {
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    this.setSize(width, height);
    this.setLocation(screenSize.width / 2 - width / 2, screenSize.height
        / 2 - height / 2);
  }
  
  public static void main(String[] args){
    new MyFrame();
  }
}

点击窗口右上角的关闭按钮关闭窗口,退出程序

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)可以达到此功能,否则按关闭按钮窗口关闭但不退出程序.

public class MyFrame extends JFrame {
  private static final long serialVersionUID = 1379963724699883220L;

  /**
   * 构造函数
   * 
   */
  public MyFrame() {
    // 设置窗口标题
    this.setTitle("程序标题");

    // 设置程序大小并定位程序在屏幕正中
    setSizeAndCentralizeMe(480, 320);
    
    // 显示窗口
    setVisible(true);
    
    // 点击窗口右上角的关闭按钮关闭窗口,退出程序
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
  
  // 设置程序大小并定位程序在屏幕正中
  private void setSizeAndCentralizeMe(int width, int height) {
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    this.setSize(width, height);
    this.setLocation(screenSize.width / 2 - width / 2, screenSize.height
        / 2 - height / 2);
  }
  
  public static void main(String[] args){
    new MyFrame();
  }
}

添加窗口关闭事件处理

// 点击窗口右上角的关闭按钮关闭窗口,退出程序
    this.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        System.out.println("程序退出.");
        System.exit(0);
      }
    });

上面的代码实现了一个WindowAdapter的匿名类,并将它注册为窗口事件的监听器.

public class MyFrame extends JFrame {
  private static final long serialVersionUID = 1379963724699883220L;

  /**
   * 构造函数
   * 
   */
  public MyFrame() {
    // 设置窗口标题
    this.setTitle("程序标题");

    // 设置程序大小并定位程序在屏幕正中
    setSizeAndCentralizeMe(480, 320);

    // 显示窗口
    setVisible(true);

    // 点击窗口右上角的关闭按钮关闭窗口,退出程序
    this.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        System.out.println("程序退出.");
        System.exit(0);
      }
    });
  }

  // 设置程序大小并定位程序在屏幕正中
  private void setSizeAndCentralizeMe(int width, int height) {
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    this.setSize(width, height);
    this.setLocation(screenSize.width / 2 - width / 2, screenSize.height
        / 2 - height / 2);
  }

  public static void main(String[] args) {
    new MyFrame();
  }
}

设置程序感观

UIManager.getInstalledLookAndFeels()可得到可用的感观数组,然后取数组中元素的getClassName()方法可得到感观类名,再调用
UIManager.setLookAndFeel(strLookFeel);      SwingUtilities.updateComponentTreeUI(this);
方法可设置窗口感观.

public class MyFrame extends JFrame {
  /**
   * 构造函数
   * 
   */
  public MyFrame() {
    // 设置窗口标题
    this.setTitle("程序标题");

    // 设置程序大小并定位程序在屏幕正中
    setSizeAndCentralizeMe(480, 320);

    // 显示窗口
    setVisible(true);

    // 设置程序感观
    setupLookAndFeel();

    ....;
  }
...

  // 设置程序感观
  private void setupLookAndFeel() {
    // 取得系统当前可用感观数组
    UIManager.LookAndFeelInfo[] arr = UIManager.getInstalledLookAndFeels();
    
    Random random = new Random();
    String strLookFeel=arr[random.nextInt(arr.length)].getClassName();

    try {
      UIManager.setLookAndFeel(strLookFeel);
      SwingUtilities.updateComponentTreeUI(this);
    } catch (Exception e) {
      System.out.println("Can't Set Lookandfeel Style to " + strLookFeel);
    }
  }
....
}

设置程序感观为跨平台的感观

UIManager.getCrossPlatformLookAndFeelClassName()可得到跨平台的感观.

public class MyFrame extends JFrame {
  public MyFrame() {
    // 设置窗口标题
    this.setTitle("程序标题");

    // 设置程序大小并定位程序在屏幕正中
    setSizeAndCentralizeMe(480, 320);

    // 显示窗口
    setVisible(true);

    // 设置程序感观
    setupLookAndFeel();
  }

  // 设置程序感观
  private void setupLookAndFeel() {
    String strLookFeel = UIManager.getCrossPlatformLookAndFeelClassName();

    try {
      UIManager.setLookAndFeel(strLookFeel);
    } catch (Exception e) {
      System.out.println("Can't Set Lookandfeel Style to " + strLookFeel);
    }
  }
}

分享到:
评论

相关推荐

    jframe应用技术

    在开发Java应用程序时,通常情况下利用JFrame创建窗口。利用JFrame创建的窗口分别包含一个标题、最小化按钮、最大化按钮和关闭按钮,如图1所示。

    java开发gui教程之jframe监听窗体大小变化事件和jframe创建窗体

    主要介绍了java开发gui教程中jframe监听窗体大小变化事件和jframe创建窗体的示例,需要的朋友可以参考下

    java swing-JFrame的使用

    JFrame是Java Swing库中的一个类,它用于创建和管理图形用户界面(GUI)窗口。JFrame提供了一系列方法和组件,可用于构建交互式的桌面应用程序。

    springboot-jframe:JFrameSpring启动XD

    springboot-jframe:JFrameSpring启动XD

    eclipse的swing可视化编辑插件

    不过有了这个插件,我们就可以通过鼠标的拖放,创建一个个的JFrame和JButton等组件了~~~很方便哦~ ---------------------------------------- 使用方法: eclipse 3.4:将解压生成的所有jar拷贝到ECLIPSE_HOME/...

    一个简单的Java点餐系统,继承自JFrame类

    继承自JFrame类并创建了一个菜单面板、一个注释面板和一个底部按钮面板,并将它们添加到窗口中。用户可以通过点击菜品来跳转到订单页面,并通过点击提交按钮来跳转到订单确认页面。最后,将创建的菜单框架显示出来。

    Java创建透明与任意形状窗口

    Java创建透明与任意形状窗口,演示JDK6的新特性,创建任意形状与透明的JFrame

    Java Swing中的任意形状透明JFrame

    在Windows平台上,为自定义JFrame创建Shape并在整个窗口上应用透明效果(0到1 alpha值)

    java学籍管理系统(access)

    创建菜单(MenuBar/Menu/MenuItem),并挂到主窗口(使用JFrame.setMenuBar()方法);设计实现各个功能模块的子窗口,并加入必要的GUI组件,编写事件处理程序;在主窗口中,为每个菜单项(MenuItem),编写ActionEvent的...

    Eclipse创建窗体程序

    可以不用安装任何插件,就能让你的Eclipse实现开发带界面程序的功能

    Java高级程序设计:第10章-图形界面起步-容器和布局.pptx

    创建窗口(JFrame);setDefaultCloseOperation方法;向窗口中放组件;布局管理(Layout Managers);布局管理器的种类;BorderLayout;BorderLayout Example;BorderLayout的特征;BorderLayout的典型例子;FlowLayout;...

    简单的Java游戏案例程序,包含一个玩家和一个矩形面板 主要作用是通过监听键盘输入来控制玩家在矩形面板上移动

    创建一个继承自JFrame的MyGame类,用于创建窗口。 在MyGame类中定义玩家的位置(x,y),玩家的宽度和高度,以及玩家的速度。 在MyGame类的构造函数中,设置窗口的标题、大小和关闭策略,并设置窗口位置居中。 在...

    实验九 图形用户界面GUI(文档中包含可执行源码)

    Java Swing是Java基础类(JFC)的一部分,用于创建基于窗口的应用程序。它建立在AWT(抽象窗口工具包)API的顶部,并且完全用Java编写。 与AWT不同,Java Swing提供了平台无关的轻量级组件。 javax.swing包提供了...

    图形用户界面.docx

    1) 创建一个简单的JFrame,使用不同的颜色、线条绘制各种形状,使用不同的字体、颜色绘制字符串,使用最简单的监听器ActionListener对JButton的点击事件编程; 2)使用鼠标事件进行绘图; 3)使用边缘布局管理器和...

    使用Java AWT和Swing实现一个简单的图形用户界面.txt

    然后定义了一个名为SimpleGUI的类,并在main()方法中创建了一个JFrame对象来表示主窗口。设置了窗口的标题、关闭操作和大小,并获取了窗口的内容面板。接着创建了一个容器,并将其布局设置为边界布局。在容器中添加...

    如何关闭此窗口并切换到名为loginwin的登录窗口,该窗口在单击注销按钮时包含一个jframe?

    以下是带有按钮注销的... 问题是尽管我创建了一个JFrame,但采用JPanel和dispose()方法在这里不起作用。 我该怎么办?打包car1;导入java.awt.BorderLayout;导入java.awt.EventQueue;导入javax.swing.JFrame;导入...

    Java GUI图形化界面编程

    1、创建窗口 HelloWorld 2.自定义窗口-构造方法简化 3.按钮点击处理-界面构造 4.按钮点击处理-监听器 5.事件处理(简化写法) 6.标签JLabel-文本显示 7.标签 JTextField-文本输入框 8.标签 JCheckBox-复选框 ...

    Java布局管理器的使用基本都在里面(有解释的)

    this.setTitle("使用流布局管理器"); //设置窗口名称 jp.setLayout(new FlowLayout()); //设置面板的布局为流布局 jp.add(jb1); //将按钮添加到面板中 jp.add(jb2); jp.add(jb3); jp.add...

    JAVA课程面向对象

    JFrame(String s) 创建标题为s的窗口。 public void setBounds(int a,int b,int width,int height 设置窗口的初始位置是(a,b),即距屏幕左面a个像素、距屏幕上方b个像素;窗口的宽是width,高是height。 public void...

    Java 登录窗口源代码

    创建JFrame对象,调用Jframe中的方法设置登录框的大小、在屏幕中显示的位置以及设置窗体的可视性等等。利用Toolkit类中的方法获得屏幕的大小,这样可以让登录框在任何的分辨率下有同样的效果。利用Dimetion对象存储...

Global site tag (gtag.js) - Google Analytics