如何用Java设计一个简单的窗口界面

  • 一、前言
  • 二、简单了解
  • 1.Swing简介
  • 2.框架(frame)
  • 3.层次
  • 三、步骤
  • 1.打开eclipse,依次创建项目,包,类。
  • 2.代码
  • 2.1最简单的可见框架
  • 2.2稍微上个色


一、前言

啊,前面写的太草率了,我也是本学期才接触Java,自己也没有很理解,有点突兀,我会每过几天综合学到的东西做出完善。

Java在前面的篇章里学的都是键盘输入,控制台显示结果,就很单调,我还经常纳闷是敲的啥代码,就能把图片敲出来,也没地方插入图片,又不是VB直接塞进去(原非计算机专业,当时有门课是VB)。现在接触到了图形用户界面(GUI),哦,原来是可以的,感觉就很神奇。

二、简单了解

1.Swing简介

我了解到的一些是,Java下面最开始只有一个 AWT包负责基本GUI程序设计,后来又研究出来了一个Swing包,但不是替代,是基于AWT架构之上,提供了更厉害的用户界面组件。好像Eclipse集成开发环境还有一种SWT的包,我暂时还没用到,后面碰到了再补充。

2.框架(frame)

在Java中,顶层窗口被称为框架,顶层窗口就是没有包括在其他窗口中的窗口,覆盖其他窗口,但却没有其他窗口能够挡住它。
在AWT中用Frame来描述顶层窗口,在Swing中用JFrame来描述顶层窗口,包含若干个改变框架外观的方法,同时通过继承JFrame,又获得了JFrame的各个超类(比如Window类)的许多用于处理框架的大小和位置的方法。绝大多数Swing组件类都以"J"开头,如果忘记了J(如Frame,Button等属于AWT组件类),可能也会正常编译和运行,但是混在一起使用将会导致视觉和行为的不一致。

  • JFrame() 创建一个无标题的窗口
  • JFrame(String s) 创建一个标题为 s 的窗口
  • public void setTitle(String s)用于改变标题栏的名字

我试过以上这两种都可以给框架加名字

  • public void setBounds(int a,int b,int width,int height)设置窗口的初始位置是(a,b),即距离屏幕最左方a个像素,距离屏幕最上方b个像素,窗口的宽是 width,窗口的高是 height。
  • public void setSize(int width,int height)设置窗口的大小。
  • public void setLocation(int x,int y)设置窗口的显示位置,默认位置为(0,0)。

setBounds(x, y, width, height)和setSize(width,height);setLocation(x, y);是等价的

这里指的是JFrame这种顶层组件,x,y相对的是屏幕的坐标,如果这个组件不是顶层组件,那么 x,y相对的是容器的坐标。

  • public void setBackground(color.red)设置窗体背景颜色为红色
  • public void setVisible(true/false)设置窗口是否可见,显示或隐藏窗口,默认是不可见的。
  • public void setResizable(true/false)设置窗口是否可以调整大小,默认可调整。
  • public void dispose()撤销当前窗口,并释放当前窗口所使用的资源。
  • public void setExtendedState(int state)设置窗口的扩展状态,其中参数state取JFrame类中的下列类常量:
    MAXIMIZED_HORIZ (水平方向最大化)
    MAXIMIZED_VERT (垂直方向最大化)
    MAXIMIZED_BOTH (水平、垂直方向都最大化)
  • public void setDefaultCloseOperation(int operation)该方法用来设置单机窗口右上角的关闭图标后,程序会做出怎样的处理,特别是在多个框架时。其中的参数operation取JFrame类中的下列int型static常量,程序根据参数operation取值做出不同的处理:
    DO_NOTHING_ON_CLOSE (什么也不做,当你点击关闭的时候)
    HIDE_ON_CLOSE(隐藏当前窗口,当你点击关闭的时候)
    DISPOSE_ON_CLOSE(隐藏当前窗口,并释放窗体占有的其他资源,当你点击关闭的时候)
    EXIT_ON_CLOSE(结束窗口所在的应用程序,即窗口退出,程序退出,当你点击关闭的时候)

3.层次

java窗口背景图片 java窗口界面设计_Swing

有没有大佬推荐一下画图的东西…

三、步骤

1.打开eclipse,依次创建项目,包,类。

java窗口背景图片 java窗口界面设计_java_02

2.代码

2.1最简单的可见框架

import javax.swing.JFrame;

public class Test{
	public static void main (String[] args) {
		JFrame window = new JFrame();//创建一个叫无名窗口
		window.setBounds(222,333,333,222);//设置窗口在屏幕上的位置和大小。距离屏幕左侧123个像素,上方345个像素,窗口宽666,高520
		window.setVisible(true);//设置窗口可见
		window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//退出程序		
	}
}

java窗口背景图片 java窗口界面设计_java窗口背景图片_03

2.2稍微上个色

import java.awt.Color;
import java.awt.Container;

import javax.swing.JFrame;
/*
以上也可以写成
import java.awt.*;
import javax.swing.*;
*/
public class Test{
	public static void main (String[] args) {
		JFrame window1 = new JFrame("堵小配的窗口");//创建一个叫“堵小配的窗口”的窗口
		JFrame window2 = new JFrame("韩小冷的窗口");
		Container con = window1.getContentPane();
		con.setBackground(Color.yellow);//设置窗口的背景色	
		window1.setBounds(123,345,666,520);//设置窗口在屏幕上的位置和大小。距离屏幕左侧123个像素,上方345个像素,窗口宽666,高520
		window2.setBounds(888,345,456,521);
		window1.setVisible(true);//设置窗口可见
		window1.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//释放当前窗口
		window2.setVisible(true);
		window2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//退出程序
		
	}
	
}
//必须是在窗口的内容面板上上色,无法直接上色
window1.setBackground(Color.yellow);
//也可以自己配色
color c = new Color(200,100,120);
con.setBackground(c);
//可以自己尝试分别关闭两个窗口,观察效果是否相同
window1.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
window2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

java窗口背景图片 java窗口界面设计_java_04