java GUI (課堂筆記)

關於java GUIjava

Swing組件:安全

JFrame  窗口組件dom

JLabel  標籤工具

JButton 按鈕組件字體

JTextField 單行文本框this

系統控件(JDK自帶)spa

自定義控件(模仿系統控件):code

繼承  JComenemt;orm

複寫paint();方法blog

repaint();從新調用方法

 

接下來是個人做業。

做業一: 設置一個能夠不斷變化產生隨機數的工具,須要有一個按鈕暫停或者開始。

import java.awt.event.*;
import javax.swing.*;

//產生隨機數
@SuppressWarnings("serial")
public class Dome extends JFrame{
  int a = 0,b = 0;
  public Dome(){

    this.setLayout(null);

    JLabel jlabel3 = new JLabel();                  //建立一個文本窗口
    jlabel3.setBounds(125,100,50,30);            //固定位置
    this.add(jlabel3);                        //將其填入對話框

    this.setTitle("0~99999隨機");              //設置標題
    this.setBounds(0,0,300,300);              //設置對話框大小
    this.setVisible(true);                      //對話框可視
    while(true){                          //循環監聽按鈕
      JButton jbutton = new JButton();
      jbutton.setText("開始/中止");
      jbutton.setBounds(100,150,100,30);
      jbutton.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
          b = b+1;
        }
      });
      this.add(jbutton);
      while(b%2==0){                      //循環生成隨機數
        a = (int)(Math.random()*99999);
        jlabel3.setText(""+a);
      }
    }
  }
  public static void main(String[] args) {
    new Dome();                          //調用構造器

  }

}

 

完成後效果圖:這個按鈕能夠操控開始和暫停。

 

做業二:作一個登陸框

import javax.swing.*;

//登陸界面
@SuppressWarnings("serial")
public class Dome extends JFrame{
  public Dome(){

    this.setLayout(null);


    //設置首行文字
    JLabel jlabel1 = new JLabel();

    jlabel1.setText("登陸界面");
    jlabel1.setBounds(10,0,200,40);
    this.add(jlabel1);


    //顯示帳號
    JLabel jlabel2 = new JLabel();
    jlabel2.setText("帳號:");
    jlabel2.setBounds(60,60,50,20);
    this.add(jlabel2);


    //顯示密碼
    JLabel jlabel3 = new JLabel();
    jlabel3.setText("密碼:");
    jlabel3.setBounds(60,100,50,20);
    this.add(jlabel3);


    //建立輸入帳號的文本框
    JTextArea jtext1 = new JTextArea();
    jtext1.setText("請輸入帳號");
    jtext1.setBounds(110,60,200,20);
    this.add(jtext1);


    //建立輸入密碼的密碼框
    JPasswordField jtext2 = new JPasswordField();
    jtext2.setBounds(110,100,200,20);
    this.add(jtext2);


    //設置登陸按鈕
    JButton jbutton = new JButton();
    jbutton.setText("安全登陸");
    jbutton.setBounds(110,160,200,30);
    this.add(jbutton);


    //設置窗口標題以及大小
    this.setTitle("登陸界面");
    this.setBounds(0,0,445,340);
    this.setVisible(true);
  }
  public static void main(String[] args) {
    new Dome();
  }
}

 

 完成後效果圖:這個登錄框目前沒有實現登陸功能,不過要實現也很簡單,監聽按鈕,按鈕被觸發能夠讀取上面輸入的內容,而後再將內容對比你設置的用戶名和密碼。

若是相同顯示登陸成功,若是不一樣提示帳號或者密碼錯誤。

 

做業三 :作個記事本

import java.awt.event.*;
import javax.swing.*;

@SuppressWarnings("serial")
public class Dome extends JFrame{
  public Dome(){

    this.setLayout(null);

    JTextArea jtext1 = new JTextArea();
    jtext1.setBounds(0,0,400,400);
    jtext1.setLineWrap(true);
    this.add(jtext1);

    //主菜單欄
    JMenuBar menuBar = new JMenuBar(); 
    JMenu menu1 = new JMenu("文件"); 
    JMenu menu2 = new JMenu("編輯"); 
    JMenu menu3 = new JMenu("格式"); 
    JMenu menu4 = new JMenu("查看"); 
    JMenu menu5 = new JMenu("幫助"); 
    setJMenuBar(menuBar); 
    menuBar.add(menu1); 
    menuBar.add(menu2); 
    menuBar.add(menu3); 
    menuBar.add(menu4); 
    menuBar.add(menu5); 

    //文件二級菜單
    JMenuItem menu11 = new JMenuItem("新建"); 
    JMenuItem menu12 = new JMenuItem("打開"); 
    JMenuItem menu13 = new JMenuItem("保存"); 
    JMenuItem menu14 = new JMenuItem("另存爲"); 
    JMenuItem menu15 = new JMenuItem("退出"); 
    menu1.add(menu11); 
    menu1.add(menu12); 
    menu1.add(menu13); 
    menu1.add(menu14); 
    menu1.addSeparator(); 
    menu1.addSeparator(); 
    menu1.add(menu15); 

    //編輯二級菜單
    JMenuItem menu21 = new JMenuItem("撤銷"); 
    JMenuItem menu22 = new JMenuItem("剪貼"); 
    JMenuItem menu23 = new JMenuItem("複製"); 
    JMenuItem menu24 = new JMenuItem("粘貼"); 
    JMenuItem menu25 = new JMenuItem("刪除"); 
    JMenuItem menu26 = new JMenuItem("全選"); 
    menu2.add(menu21); 
    menu2.addSeparator(); 
    menu2.add(menu22); 
    menu2.add(menu23); 
    menu2.add(menu24); 
    menu2.add(menu25); 
    menu2.addSeparator(); 
    menu2.addSeparator(); 
    menu2.add(menu26);

    //格式 二級菜單
    JMenuItem menu31 = new JMenuItem("自動換行"); 
    JMenuItem menu32 = new JMenuItem("字體"); 
    menu3.add(menu31); 
    menu3.add(menu32); 

    //查看二級菜單
    JMenuItem menu41=new JMenuItem("狀態欄"); 
    menu4.add(menu41); 

    //幫助 
    JMenuItem menu51 = new JMenuItem("查看幫助"); 
    JMenuItem menu52 = new JMenuItem("關於記事本"); 
    menu5.add(menu51); 
    menu5.addSeparator();
    menu5.add(menu52); 

    this.setTitle("記事本");
    this.setBounds(0,0,400,400);
    this.setVisible(true);
  }

  public static void main(String[] args) {
    new Dome();

  }

}

 

這個記事本的具體功能尚未要求實現,也就是說目前除了編輯什麼都作不了,其實實現也不難,就是將這些按鈕都監視一下,點擊時觸發的事情本身設置就好。

完成後的效果圖:

相關文章
相關標籤/搜索