JAVA笔记__窗体类/Panel类/Toolkit类

/**
 * 窗体类
 */
public class Main {
    public static void main(String[] args) {
        MyFrame m1 = new MyFrame();

    }
}

class MyFrame extends Frame{
    public MyFrame(){
        this.setTitle("My first software");
        this.setSize(300,200);
        this.setBackground(Color.yellow);
        this.setResizable(false); //不允许调整窗体大小
        this.setLocation(300,300);
        this.setLayout(new FlowLayout()); //把窗体的默认布局设成"流水布局"

        //在窗体上添加按钮
        Button b1 = new Button("click me.1");
        this.add(b1);
        this.add(new Button("click me.2"));

        this.setVisible(true);
    }
}
/**
 * Panel类(面板类),组件容器
 */
public class Main {
    public static void main(String[] args) {
        MyPanel m1 = new MyPanel();
    }
}

class MyPanel extends Frame{
    public MyPanel(){
        this.setTitle("My first software");
        this.setSize(600,400);
        this.setBackground(Color.yellow);
        this.setResizable(false); //不允许调整窗体大小
        this.setLocation(300,300);
        this.setLayout(new FlowLayout()); //把窗体的默认布局设成"流水布局"
        addPanel();
        this.setVisible(true);
    }
    public void addPanel(){ //Panel的布局默认是"流水布局"
        Panel p1 = new Panel(); //创建面板对象
        p1.setBackground(Color.GREEN);
        p1.add(new Button("click me.1"));
        p1.add(new Button("click me.2"));
        p1.add(new Button("click me.3"));
        this.add(p1); //把面板添加到窗体上
    }
}
/**
 * Toolkit类:用于将各种组件绑定到本地系统的工具包。
 */
public class Main {
    public static void main(String[] args) {
        MyToolkit m1 = new MyToolkit();
    }
}

class MyToolkit extends Frame{
    public MyToolkit(){
        this.setTitle("My first software");
        this.setSize(600,400);
        this.setBackground(Color.yellow);

        Toolkit t1 = Toolkit.getDefaultToolkit(); //获取工具对象
        Dimension d1 = t1.getScreenSize(); //获取当前屏幕的尺寸
        double w = d1.getWidth();
        double h = d1.getHeight();
        int x = (int)(w/2);
        int y = (int)(h/2);
        this.setLocation(x-300,y-200);

        //设置窗体图标 (新建一个包,把图片放进去)
        URL url = this.getClass().getClassLoader().getResource("pkg1/image/fish.jpg"); //写成pkg1.image.fish.jpg不可以
        Image ima1 = t1.getImage(url);
        this.setIconImage(ima1);

        this.setResizable(false); //不允许调整窗体大小
        this.setLayout(new FlowLayout()); //把窗体的默认布局设成"流水布局"

        this.setVisible(true);
    }
}
时间: 2024-08-07 08:39:57

JAVA笔记__窗体类/Panel类/Toolkit类的相关文章

JAVA 笔记 七

JAVA笔记七 this:就代表本类的对象,this代表它所在函数所属对象的引用简单说:那个对象在调用this所在的函数,this就代表那个对象静态:static 用法:是一个修饰符,用于修饰成员(成员变量,成员函数)当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用.类名.静态成员static特点1.随着类的加载而加载2.优先于的对象存在3.被所有对象所共享4.可以直接被类名所调用实例变量和类变量的区别:1.存放位置. 类变量随着类的加载而存在与方法区中. 实例

java笔记之图形类详解---事件监听器

事件监听器代表负责处理事件的接口.Java 提供了各种事件监听器类,但我们将讨论更频繁使用的那些事件监听器类.一个事件监听器的每个方法有一个参数作为一个对象,该对象是 EventObject 类的子类.例如,鼠标事件监听器的方法将接受 MouseEvent 的实例,其中 MouseEvent 是 EventObject 派生的. EventListner 接口 它是一个标记接口,每一个监听器接口必须扩展它.这个类定义在 java.util 包中. 事件: 当发生了某个事件的时候,就会有相应处理方

java笔记--使用SwingWoker类完成耗时操作

使用SwingWoker类完成耗时操作: 对于Swing中的耗时操作,通常要在一个新的线程中运行,以免程序"假死". 在java6.0中,可以用SwingWoker类来完成 SwingWoker<T,V>是在专用线程中执行长时间GUI交互任务的抽象类.用Swing 编写多线程应用程序时,要记住两个约束条件:     1.不应该在事件指派线程运行耗时任务,否则应用程序将无反应.     2.只能在事件指派线程上访问Swing控件     注: 通常需要将耗时的任务放到Swin

4.2-全栈Java笔记:对象和类的概念及定义

对象和类的概念 我们人认识世界,其实就是面向对象的.大家眼里都是一个个对象,要不怎么老说搞对象搞对象啊.比如现在让大家认识一下"天使"这个新事物,天使大家没见过吧,怎么样认识呢?最好的办法就是,给你们面前摆4个天使,带翅膀的美女,让大家看,看完以后,即使我不说,大家下一次是不是就都认识天使了. 但是,看完10个天使后,我们总要总结一下,什么样的东东才算天使?天使是无数的,总有没见过的!所以必须总结抽象,便于认识未知事物!总结的过程就是抽象的过程. 小时候,我们学自然数时怎么定义的?像1

java笔记--关于Object类与线程相关的方法

关于Object类中的线程方法 Object类是所有Java类的 父类,在该类中定义了三个与线程操作有关的方法,使得所有的Java类在创建之后就支持多线程 这三个方法是:notify(),notifyAll(),wait(),这几个方法都是用来控制线程的运行状态的. 方法列表如下: notify() : 唤醒在此对象监视器上等待的单个线程 notifyAll() : 唤醒在此对象监视器上等待的所有线程 wait() : 在其他线程时调用此对象的notify()或者notifyAll()方法前,导

Java学习笔记_18_字符串、包装类、原始数据类剪得转换

18. 字符串.包装类.原始数据类剪得转换: 各个转换如下: 1>String 转换成Integer: Integer integer = new Integer("string");或 Integer Integer = Integer.valueOf(String): 注:String必须是数字字符串,如:"1232". 2>Integer 转换成String: String str = Integer.toString(); 3>Intege

java笔记--超级类Object多线程的应用+哲学家进餐算法内部类与多线程结合

关于Object类中的线程方法: Object类是所有Java类的 父类,在该类中定义了三个与线程操作有关的方法,使得所有的Java类在创建之后就支持多线程 这三个方法是:notify(),notifyAll(),wait(),这几个方法都是用来控制线程的运行状态的. 方法列表如下: notify() : 唤醒在此对象监视器上等待的单个线程 notifyAll() : 唤醒在此对象监视器上等待的所有线程 wait() : 在其他线程时调用此对象的notify()或者notifyAll()方法前,

java笔记--String类对象解析与运用

1.String中的equals和==的区别 String是对象而非基本数据类型,不能使用"=="来判断两个字符串是否相当, 判断两个字符串内容是否相同用equals(); 判断两个字符串内存地址是否相同用"==" 2.startsWith(String str): 判断字符串是否以str为前缀 3.endsWith(String str): 判断字符串是否以str为后缀 4.String 字符串的比较: 1).compareTo()和compareToIgnore

java笔记--String类格式化当天日期转换符文档

String类格式化当天日期 转换符:%tb : 格式化为月份的英文缩写%tB : 格式化为月份的英文全写%ta : 格式化为星期%tA : 格式化为星期%ty : 格式化为两位年份值%tY : 格式化为四位年份值%tm : 格式化为两位月份值%td : 格式化为两位日期值%te : 格式化为星期一位日期值%tH : 格式化为两位24时制小时值(00-23)%tk : 格式化为两位24时制小时值(0-23)%tI : 格式化为两位12时制小时值(01-12)%tl : 格式化为两位12时制小时值