zoukankan      html  css  js  c++  java
  • GUI初步和frame&panel

    java的话这个GUI其实不是什么重点,但我们也要学习,重点是学习这种图形编程的思路。

    java里面对于图形的一些类都封装在了AWT和它的一些子包里。AWT(抽象窗口开发包)            当然AWT是比较旧的开发包,新的叫swing,

    所有可以显示出来的元素都叫component,然后下面那些什么Button,lable都是它的子类。,这里有个比较特殊的子类,container,在图形里面,container是用来容纳其他component的元素。然后这个container又分两种,一种是windows,它是可以独立显示的,哎就是我们平时的应用窗口,panel它也是容器,但它不可以独立显示。

    windows又分两种,一种是frame,就是我们平时的应用窗口,一种是dialog,对话框,就是那种框你不关闭掉它其他程序内容你无法操作。 

    下面看frame

    一些很容易理解的方法:

    *********基本窗口显示*********:
    import
    java.awt.*; public class TestFrame { public static void main(String[] args) { Frame f = new Frame("My first windows!!");//传进来的这个参数就是设置在titlebar的文字。 f.setSize(1000,1000);//大小 f.setBackground(Color.blue);//设置背景颜色 f.setLocation(485,10);//设它在屏幕上的位置(类比像素那什么1080*888) //f.setResizable(false);//设置窗口可不可以调节大小 f.setVisible(true);//Frame f = new Frame()这句话只是说建立了这个窗口对象,想要看得到还有用这个方法。 } }

     显示多个不同的窗口

    import java.awt.*;
    
    public class TestMultiFrame {
        public static void main(String[] args) {
            MyFrame myFrame1 = new MyFrame(100,100,200,200,Color.BLUE);
            MyFrame myFrame2 = new MyFrame(300,100,200,200,Color.YELLOW);
            MyFrame myFrame3 = new MyFrame(100,300,200,200,Color.GREEN);
            MyFrame myFrame4 = new MyFrame(300,300,200,200,Color.WHITE);
        }
    }
    
    class MyFrame extends Frame {
        static int id = 0;
        MyFrame(int x , int y , int w , int h , Color color) {
            super("MyName"+id);//调用父类的构造方法,即取名字那个
            setBackground(color);
            setLayout(null);//把自己的布局管理器设为空,以后会讲,现在先照抄
            setBounds(x,y,w,h);
            setVisible(true);
        }
    }

    现在到panel:

    import java.awt.*;
    
    public class TestPanel1 {
        public static void main(String[] args) {
            Frame f = new Frame("Java with Panel");
            Panel p = new Panel(null);
            f.setLayout(null);
            f.setBounds(300,300,500,500);
            f.setBackground(new Color(0,0,100));
            p.setBounds(50,50,400,400);//这里的50,50的位置不是根据屏幕坐标来的,而是根据它所在的frame来的
            p.setBackground(new Color(204,204,255));
            f.add(p);
            f.setVisible(true);
        }
    }
    import java.awt.*;
    
    public class TestMultiPanel {
        public static void main(String[] args) {
            MyFrame2 f2 = new MyFrame2("MyFrame with panel",300,300,400,300);
        }
    }
    
    class MyFrame2 extends Frame {
        private Panel p1,p2,p3,p4;
        MyFrame2(String s,int x,int y,int w,int h) {
            super(s);
            setLayout(null);
            p1 = new Panel(null);//代表panel不带自己的布局管理器
            p2 = new Panel(null);
            p3 = new Panel(null);
            p4 = new Panel(null);
            p1.setBounds(0,0,w/2,h/2);
            p2.setBounds(0,h/2,w/2,h/2);
            p3.setBounds(w/2,0,w/2,h/2);
            p4.setBounds(w/2,h/2,w/2,h/2);
            p1.setBackground(Color.BLUE);
            p2.setBackground(Color.GREEN);
            p3.setBackground(Color.YELLOW);
            p4.setBackground(Color.WHITE);
            add(p1);//调用父类的方法
            add(p2);
            add(p3);
            add(p4);
            setBounds(x,y,w,h);
            setVisible(true);
        }
    }
  • 相关阅读:
    关于使用HttpModule模块处理登录验证示例
    Request.Url.Query 和 Request.QueryString的区别
    使用Trace.axd 调试ASP.NET
    asp.net网站 页面缓存
    WCF系列之.net(3.0/3.5)Rest使用示例
    解决TFS无法上传Nuget下载的DLL问题
    WCF系列之.net(4.0)使用示例
    WCF系列之.net(3.0/3.5)使用示例
    批量删除MSSQL被挂JS木马语句
    查询你的数据库有没有被木马注入的可能!
  • 原文地址:https://www.cnblogs.com/wangshen31/p/6885990.html
Copyright © 2011-2022 走看看