java GUI详解

 

 

一.JAVA GUI设计

 

 

GUI(图形用户界面):是指以图形化方式与用户进行交互的程序运行界面
GUI本身即一个界面,这个界面包含一个顶层容器Container,容器内包含menu,button,label等组件

 

 

二.GUI基本界面的实现

 

<span style="font-size:18px;background-color: rgb(255, 255, 255);">import java.awt.*; 
public class FirstFrame { 
    public static void main(String[] args) { 
        Frame f = new Frame("第一个图形用户界面");
        f.setBackground(Color.yellow); 
        f.setBounds(100, 200, 300, 200);
        f.setSize(300,200); 
        f.setLocation(100,200); 
        f.setVisible(true); 
    } 
} </span>

 

 

三.GUI布局方式

 

1.FlowLayout流式布局

流式布局,是Panel(及其子类)默认布局管理器

  • 布局效果:组件在容器中按照加入次序逐行定位,行内从左到右,一行排满后换行。组件按原始大小进行显示

 

 

 

 

<span style="font-size:18px;background-color: rgb(255, 255, 255);">importjava.awt.*;

class  TestFrame{

      public static void main(String args[]){

       Frame frame=new Frame("GUI布局");//容器

       Label lbl=new Label("FlowLayout布局方式");//控制组件


       lbl.setBackground(Color.pink);//设置背景颜色

       frame.setLayout(new FlowLayout());//设置布局方式


       frame.add(lbl);       //将控制组件添加到容器中

       frame.setSize(200,100);
       frame.setVisible(true);</span>

2.BorderLayout 边界布局方式

 

边界布局 是Window及其子类类型容器的默认布局管理器。
布局效果:将整个容器范围划分成East、West、South、North、Center五个区域,组件只能被添加到指定的区域。

 

<span style="font-size:18px;background-color: rgb(255, 255, 255);"><span style="font-size:18px;">import java.awt.*;

public class BorderLayoutDemo extends Frame {

 Button bNorth,bSouth,bWest,bEast,bCenter;
 public BorderLayoutDemo(){
  super("边框布局");
  bNorth = new Button("北");
  bSouth = new Button("南");
  bWest = new Button("西");
  bEast = new Button("东");
  bCenter = new Button("中");
  add(bNorth,"North");
  add(bSouth,"South");
  add(bWest,"West");
  add(bEast,"East");
  add(bCenter,"Center");
  setBounds(200,200,300,300);
  setVisible(true);
 }
 public static void main(String[] args){
  new BorderLayoutDemo();
 }</span></span>

3.GridLayout网格式布局

 

网格式布局,将容器区域划分成规则的矩形网格,每个单元格区域大小相等。组件被添加到每个单元格中,按组件加入顺序先从左到右填满一行后换行,行间从上到下。

 

<span style="font-size:18px;background-color: rgb(255, 255, 255);"><span style="font-size:18px;">import java.awt.*; 
public class GridLayoutDemo extends Frame { 
    Button[] b = new Button[5]; 
    public GridLayoutDemo(){ 
        super("网格布局"); 
        for(int i=0; i<b.length; i++){ 
            b[i] = new Button("按钮"+i); 
        } 
        setLayout(new GridLayout(3,2)); 
        add(b[0]); 
        add(b[1]); 
        add(b[2]); 
        add(b[3]); 
        add(b[4]); 
        pack(); 
        setSize(300,100); 
        setLocation(100,200); 
        //setBounds(200.100,300,100);  
        setVisible(true);    
    } 
    public static void main(String[] args) { 
        new GridLayoutDemo(); 
    } 
} </span></span>

四.GUI事件处理机制

 

1.定义: 用户编程定义每个特定事件发生时程序应做出何种响应,并且这些响应代码会在对应的事件发生时由系统自动调用

2.事件处理机制三要素:

 ⑴事件源

     即事件来自哪个组件或对象

 ⑵事件监听器

 即负责监听事件并作出响应

 ⑶事件对象

 即某个要被处理的事件

3.实现事件处理的三种方法

 ⑴实现事件监听接口

  

<span style="font-size:18px;background-color: rgb(255, 255, 255);">import java.awt.*;
import java.awt.event.*;

/*
 * 监听事件:
 *       方法一:实现xxxListener接口
 * 
 * */

public class windows2 implements WindowListener{
	public static void main(String[] args){
		Frame f = new Frame("windows");
		f.setLocation(400,500);
		f.setSize(200, 400);
		f.setLayout(new FlowLayout());
		
		Button b = new Button("按钮");
		
		f.addWindowListener(new windows2());
		
		f.add(b);
		f.setVisible(true);
}

	public void windowActivated(WindowEvent e) {
		// TODO Auto-generated method stub
		
	}

	public void windowClosed(WindowEvent e) {
		// TODO Auto-generated method stub
		
	}

	public void windowClosing(WindowEvent e) {
		// TODO Auto-generated method stub
		System.out.println("关闭吗?");
		
	}

	public void windowDeactivated(WindowEvent e) {
		// TODO Auto-generated method stub
		
	}

	public void windowDeiconified(WindowEvent e) {
		// TODO Auto-generated method stub
		
	}

	public void windowIconified(WindowEvent e) {
		// TODO Auto-generated method stub
		
	}

	public void windowOpened(WindowEvent e) {
		// TODO Auto-generated method stub
		
	}
}
</span>

实现xxxListener接口,缺点是,必须实现该接口内所有方法,许多不必实现的方法都得实现。

 

改进方法:继承事件监听器适配器

 ⑵继承事件监听器适配器

 

<span style="font-size:18px;background-color: rgb(255, 255, 255);">public class windows3 extends WindowAdapter{
      public static void main(String[] args){
    	  Frame f = new Frame("windows3");
    	  f.setLocation(400,500);
  		  f.setSize(200, 400);
  		  f.setLayout(new FlowLayout());
  		  f.addWindowListener(new windows3());
  		  f.setVisible(true);
      }
      public void windowClosing(WindowEvent e){
			// TODO Auto-generated method stub
			System.out.println("关闭吗?");
			
		}     
}</span>

 

⑶使用匿名内部类

 

<span style="font-size:18px;background-color: rgb(255, 255, 255);">public class windows1 {
	public static void main(String[] args){
		Frame f = new Frame("windows1");
		f.setLocation(300,400);
		f.setSize(100,100);
		f.setLayout(new BorderLayout());
		Button b = new Button("点击");
		f.add(b);
		b.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent e) {
				System.out.println("点击按钮了");
			}
		});
		f.setVisible(true);	
	}
}</span>

 

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java GUI(Graphical User Interface)是Java语言提供的一套图形用户界面开发工具包,它可以帮助开发人员快速方便地创建Windows、Mac和Linux等操作系统下的图形用户界面应用程序。 Java GUI主要基于Swing和AWT两个工具包。其中,AWT(Abstract Window Toolkit)是Java最早提供的图形用户界面工具包。它提供了一些基本的图形组件,如按钮、文本框、标签等,并且支持布局管理器,可以快速创建简单的用户界面。但是,AWT的组件外观和行为在不同的操作系统下存在差异,且不支持透明度和半透明效果。 Swing是基于AWT的一套图形用户界面工具包,它提供了更多的组件和布局管理器,支持透明度和半透明效果,并且具有更好的跨平台性。Swing的外观和行为在不同操作系统下基本一致,同时也支持自定义外观。 Java GUI的开发过程通常包括以下步骤: 1. 创建主窗口(JFrame)或对话框(JDialog)。 2. 在主窗口或对话框中添加组件,如按钮、文本框、标签等。 3. 设置组件的属性和事件监听器,如字体、颜色、大小、点击事件等。 4. 使用布局管理器控制组件的位置和大小。 5. 处理用户输入或事件响应,如按钮点击事件、鼠标移动事件等。 Java GUI的开发需要一定的基础知识和编程经验,但是如果您掌握了Java语言和面向对象编程的基础,学习Java GUI也不会太难。同时,Java GUI还有很多优秀的第三方库和工具可以使用,如JavaFX和SwingX等,可以帮助开发人员更快速地创建复杂的图形用户界面应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值