亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

GUI常用方法和示例

2019-11-14 15:37:27
字體:
來源:轉載
供稿:網友


Frame :

    Frame : 創建一個框
       1 Frame f = new Frame("這是框的標題");//創建一個框 標題是這是框的標題
       //默認調用paint(Graphics g)方法  需要覆寫

       2 或者寫個類 繼承這個Frame類 也行 如 ;
            public class GUI extends Frame{
                public static void main(String[] args){
                    GUI a = new GUI();//也是創建一個框
                    //因為實例化的時候調用GUI的無參構造而無參構造里面默認第一行有個super(),調用父類的無參構造,就會創建一個Frame框
                }
            }

setLocation :

    setLocation() : //設置框的位置 以屏幕左上角(也就是屏幕原點)為標準
        f.setLocation(100,100);//設置框的位置 以屏幕左上角為標準  (x,y)

setSize :

    setSize() : //設置框的大小
         f.setSize(200,200);//寬和高 (w,h)

setBackground :

    setBackground() : //設置框的背景顏色
       1 f.setBackground(Color.blue);//設置框的背景顏色為藍色
       2 f.setBackground(new Color(0,0,102));//RGB:Red,Green,Blue->三原色

setResizable :

    setResizable() : //設置框的大小是否可以被改變 就是是否可以拉長什么的
        f.setResizable(false);//boolean型 true/false

setVisible :
    
    setVisible() : //設置框是否可見
        f.setVisible(true);//不寫默認是false,一般都要設置 要么你創建框干嘛

setBounds :
    
    setBounds() : //同時設置位置和寬高 x,y,w,h
        f.setBounds(444,444,222,222);//同時設置位置和寬高

Panel :
    
    Panel默認布局管理器是 FlowLayout 浮動布局

   1 Panel p = new Panel();//創建小控件
   2 Panel p = new Panel(null);//小控件里面可以直接設置布局
   3 Panel p = new Panel(new FlowLayout(FlowLayout.LEFT/RIGHT/CENTER));
        // LEFT 左  向左浮動
        // RIGHT 右 向右浮動
        // CENTER 中 中間浮動
        p.setBounds(50,50,100,100);//設置小部件的x,y,w,h 注意 !這個設置位置 是以框的左上角(原點),為標準 就是f
        p.setBackground(new Color(200,200,255));//設置小控件的背景顏色
        f.add(p);//就把小空間添加到Frame框中了

setLayout :

    setLayout() : //設置布局管理器
        有三種布局管理器 :
            1 FlowLayout(); //Panel默認的
            2 BorderLayout(); //Frame默認的
            3 GridLayout(); //都能用的

  FlowLayout :

    1 Panel默認的布局管理器  但是指定了也可以用BorderLayout
        Panel p = new Panel(new FlowLayout(FlowLayout.LEFT/RIGHT/CENTER));
        Panel p = new Panl(new BorderLayout(BorderLayout.EAST/WEST/NORTH/SOUTH/CENTER));
        // LEFT 左  向左浮動
        // RIGHT 右 向右浮動
        // CENTER 中 中間浮動

  BorderLayout :

    2 Frame默認的布局管理器 但是指定了也可以用FlowLayout
      1  Frame f = new Frame(BorderLayout.EAST/WEST/NORTH/SOUTH/CENTER);
      2  FlowLayout fl = new FlowLayout(FlowLayout.CENTER,20,40);//設置布局方式,水平間距,垂直間距
        f.setLayout(fl);
        // 東西向南北縮放
        // 南北向東西縮放
        // 中向四周縮放
        // EAST 東
        // WEST 西
        // NORTH 北
        // SOUTH 南
        // CENTER 中
  GridLayout :

    3 Frame和Panel都有的布局管理器
        GridLayout();//網格布局管理器
        f.setLayout(new GridLayout(2,2));//兩行兩列Frame的
        p.set(new GridLayout(2,2));//Panel的

Button :

    Button b1 = new Button("按鈕");//創建按鈕  后面括號是按鈕的名字
    把按鈕添加到Frame中,并通過常量(public static final XXX(必須大寫))指定他們的位置  有兩種 :
        1 f.add(b1, BorderLayout.EAST/WEST/NORTH/SOUTH/CENTER);//東(右),西(左),北(上),南(下),中
        2 f.add(b1,"East/West/North/South/Center");//東(右),西(左),北(上),南(下),中

pack :

    pack() : //是否打包,把frame里面所有的元素打包,然后根據包裹的大小,把frame撐開,f.setSize(),就失效了
        f.pack();//frame框用里面的元素撐開

ActionListener :
    
    //創建監聽器  :
            1 監聽器類必須實現ActionListener接口
            2 必須實現ActionListener接口中的actionPerformed(ActionEvent e)方法

addActionListener :

    //綁定監聽器 :
            addActionListener();//給指定的按鈕什么的綁定監聽器  觸發監聽器 會默認調用actionPerformed(ActionEvent e)這個方法
            b.addActionListener(m);//給b按鈕綁定監聽器  m在后面例子中,

setActionCommand :

    setActionCommand() : //給監聽器綁定說明
        b.setActionCommand("我是第一個按鈕");

            如 :  //簡單的屬性設置 好多屬性沒設置
class Monitor implements ActionListener{//自己創建一個監聽器類 實現ActionListener接口
    //實現ActionListener接口中的actionPerformed(ActionEvent e)方法
    public void actionPerformed(ActionEvent e){
        System.out.        System.out.println( e.getActionCommand() );//獲取給監聽器添加的說明
    }
}
public class GUI{
    public static void main(String[] args){
        Frame f = new Frame("名字");//創建框
        Button b = new Button("按鈕");//創建按鈕
        Monitor m = new Monitor();//實例化監聽器類
        b.addActionListener(m);//綁定監聽器 并把對象傳進去
        f.add(b);//把按鈕添加到框中
        f.setVisible(true);//框可見
    }
}

TextField :

    TextField() : 綁定的監聽器,由回車觸發

    TextField t = new TextField();//創建一個文本框
    TextField t = new TextField(10);//創建一個文本框并且最多只能輸入10個
    f.add(t);//把文本框添加到Frame框中
    t.addActionListener(new TFActionListener());//綁定監聽器  由回車觸發
    t.setEchoChar('*');//密碼機制 把輸入的文字用*遮蔽
    f.pack();//包裹 有內容撐起Frame框
    setVisible(true);//設置可見

class TFActionListener implements ActionListener{//創建監聽器
    //接收事件對象,////一個類去訪問另外一個類里面的的方法里面的局部變量,不可能
    public void actionPerformed(ActionEvent e){
        //獲得事件對象的源對象:在一個類里面想訪問另一個類里面的事件源對象,getSource()
        TextField tf = (TextField)e.getSource();
        //把事件源傳遞過來,然后向下轉型
        //強制類型轉換成TextField對象然后toString()輸出
        System.out.println( tf.getText() );//輸出文本框的內容
        //然后把內容設為空
        tf.setText("");
    }
}

getSource :
        
    getSource() : 獲得事件源的對象
        TextField tf = (TextField)e.getSource();//如上面的代碼,獲得事件源的對象,然后向下轉型,就能訪問特有的屬性

getText :
    
    t.getText();//獲得文本框的內容

setText :

    t.setText("");//給文本框重新賦值  就一個"" 就是設置為空

setEchoChar :

    t.setEchoChar('*');//把文本框輸入的字用*號代替(只是遮蔽,輸出是什么,還是什么,*只是不讓直接看到)

Label :

    Label l = new Label("注意:");//創建一個標注
    f.add(l);//添加到Frame框中

paint :
    
    paint(Graphics g);//創建Frame框的時候,會默認調用這個方法
    //Graphics:就看做是畫筆,把Frame看做是畫布
  getColor :
        Color c = g.setColor();//獲得畫筆原來的顏色
  setColor :
        g.setColor(Color.red);//設置畫筆的顏色
        g.setColor(c);//就是洗畫筆,把畫筆改為原來的顏色
  fillOval :
        g.fillOval(50,55,55,55);//畫一個實心橢圓(內切橢圓),位置,寬高
  fillRect :
        g.fillRect(44,44,44,44);//畫一個實心的矩形,位置,寬高
  drawOval :
        g.drawOval(22,22,22,22);//畫一個空心橢圓(內切橢圓),位置,寬高
  drawRect :
        g.drawRect(22,22,22,22);//畫一個空心矩形,位置,寬高

MouseAdapter :

    f.addMouseListener(new 監聽類);//綁定鼠標監聽  觸發監聽,默認調用mousePressed(MouseEvent e)這個方法
    綁定鼠標監聽 :
        1 創建監聽器類 必須繼承MouseAdapter這個抽象類
        2 必須實現(其中一個方法,這里實現的是)mousePressed(MouseEvent e)這個方法
    class Monitor extends MouseAdapter{
    //MouseListener-->MouseAdapter-->Monitor():如果直接實現接口,需要全部實現接口的方法,但還是MouseAdapter對接口的所有方法都進行了空的實現,我們只寫去覆寫我們需要的方法即可
    //MounseEvent,事件發生的時候,事件源會把時間的相關對象通過監聽器發給我們的處理類
    //監視器在對鼠標按下這個事件作出反應
    public void mousePressed(MouseEvent e){

        //拿到事件源對象,誰是事件源,Component,Frame就是事件源,本質是拿到時間源對象的引用
        MyFrame f = (MyFrame)e.getSource();//拿到事件源的引用
        f.addPoint(new Point(e.getX(), e.getY()));//Point是個類 getX(),getY()鼠標的坐標,以這個坐標為原點,花一個點,然后把點添加到Frame框架中
        
        //再去重畫這個Frame及其里面的一切元素
        //畫布重畫機制:前畫布需要狀態改變才行,大小,顯示與否,等等
        //repaint-->update-->paint();強制刷新屏幕,整個重新繪制
        //這里通過repaint調用paint()方法,遍歷集合,把每個點都進行強制重畫,點一次,就從內存中發送到屏幕中,數據強制刷新一次
        f.repaint();
    }
}

WindowAdapter :

    //創建窗口監聽器
    f.addWindowListener(new 監聽類);//給Frame框綁定窗口監聽(就能關閉了)
    創建窗口監聽 :
        1 創建監聽類必須繼承WindowAdapter這個抽象類
        2 必須實現(其中一個方法,這里實現的是)WindowClosing(WindowEvent)方法
        f.addWindowListener(new MyWinMonitor());//綁定窗口監聽
        class MyWinMonitor extends WindowAdapter{//創建窗口監聽類
        public void windowClosing(WindowEvent e){//覆寫方法
            setVisible(false);//
            System.exit(0);//關閉jvm
        }

    //匿名內部類寫法 :
    this.addWindowListener(
                new WindowAdapter(){
                    public void windowClosing(WindowEvent e){
                        setVisible(true);
                        System.exit(0);//關閉jvm
                    }
                }
            );
    
KeyAdapter :
        
    //創建鍵盤監聽 :
        1 創建鍵盤監聽類 必須繼承KeyAdapter抽象類
        2 必須實現keyPressed(KeyEvent e)方法

        f.addKeyListener(new 監聽類);//給frame框綁定鍵盤監聽
    class KeyMonitor extends KeyAdapter{
    public void keyPressed(KeyEvent e){
        int keyCode = e.getKeyCode();//  getKeyCode
        if (keyCode == KeyEvent.VK_UP) {//常量VK_UP這里我只設置了UP鍵吧,
            System.out.println( "up--------" );
        }
    }
}
    getKeyCode :
        getKeyCode();//獲得按鍵的對應的整型值
    KeyEvent :
        KeyEvent是個類.里面的常量VK_UP 都有對應的整型int值


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品一区二区性色av| 亚洲欧洲在线播放| 97色在线观看| 欧美日韩精品在线| 日韩天堂在线视频| 日韩精品在线观看视频| 最新国产精品亚洲| 51ⅴ精品国产91久久久久久| 日韩资源在线观看| 国产精品久久久久免费a∨大胸| 一区二区在线视频播放| 久久精品视频在线观看| 精品久久久视频| 午夜精品一区二区三区在线视| 国产精品九九九| 亚洲大胆人体av| 国产欧美精品在线播放| 欧美一区二区影院| 国产自摸综合网| 国产精品视频精品| 中文字幕成人在线| 国产在线日韩在线| 98精品在线视频| 欧美性猛交99久久久久99按摩| 98精品国产高清在线xxxx天堂| 精品成人国产在线观看男人呻吟| 日韩网站免费观看高清| 日韩欧美在线视频日韩欧美在线视频| 日本精品久久中文字幕佐佐木| 26uuu久久噜噜噜噜| 欧美限制级电影在线观看| 日韩在线观看免费网站| 欧美日韩高清区| 蜜臀久久99精品久久久无需会员| 国产一区红桃视频| 91国内揄拍国内精品对白| 久久成人在线视频| 欧美一级高清免费| 日韩精品欧美激情| 中文字幕一区电影| 国产欧美在线观看| 91美女片黄在线观| 欧美性极品xxxx做受| 亚洲视频在线播放| 欧美日本精品在线| 日韩精品久久久久久久玫瑰园| 日韩欧美在线一区| 久久精品国产91精品亚洲| 精品国产区一区二区三区在线观看| 欧美精品一区在线播放| 久久久爽爽爽美女图片| 大荫蒂欧美视频另类xxxx| 福利精品视频在线| 欧美大片免费观看在线观看网站推荐| 亚洲最大福利视频网站| 亚洲视频在线看| 亚洲免费电影一区| 成人啪啪免费看| 国产欧美 在线欧美| 欧美精品在线免费播放| 日韩成人黄色av| 欧美日韩免费网站| 在线播放日韩av| 久久成人18免费网站| 日韩中文字幕免费看| 国产日韩欧美视频在线| 亚洲人成在线一二| 久久久亚洲成人| 成人激情视频免费在线| 18一19gay欧美视频网站| 国产精品爽爽爽| 欧美大成色www永久网站婷| 亚洲人成网站色ww在线| 欧美精品videosex牲欧美| 国产成人亚洲综合青青| 亚洲精品www久久久久久广东| 91久久久久久久久久| 中文字幕日韩av综合精品| 中文在线资源观看视频网站免费不卡| 亚洲春色另类小说| 欧美成人精品xxx| 国产精品久久久久久亚洲调教| 精品国产31久久久久久| 欧美乱大交做爰xxxⅹ性3| 久久久亚洲精品视频| 国产精品第七十二页| 国产做受高潮69| 亚洲精品免费av| 欧美午夜宅男影院在线观看| 亚洲欧美一区二区三区在线| 日韩视频免费观看| 国产精品88a∨| 久久激情视频久久| 国产精品久久久久久久一区探花| 91精品视频在线播放| 欧美人成在线视频| 亚洲美女久久久| 精品久久久免费| 久久久久久高潮国产精品视| 91精品国产综合久久久久久久久| 国产亚洲欧美另类中文| 日韩欧美福利视频| 欧美老女人性视频| 亚洲日本中文字幕免费在线不卡| 国模gogo一区二区大胆私拍| 精品国产视频在线| 91九色国产社区在线观看| 久久中文字幕一区| 精品视频在线播放免| 久久九九精品99国产精品| 欧美高清电影在线看| 国产欧美精品va在线观看| 亚洲精品久久久久久久久久久久久| 538国产精品视频一区二区| 亚洲另类图片色| 亚洲欧美中文字幕在线一区| 欧美在线www| 成人乱人伦精品视频在线观看| 亚洲国产精久久久久久久| 亚洲欧美一区二区精品久久久| 欧美亚州一区二区三区| 北条麻妃久久精品| 久久综合久久美利坚合众国| 中文字幕日韩视频| 欧美巨大黑人极品精男| 欧美性猛交xxxx乱大交| 亚洲国产高清福利视频| 91九色单男在线观看| 最近2019中文免费高清视频观看www99| 成人妇女免费播放久久久| 国产精品视频久久| 亚洲综合中文字幕在线观看| 午夜精品理论片| 91久久久久久久久久久久久| 美女精品视频一区| 国产精品综合不卡av| 国外成人免费在线播放| 91久久精品国产| 美日韩精品免费视频| 国产精品jizz在线观看麻豆| 91美女福利视频高清| 91视频-88av| 国产啪精品视频| 精品日本高清在线播放| 午夜精品一区二区三区在线| 日产日韩在线亚洲欧美| 精品精品国产国产自在线| 超薄丝袜一区二区| 中文在线资源观看视频网站免费不卡| 国产精品视频色| 538国产精品一区二区在线| 在线观看国产精品淫| 成人av在线网址| 亚洲一区www| 岛国精品视频在线播放| 69av视频在线播放| 亚洲欧美中文日韩在线| 在线成人一区二区| 全球成人中文在线| 自拍亚洲一区欧美另类| 2024亚洲男人天堂| 欧美日韩国产精品一区二区三区四区| 欧美最顶级丰满的aⅴ艳星| 国产+成+人+亚洲欧洲|