關於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(); } }
這個記事本的具體功能尚未要求實現,也就是說目前除了編輯什麼都作不了,其實實現也不難,就是將這些按鈕都監視一下,點擊時觸發的事情本身設置就好。
完成後的效果圖: