详解如何使用Java编写图形化的窗口

作者:goldensun 时间:2022-04-18 03:25:52 

窗口是GUI编程的基础,小应用程序或图形界面的应用程序的可视组件都放在窗口中,在GUI中,窗口是用户屏幕的一部分,起着在屏幕中一个小屏幕的作用。有以下三种窗口:
Applet窗口:Applet类管理这个窗口,当应用程序程序启动时,由系统创建和处理;
框架窗口(JFrame):这是通常意义上的窗口,它支持窗口周边的框架、标题栏,以及最小化、最大化和关闭按钮;
一种无边框窗口(JWindow):没有标题栏,没有框架,只是一个空的矩形。

用Swing中的JFrame类或它的子类创建的对象就是JFrame窗口。

JFrame类的主要构造方法:

  • JFrame():创建无标题的窗口对象;

  • JFrame(String s):创建一个标题名是字符串s的窗口对象。

JFrame类的其他常用方法:

  • setBounds(int x,int y,int width,int height):参数x,y指定窗口出现在屏幕的位置;参数width,height指定窗口的宽度和高度。单位是像素。

  • setSize(int width,int height):设置窗口的大小,参数width和height指定窗口的宽度和高度,单位是像素。

  • setBackground(Color c):以参数 c设置窗口的背景颜色。

  • setVisible(boolean b):参数b设置窗口是可见或不可见。JFrame默认是不可见的。

  • pack():用紧凑方式显示窗口。如果不使用该方法,窗口初始出现时可能看不到窗口中的组件,当用户调整窗口的大小时,可能才能看到这些组件。

  • setTitle(String name):以参数name设置窗口的名字。

  • getTitle():获取窗口的名字。

  • setResiable(boolean m):设置当前窗口是否可调整大小(默认可调整大小)。

Swing里的容器都可以添加组件,除了JPanel及其子类(JApplet)之外,其他的Swing容器不允许把组件直接加入。其他容器添加组件有两种方法:
一种是用getContentPane()方法获得内容面板,再将组件加入。例如,例5.1程序中的代码:


 mw.getContentPane().add(button);


该代码的意义是获得容器的内容面板,并将按钮button添加到这个内容面板中。
另一种是建立一个JPanel对象的中间容器,把组件添加到这个容器中,再用setContentPane()把这个容器置为内容面板。例如,代码:


 JPanel contentPane = new JPanel();
 …
 mw.setContentPane(contentPane);


以上代码把contentPane置成内容面板。

【例】一个用JFrame类创建窗口的Java应用程序。窗口只有一个按钮。


import javax.swing.*;
public class Example5_1{
 public static void main(String args[]){
   JFrame mw = new JFrame(“我的第一个窗口”);
   mw.setSize(250,200);
   JButton button = new JButton(“我是一个按钮”);
   mw.getContentPane().add(button);
   mw.setVisible(true);
 }
}

用Swing 编写GUI程序时,通常不直接用JFrame创建窗口对象,而用JFrame派生的子类创建窗口对象,在子类中可以加入窗口的特定要求和特别的内容等。

【例】定义JFrame派生的子类MyWindowDemo创建JFrame窗口。类MyWindowDemo的构造方法有五个参数:窗口的标题名,加放窗口的组件,窗口的背景颜色以及窗口的高度和宽度。在主方法中,利用类MyWindowDemo创建两个类似的窗口。


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Example5_2{
 public static MyWindowDemo mw1;
 public static MyWindowDemo mw2;
 public static void main(String args[]){
   JButton static butt1 = new JButton(“我是一个按钮”);
   String name1 = “我的第一个窗口”;
   String name2 = “我的第二个窗口”;
   mw1 = new MyWindowDemo(name1,butt1,Color.blue,350,450);
   mw1.setVisible(true);
   JButton butt2 = new JButton(“我是另一个按钮”);
   mw2 = new MyWindowDemo(name2,butt2,Color.magenta,300,400);
   mw2.setVisible(true);
 }
}
class MyWindowDemo extends JFrame{
 public MyWindowDemo(String name,JButton button,Color c,int w,int h){
   super();
   setTitle(name);
   setSize(w,h);
   Container con = getContentPane();
   con.add(button);
   con.setBackground(c);
 }
}

显示颜色由java.awt包的Color类管理,在Color类中预定了一些常用的颜色,参见表11-3。JFrame类的部分常用方法参见下表。
Color 类中定义的常用颜色
详解如何使用Java编写图形化的窗口
JFrame 类的部分常用方法

详解如何使用Java编写图形化的窗口

标签:Java
0
投稿

猜你喜欢

  • mybatis-plus多表联查join的实现

    2023-11-24 06:49:56
  • Android实现购物车功能

    2022-08-14 19:06:55
  • springcloud 如何解决微服务之间token传递问题

    2022-08-27 18:43:48
  • 深入Android Handler与线程间通信ITC的详解

    2021-12-09 16:02:17
  • SpringBoot使用SchedulingConfigurer实现多个定时任务多机器部署问题(推荐)

    2021-09-17 07:19:20
  • Mybatis分解式查询使用方法

    2023-08-16 04:15:06
  • 如何解决Spring in action @valid验证不生效的问题

    2023-08-29 07:59:56
  • Unity3d实现无限循环滚动背景

    2022-11-02 05:04:22
  • Java下利用Jackson进行JSON解析和序列化示例

    2023-09-27 14:37:38
  • 从try-with-resources到ThreadLocal,优化你的代码编写方式

    2023-11-11 03:19:52
  • Android仿微信雷达扫描效果的实现方法

    2022-07-28 01:49:17
  • Mybatis SQL运行流程源码详解

    2023-04-27 12:46:27
  • java多线程累加计数的实现方法

    2021-07-19 12:10:36
  • Java Swing JFrame窗口的实现

    2021-11-30 12:03:37
  • Android 消息机制问题总结

    2023-08-06 03:10:49
  • spring cache注解@Cacheable缓存穿透详解

    2023-12-23 13:41:25
  • 简单实现Android本地音乐播放器

    2021-09-04 19:28:28
  • Java使用iTextPDF生成PDF文件的实现方法

    2023-10-15 10:44:13
  • Android如何监听屏幕旋转

    2021-12-15 06:12:50
  • Java数据结构之优先级队列(堆)图文详解

    2021-06-25 13:47:58
  • asp之家 软件编程 m.aspxhome.com