码迷,mamicode.com
首页 > 编程语言 > 详细

java学习笔记 GUI编程

时间:2016-09-05 23:32:20      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:

GUI  graphics user interface 图形用户接口

 

  1. AWT    abstract window toolkit 抽象窗口开发包
  2. 组件管理器
  3. 布局管理器
  4. 事件处理
  5. java图形
  6. window事件

AWT 抽象了图形元素,例如工具栏,菜单,下拉条,输入框等

技术分享

component:所有可以显示的图形元素

window:   可以自由停泊的顶级窗口,一般通过其子类将其new出   panel:可容纳其他元素,但不能独立显示

 

Frame

frame 的各种属性,setBounds(x,y,width,height) x y是左上角坐标,setSize ,setLocation,setBackground,setVisible(要想看见,这个方法必须设为true),setTitle,setResizable

直接new出各种frame

import java.awt.*;

public class Test  {
    public static void main(String[] args) throws Exception {
        Frame f1 = new Frame("f1");
        Frame f2 = new Frame("f2");
        Frame f3 = new Frame("f3");
        
        f1.setSize(300,400);
        f1.setTitle("Frame");
        f1.setResizable(false);
        //f1.setOpacity(0.1f);没搞懂
        f1.setBackground(Color.BLUE);
        
        f2.setBounds(300,0,300,400);
        f2.setBackground(Color.lightGray);
        
        f3.setBounds(0,0,300,400);
        f3.setBackground(Color.GRAY);
        f3.setLocation(0,400);
        
        f1.setVisible(true);//window方法
        f2.setVisible(true);
        f3.setVisible(true);
        
    }    
}

通过继承Frame类创建frame

import java.awt.*;

class Frame1 extends Frame {
    
    public Frame1(int x,int y,int z){
        super("Frame类");//父类的构造方法
        setSize(300,400);
        setBackground(new Color(x,y,z));
        setVisible(true);
    }    
}

public class TestFrame {
    public static void main(String[] args) {
        Frame1 f1 = new Frame1(204,204,255);
    }
}        

/*
1.一个文件里面写了两个类,一个public声明,一个default声明,当javac编译TestFrame时,会把TestFrame类里使用的Frame1也编译

*/

Panel

panel自己不能独立的显示

panel.setBounds()方法里面的参数是放在谁里面就是相对于谁,不是以屏幕左上角作为标准的

一个frame含有是个panel里面是四种颜色

import java.awt.*;

public class Test {
    public static void main(String[] args) {
        Panel1  p1 = new Panel1(); 
    }    
}

class Panel1 extends Panel {
    public Panel1() {
        Frame f1 = new Frame();//新建Frame用于添加panel
        Panel p1 = new Panel();//Panel的构造方法,所使用的是Panel的默认布局管理器 flowLayout
        Panel p2 = new Panel();    
        Panel p3 = new Panel();
        Panel p4 = new Panel();
        f1.setBounds(500,500,400,400);
        p1.setBounds(0,0,200,200);
        p2.setBounds(200,0,200,200);
        p3.setBounds(0,200,200,200);
        p4.setBounds(200,200,200,200);
        p1.setBackground(Color.BLACK);
        p2.setBackground(Color.BLUE);
        p3.setBackground(Color.    CYAN);
        p4.setBackground(Color.DARK_GRAY);
        f1.add(p1);f1.add(p2);f1.add(p3);f1.add(p4);
        f1.setVisible(true);
    }    
}

一个panel在frame中间,背景色是黄色

import java.awt.*;

public class Test {
    public static void main(String[] args) {
        Panel1  p1 = new Panel1(200,400); 
    }    
}

class Panel1 extends Panel {
    //int i,j;
    public Panel1(int i,int j) {
        //this.i = i;
        //this.j = j;
        int x = 400,y = 500;
        Frame f1 = new Frame();//里面含有默认布局管理器
        Panel p1 = new Panel();
    
        f1.setBounds(0,0,x,y);
        f1.setLayout(null);//自己手动设置布局管理器,取代默认布局管理器
        p1.setBounds(x/2 - i/2,y/2 - j/2,i,j);
        p1.setBackground(Color.YELLOW);
        f1.add(p1);
        f1.setVisible(true);
    }    
}

java学习笔记 GUI编程

标签:

原文地址:http://www.cnblogs.com/yhwsy/p/5843891.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!