總網頁瀏覽量

2013年4月7日 星期日

Java UI

import java.awt.*;  //使用視窗物件Frame 必須Import

Frame frm = new Frame("Window Title");//建立視窗物件,附上標題
frm.setSize(100,200);
frm.setBackground(Color.blue);
frm.setLocation(200,300);//視窗的位置
frm.setVisible(true);//讓視窗印在螢幕上


或者是
class XXX extnds Frame{

XXX frm = new XXX();

frm.setTitle("");
frm.setSize(100,200);
frm.setLocation(200,300);
frm.setVisible(true);


}



import java.awt.*;

public class UITest {
    static Frame frm= new Frame("label class");
    static Label lab = new Label();
    //label亂碼問題
    //file→project property→endocing選x-windows-950或x-MS950-SCS
   //這是netBean解決方法
    static Button btn = new Button("click me");
    static Checkbox ckb1= new Checkbox("電腦",true);
    static Checkbox ckb2= new Checkbox("人腦");
    static Checkbox ckb3= new Checkbox("豬腦",true);
 
    static Checkbox ckb4= new Checkbox("劉邦");
    static Checkbox ckb5 = new Checkbox("蕭何");
 
 
    public static void main(String[] args) {
      frm.setLayout(null);//加上這行就可以看到原來視窗底色
        frm.setSize(400, 300);
        frm.setBackground(Color.pink);
        lab.setText("初出茅廬");
        lab.setBackground(Color.gray);
       //執行結果只會看到灰色占滿版面,因為awt預設版面配置
        //將物件放大到與視窗同樣大小
        lab.setAlignment(Label.CENTER);
 //       lab.setForeground(Color.red);
   lab.setForeground(new Color(0xE12A94)); //自己建立color物件 設定顏色        
        lab.setLocation(50, 60);//設定label大小 位置
        lab.setSize(100,50);//上面的frm.setLayout(null);再加上這兩行才會正確顯示label位置大小
        Font fnt = new Font("新細明體",Font.ITALIC+Font.BOLD,22);//自型、style、size
        lab.setFont(fnt);              
        frm.add(lab);
       // lab.setVisible(true);

     
        btn.setBounds(100, 120, 70, 50);
        btn.setForeground(Color.red);
        btn.setBackground(Color.green);
        frm.add(btn);
//==============複選的checkbox作法 ,個別建立checkbox物件=====//      
//        ckb1.setSize(100, 50);
//        ckb2.setSize(100,50);
//        ckb3.setSize(100, 50);
//        ckb1.setLocation(200, 160);
//        ckb2.setLocation(200,200);
//        ckb3.setLocation(200, 230);
     
        ckb1.setBounds(200, 160, 100, 50);
        ckb2.setBounds(200, 200, 100, 50);
        ckb3.setBounds(200, 230, 100, 50);
        frm.add(ckb1);
        frm.add(ckb2);
        frm.add(ckb3);
     
//=========單選的checkbox作法,建立checkbox群組物件,設定checkbox屬於群組物件      
    CheckboxGroup grp = new CheckboxGroup();
    ckb4.setBounds(300, 200, 100, 50);
    ckb5.setBounds(300, 230, 100, 50);
        ckb4.setCheckboxGroup(grp);//將ckb4設定為grp的群組物件
        ckb5.setCheckboxGroup(grp);
     
        ckb4.setState(true);//預設選取
     
        frm.add(ckb4);
        frm.add(ckb5);
     
        frm.setVisible(true);
     
    }
}


Panel物件:面板。屬於containner子類別。可以做版面配置。
可以放進Frame物件。一個Frame可容納多個Panel
Panel可放button edittext checkbox等componemt





import java.awt.*;

public class PanelTest {
    static Frame frm=new Frame("Panel class");
    static Panel pnl = new Panel(new GridLayout(3,3));
//宣告Panel物件,並帶入layout物件。3x3格的]GridLayout
    static Label lab= new Label("Hello",Label.RIGHT);//標籤文字靠右對齊

    public static void main(String[] args) {
       frm.setLayout(null);//取消Frame版面配置,否則無法正確設定frame內部元件的大小
     
        // frm.setSize(600, 500);
     
        frm.setBounds(300,50, 600, 500);
        frm.setBackground(new Color(0x00ff99));
        frm.setResizable(false);//視窗設為固定大小
   
     
        lab.setBounds(20, 40, 60, 40);
        lab.setBackground(Color.red);

        pnl.setBounds(20, 80, 300, 220);
        pnl.setBackground(Color.GRAY);
        for(int i=1;i<=9;i++){
        pnl.add(new Button(Integer.toString(i)));
     
        }
     
        frm.add(lab);
        frm.add(pnl);
        frm.setVisible(true);
    }
}











沒有留言:

張貼留言