`

使用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);
    }
  }
}

分享到:
评论

相关推荐

    java 创建普通窗口

    2. **使用`JFrame`创建窗口** 3. **设置窗口属性** 4. **使用线程执行GUI操作** 5. **监听器与事件处理** #### Swing 基本概念 Swing是一个Java GUI工具包,它提供了比AWT更强大的功能,并且具有更多的组件和更...

    JAVA语言课时授课计划11-4页.pdf

    使用JFrame创建窗口,可以实现更复杂的界面设计,如添加各种Swing组件如JButton、JLabel、JTextField等。 在课程中,学生将学习如何使用Frame类和JFrame类编写简单的GUI程序,包括创建窗口、设置背景色、添加按钮和...

    JFrame窗口学习.doc

    在Java编程中,`JFrame`是Swing库中的一个核心组件,用于创建窗口应用程序的基础。它是`java.awt.Frame`的子类,并扩展了Swing的功能。`JFrame`提供了丰富的功能,允许开发者构建具有菜单栏、按钮、文本框等交互元素...

    JFrame简单设置窗口,菜单,和菜单项

    ### JFrame简单设置窗口、菜单与菜单项...通过以上知识点的学习,我们可以深入了解如何使用Java Swing中的`JFrame`类来创建一个具有菜单栏和菜单项的简单窗口。这对于开发图形用户界面应用来说是非常基础且重要的一步。

    Java中JFrame窗口组件案例及源代码.rar

    这个资源——"Java中JFrame窗口组件案例及源代码.rar"——提供了有关如何使用`JFrame`创建窗口应用的实例和源代码,非常适合教师教学以及学生自学。 `JFrame`是所有Swing GUI程序的起点,它代表了一个独立的窗口,...

    如何去掉JFrame上的最大化最小化和关闭按钮.doc

    在Java中,JFrame是一个基本的GUI组件,用于创建窗口式应用程序。然而,在某些情况下,我们可能需要去掉JFrame上的最大化、最小化和关闭按钮,以实现自定义的窗体样式。本文将介绍如何去掉JFrame上的最大化、最小化...

    swingdemo 简单例子

    在这个 SwingDemos 中,可能包含了展示如何使用 JFrame 创建窗口以及在窗口上添加组件的示例代码。JFrame 上可以添加菜单栏(JMenuBar)、工具栏(JToolBar)以及其他 GUI 元素。 JButton 是用户交互的一个常见元素...

    JAVA键盘事件.pdf

    4. 使用JFrame创建窗口 在`TheMoveOfBoll`类中,通过`super("TheMovementofTheBoll")`创建了一个JFrame窗口,并设置窗口的大小为500x500像素,并使窗口可见。 5. Canvas绘图 `TheCanvas`类继承自`Canvas`,这是AWT...

    用JAVA编写的车标

    #### 1.2 使用JFrame创建窗口 - 在给定的示例代码中,可以看到`test extends Frame`。需要注意的是,这里的`Frame`实际上应该是指`JFrame`。因为`Frame`属于AWT包,而`JFrame`属于Swing包,更适合于创建GUI程序。 - ...

    JAVA万年历设计(入门)附带报告

    1. 创建主窗口并设置布局:使用JFrame创建窗口,通过GridLayout或BorderLayout等布局管理器安排组件。 2. 添加日期显示组件:用JLabel显示当前日期,使用java.time.LocalDate获取当前日期。 3. 创建年月选择组件:...

    JFrame边框阴影效果,窗口透明,组件不透明

    在Java GUI编程中,`JFrame` 是一个重要的类,用于创建窗口应用程序的基本框架。`JFrame` 提供了默认的窗口布局、标题栏、关闭按钮等基本功能。然而,有时候我们希望为`JFrame`添加更丰富的视觉效果,比如阴影边框和...

    JAVA简单记事本程序设计实验报告.pdf

    在实验中,使用JFrame创建窗口,JTextArea展示文本内容,JMenu和MenuItem构建下拉菜单。例如,`new Frame(s)`用于创建一个框架,`new TextArea("")`创建一个空的文本区域,`setMenuBar(menubar)`设置菜单栏。 2. **...

    简易的 Java Jframe窗体聊天室

    Java Jframe窗体聊天室是一种基于Java Swing库创建的用户界面应用,主要使用JFrame类作为主窗口,为用户提供交互式的聊天环境。这个简易的聊天室项目非常适合Java初学者学习,因为它涵盖了基本的GUI设计、事件处理...

    java课程设计报告(java聊天室).pdf

    从文档内容来看,本项目可能还会涉及到一些GUI设计,如如何使用JFrame创建窗口,如何用JTextArea显示文本信息,以及如何使用事件监听器来响应用户的操作。 总结来说,本Java课程设计报告是对一个使用Java语言和TCP/...

    JFrame框架的jar

    1. **创建JFrame实例**:通过`new JFrame("窗口标题")` 创建一个新的窗口实例。 2. **添加组件**:`JFrame` 支持添加各种Swing组件,如`JButton`, `JLabel`, `JTextArea`等。使用`add()`方法可以将组件添加到窗口中...

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

    首先,JFrame是Swing库中用于创建窗口的基本容器。它是java.awt.Window的一个子类,具有窗口的一些基本功能,如添加组件、设置窗口大小、改变窗口状态等。Swing是Java的一部分,用来创建图形用户界面。 接下来,...

    java实现在JFrame窗口进行图片拖拽

    3. **创建JLabel**:使用`ImageIcon`创建一个`JLabel`,并将该`JLabel`添加到`JFrame`上。 4. **启用拖放**:通过`DropTarget`类启用组件的拖放功能,设置`DropTargetListener`来处理拖放事件。 5. **事件处理**:...

    JAVA学习笔记swing JFrame窗口学习.rar_it_java swing_jframe_jframe mwc

    本篇笔记主要聚焦于Swing中的JFrame类,它是创建窗口的基础。我们将深入探讨JFrame的特性、用法以及如何在实际开发中有效地运用它。 首先,JFrame是Java AWT(Abstract Window Toolkit)框架的扩展,它是顶级容器,...

    Java-Swing-menu:在Java中使用JFrame创建Swing菜单示例

    在这个示例中,我们将深入探讨如何使用JFrame在Java中创建Swing菜单。 首先,理解JFrame是Java AWT(抽象窗口工具包)中的顶级容器,用于展示GUI应用的主要窗口。它是Swing框架的基础,可以容纳各种组件,包括菜单...

Global site tag (gtag.js) - Google Analytics